@expo/cli 0.17.10 → 0.18.1

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 (693) hide show
  1. package/build/bin/cli +98 -118
  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 +32 -12
  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 +78 -40
  16. package/build/src/api/graphql/client.js.map +1 -1
  17. package/build/src/api/graphql/queries/AppQuery.js +22 -8
  18. package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
  19. package/build/src/api/graphql/queries/UserQuery.js +13 -5
  20. package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
  21. package/build/src/api/graphql/types/App.js +12 -4
  22. package/build/src/api/graphql/types/App.js.map +1 -1
  23. package/build/src/api/rest/cache/FileSystemCache.js +25 -11
  24. package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
  25. package/build/src/api/rest/cache/response.js +13 -4
  26. package/build/src/api/rest/cache/response.js.map +1 -1
  27. package/build/src/api/rest/cache/wrapFetchWithCache.js +51 -18
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
  29. package/build/src/api/rest/client.js +55 -30
  30. package/build/src/api/rest/client.js.map +1 -1
  31. package/build/src/api/rest/wrapFetchWithBaseUrl.js +13 -5
  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 +13 -4
  38. package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
  39. package/build/src/api/settings.js +16 -5
  40. package/build/src/api/settings.js.map +1 -1
  41. package/build/src/api/updateDevelopmentSession.js +33 -13
  42. package/build/src/api/updateDevelopmentSession.js.map +1 -1
  43. package/build/src/api/user/UserSettings.js +31 -11
  44. package/build/src/api/user/UserSettings.js.map +1 -1
  45. package/build/src/api/user/actions.js +78 -41
  46. package/build/src/api/user/actions.js.map +1 -1
  47. package/build/src/api/user/expoSsoLauncher.js +72 -27
  48. package/build/src/api/user/expoSsoLauncher.js.map +1 -1
  49. package/build/src/api/user/otp.js +82 -50
  50. package/build/src/api/user/otp.js.map +1 -1
  51. package/build/src/api/user/user.js +80 -48
  52. package/build/src/api/user/user.js.map +1 -1
  53. package/build/src/config/configAsync.js +82 -45
  54. package/build/src/config/configAsync.js.map +1 -1
  55. package/build/src/config/index.js +52 -30
  56. package/build/src/config/index.js.map +1 -1
  57. package/build/src/customize/customizeAsync.js +21 -12
  58. package/build/src/customize/customizeAsync.js.map +1 -1
  59. package/build/src/customize/generate.js +74 -47
  60. package/build/src/customize/generate.js.map +1 -1
  61. package/build/src/customize/index.js +16 -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 +58 -37
  66. package/build/src/customize/templates.js.map +1 -1
  67. package/build/src/customize/typescript.js +50 -29
  68. package/build/src/customize/typescript.js.map +1 -1
  69. package/build/src/export/createMetadataJson.js +14 -7
  70. package/build/src/export/createMetadataJson.js.map +1 -1
  71. package/build/src/export/embed/exportEmbedAsync.js +103 -50
  72. package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
  73. package/build/src/export/embed/index.js +61 -37
  74. package/build/src/export/embed/index.js.map +1 -1
  75. package/build/src/export/embed/resolveOptions.js +14 -5
  76. package/build/src/export/embed/resolveOptions.js.map +1 -1
  77. package/build/src/export/embed/xcodeCompilerLogger.js +33 -9
  78. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
  79. package/build/src/export/exportApp.js +110 -73
  80. package/build/src/export/exportApp.js.map +1 -1
  81. package/build/src/export/exportAssets.js +84 -47
  82. package/build/src/export/exportAssets.js.map +1 -1
  83. package/build/src/export/exportAsync.js +56 -27
  84. package/build/src/export/exportAsync.js.map +1 -1
  85. package/build/src/export/exportHermes.js +46 -26
  86. package/build/src/export/exportHermes.js.map +1 -1
  87. package/build/src/export/exportStaticAsync.js +109 -66
  88. package/build/src/export/exportStaticAsync.js.map +1 -1
  89. package/build/src/export/favicon.js +47 -15
  90. package/build/src/export/favicon.js.map +1 -1
  91. package/build/src/export/fork-bundleAsync.js +92 -44
  92. package/build/src/export/fork-bundleAsync.js.map +1 -1
  93. package/build/src/export/getPublicExpoManifest.js +16 -7
  94. package/build/src/export/getPublicExpoManifest.js.map +1 -1
  95. package/build/src/export/getResolvedLocales.js +20 -5
  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 +55 -33
  100. package/build/src/export/index.js.map +1 -1
  101. package/build/src/export/metroAssetLocalPath.js +30 -8
  102. package/build/src/export/metroAssetLocalPath.js.map +1 -1
  103. package/build/src/export/persistMetroAssets.js +59 -33
  104. package/build/src/export/persistMetroAssets.js.map +1 -1
  105. package/build/src/export/publicFolder.js +31 -11
  106. package/build/src/export/publicFolder.js.map +1 -1
  107. package/build/src/export/resolveOptions.js +26 -16
  108. package/build/src/export/resolveOptions.js.map +1 -1
  109. package/build/src/export/saveAssets.js +77 -49
  110. package/build/src/export/saveAssets.js.map +1 -1
  111. package/build/src/export/web/exportWebAsync.js +28 -13
  112. package/build/src/export/web/exportWebAsync.js.map +1 -1
  113. package/build/src/export/web/index.js +53 -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 +50 -26
  122. package/build/src/install/applyPlugins.js.map +1 -1
  123. package/build/src/install/checkPackages.js +68 -36
  124. package/build/src/install/checkPackages.js.map +1 -1
  125. package/build/src/install/fixPackages.js +58 -35
  126. package/build/src/install/fixPackages.js.map +1 -1
  127. package/build/src/install/index.js +21 -13
  128. package/build/src/install/index.js.map +1 -1
  129. package/build/src/install/installAsync.js +107 -64
  130. package/build/src/install/installAsync.js.map +1 -1
  131. package/build/src/install/installExpoPackage.js +60 -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 +29 -9
  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 +27 -15
  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 +97 -50
  150. package/build/src/prebuild/clearNativeFolder.js.map +1 -1
  151. package/build/src/prebuild/configureProjectAsync.js +64 -31
  152. package/build/src/prebuild/configureProjectAsync.js.map +1 -1
  153. package/build/src/prebuild/copyTemplateFiles.js +41 -17
  154. package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
  155. package/build/src/prebuild/ensureConfigAsync.js +74 -30
  156. package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
  157. package/build/src/prebuild/index.js +58 -38
  158. package/build/src/prebuild/index.js.map +1 -1
  159. package/build/src/prebuild/prebuildAsync.js +75 -52
  160. package/build/src/prebuild/prebuildAsync.js.map +1 -1
  161. package/build/src/prebuild/renameTemplateAppName.js +124 -0
  162. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  163. package/build/src/prebuild/resolveOptions.js +85 -36
  164. package/build/src/prebuild/resolveOptions.js.map +1 -1
  165. package/build/src/prebuild/resolveTemplate.js +102 -46
  166. package/build/src/prebuild/resolveTemplate.js.map +1 -1
  167. package/build/src/prebuild/updateFromTemplate.js +80 -41
  168. package/build/src/prebuild/updateFromTemplate.js.map +1 -1
  169. package/build/src/prebuild/updatePackageJson.js +111 -54
  170. package/build/src/prebuild/updatePackageJson.js.map +1 -1
  171. package/build/src/prebuild/validateTemplatePlatforms.js +56 -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 +64 -32
  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 +56 -0
  182. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  183. package/build/src/run/android/resolveInstallApkName.js +28 -14
  184. package/build/src/run/android/resolveInstallApkName.js.map +1 -1
  185. package/build/src/run/android/resolveLaunchProps.js +16 -7
  186. package/build/src/run/android/resolveLaunchProps.js.map +1 -1
  187. package/build/src/run/android/resolveOptions.js +14 -9
  188. package/build/src/run/android/resolveOptions.js.map +1 -1
  189. package/build/src/run/android/runAndroidAsync.js +39 -27
  190. package/build/src/run/android/runAndroidAsync.js.map +1 -1
  191. package/build/src/run/ensureNativeProject.js +24 -9
  192. package/build/src/run/ensureNativeProject.js.map +1 -1
  193. package/build/src/run/hints.js +23 -9
  194. package/build/src/run/hints.js.map +1 -1
  195. package/build/src/run/index.js +55 -35
  196. package/build/src/run/index.js.map +1 -1
  197. package/build/src/run/ios/XcodeBuild.js +126 -66
  198. package/build/src/run/ios/XcodeBuild.js.map +1 -1
  199. package/build/src/run/ios/appleDevice/AppleDevice.js +52 -27
  200. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
  201. package/build/src/run/ios/appleDevice/ClientManager.js +70 -31
  202. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
  203. package/build/src/run/ios/appleDevice/client/AFCClient.js +94 -44
  204. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
  205. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +63 -24
  206. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
  207. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -6
  208. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
  209. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +64 -25
  210. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
  211. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +66 -28
  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 +42 -15
  216. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
  217. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +78 -34
  218. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
  219. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +85 -66
  220. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
  221. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +41 -15
  222. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
  223. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +30 -11
  224. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
  225. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +39 -14
  226. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
  227. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +36 -11
  228. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
  229. package/build/src/run/ios/codeSigning/Security.js +40 -21
  230. package/build/src/run/ios/codeSigning/Security.js.map +1 -1
  231. package/build/src/run/ios/codeSigning/configureCodeSigning.js +55 -28
  232. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
  233. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +67 -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 +30 -10
  238. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
  239. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +33 -15
  240. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
  241. package/build/src/run/ios/index.js +63 -35
  242. package/build/src/run/ios/index.js.map +1 -1
  243. package/build/src/run/ios/launchApp.js +65 -32
  244. package/build/src/run/ios/launchApp.js.map +1 -1
  245. package/build/src/run/ios/options/promptDevice.js +24 -14
  246. package/build/src/run/ios/options/promptDevice.js.map +1 -1
  247. package/build/src/run/ios/options/resolveDevice.js +64 -41
  248. package/build/src/run/ios/options/resolveDevice.js.map +1 -1
  249. package/build/src/run/ios/options/resolveNativeScheme.js +80 -39
  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 +13 -4
  254. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
  255. package/build/src/run/ios/runIosAsync.js +71 -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 +60 -27
  260. package/build/src/run/startBundler.js.map +1 -1
  261. package/build/src/start/detectDevClient.js +32 -0
  262. package/build/src/start/detectDevClient.js.map +1 -0
  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 +13 -4
  266. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
  267. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +57 -24
  268. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
  269. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +57 -24
  270. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
  271. package/build/src/start/doctor/apple/XcodePrerequisite.js +132 -57
  272. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
  273. package/build/src/start/doctor/apple/XcrunPrerequisite.js +34 -13
  274. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
  275. package/build/src/start/doctor/dependencies/bundledNativeModules.js +69 -30
  276. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
  277. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +120 -57
  278. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
  279. package/build/src/start/doctor/dependencies/getMissingPackages.js +38 -12
  280. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
  281. package/build/src/start/doctor/dependencies/getVersionedPackages.js +29 -15
  282. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
  283. package/build/src/start/doctor/dependencies/resolvePackages.js +39 -15
  284. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
  285. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +88 -55
  286. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
  287. package/build/src/start/doctor/ngrok/ExternalModule.js +88 -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 +75 -45
  292. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
  293. package/build/src/start/doctor/typescript/updateTSConfig.js +81 -40
  294. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
  295. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +70 -32
  296. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
  297. package/build/src/start/index.js +62 -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 +81 -41
  302. package/build/src/start/interface/commandsTable.js.map +1 -1
  303. package/build/src/start/interface/interactiveActions.js +91 -68
  304. package/build/src/start/interface/interactiveActions.js.map +1 -1
  305. package/build/src/start/interface/startInterface.js +84 -57
  306. package/build/src/start/interface/startInterface.js.map +1 -1
  307. package/build/src/start/platforms/AppIdResolver.js +16 -7
  308. package/build/src/start/platforms/AppIdResolver.js.map +1 -1
  309. package/build/src/start/platforms/DeviceManager.js +47 -20
  310. package/build/src/start/platforms/DeviceManager.js.map +1 -1
  311. package/build/src/start/platforms/ExpoGoInstaller.js +81 -45
  312. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
  313. package/build/src/start/platforms/PlatformManager.js +42 -20
  314. package/build/src/start/platforms/PlatformManager.js.map +1 -1
  315. package/build/src/start/platforms/android/ADBServer.js +28 -13
  316. package/build/src/start/platforms/android/ADBServer.js.map +1 -1
  317. package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -10
  318. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
  319. package/build/src/start/platforms/android/AndroidDeviceManager.js +86 -54
  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 +38 -11
  324. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
  325. package/build/src/start/platforms/android/activateWindow.js +54 -21
  326. package/build/src/start/platforms/android/activateWindow.js.map +1 -1
  327. package/build/src/start/platforms/android/adb.js +89 -51
  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 +89 -44
  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 +38 -14
  336. package/build/src/start/platforms/android/gradle.js.map +1 -1
  337. package/build/src/start/platforms/android/promptAndroidDevice.js +22 -16
  338. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
  339. package/build/src/start/platforms/ios/AppleAppIdResolver.js +31 -10
  340. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
  341. package/build/src/start/platforms/ios/AppleDeviceManager.js +120 -62
  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 -7
  346. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
  347. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +60 -27
  348. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
  349. package/build/src/start/platforms/ios/getBestSimulator.js +60 -30
  350. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
  351. package/build/src/start/platforms/ios/promptAppleDevice.js +25 -13
  352. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
  353. package/build/src/start/platforms/ios/simctl.js +75 -46
  354. package/build/src/start/platforms/ios/simctl.js.map +1 -1
  355. package/build/src/start/platforms/ios/simctlLogging.js +100 -47
  356. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
  357. package/build/src/start/platforms/ios/xcrun.js +21 -6
  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 +37 -11
  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 +52 -27
  366. package/build/src/start/resolveOptions.js.map +1 -1
  367. package/build/src/start/server/AsyncNgrok.js +91 -47
  368. package/build/src/start/server/AsyncNgrok.js.map +1 -1
  369. package/build/src/start/server/BundlerDevServer.js +77 -45
  370. package/build/src/start/server/BundlerDevServer.js.map +1 -1
  371. package/build/src/start/server/DevServerManager.js +100 -70
  372. package/build/src/start/server/DevServerManager.js.map +1 -1
  373. package/build/src/start/server/DevToolsPluginManager.js +35 -18
  374. package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
  375. package/build/src/start/server/DevelopmentSession.js +57 -33
  376. package/build/src/start/server/DevelopmentSession.js.map +1 -1
  377. package/build/src/start/server/ReactDevToolsProxy.js +37 -11
  378. package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
  379. package/build/src/start/server/UrlCreator.js +61 -27
  380. package/build/src/start/server/UrlCreator.js.map +1 -1
  381. package/build/src/start/server/getStaticRenderFunctions.js +125 -77
  382. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
  383. package/build/src/start/server/metro/MetroBundlerDevServer.js +333 -158
  384. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
  385. package/build/src/start/server/metro/MetroTerminalReporter.js +50 -28
  386. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
  387. package/build/src/start/server/metro/TerminalReporter.js +40 -12
  388. package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
  389. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
  390. package/build/src/start/server/metro/createExpoMetroResolver.js +82 -35
  391. package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
  392. package/build/src/start/server/metro/createJResolver.js +143 -73
  393. package/build/src/start/server/metro/createJResolver.js.map +1 -1
  394. package/build/src/start/server/metro/createServerRouteMiddleware.js +47 -38
  395. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
  396. package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
  397. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  398. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +18 -14
  399. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
  400. package/build/src/start/server/metro/debugging/createHandlersFactory.js +64 -0
  401. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  402. package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +6 -8
  403. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  404. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +12 -6
  405. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  406. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +26 -0
  407. package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
  408. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +28 -0
  409. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  410. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +25 -0
  411. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  412. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +31 -0
  413. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  414. package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +14 -7
  415. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  416. package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
  417. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  418. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  419. package/build/src/start/server/metro/externals.js +67 -69
  420. package/build/src/start/server/metro/externals.js.map +1 -1
  421. package/build/src/start/server/metro/fetchRouterManifest.js +26 -7
  422. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
  423. package/build/src/start/server/metro/formatFileCandidates.js +28 -18
  424. package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
  425. package/build/src/start/server/metro/getCssModulesFromBundler.js +44 -12
  426. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
  427. package/build/src/start/server/metro/instantiateMetro.js +141 -62
  428. package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
  429. package/build/src/start/server/metro/metroErrorInterface.js +75 -47
  430. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
  431. package/build/src/start/server/metro/metroErrors.js +11 -2
  432. package/build/src/start/server/metro/metroErrors.js.map +1 -1
  433. package/build/src/start/server/metro/metroVirtualModules.js +90 -0
  434. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  435. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +12 -3
  436. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
  437. package/build/src/start/server/metro/router.js +64 -30
  438. package/build/src/start/server/metro/router.js.map +1 -1
  439. package/build/src/start/server/metro/runServer-fork.js +68 -19
  440. package/build/src/start/server/metro/runServer-fork.js.map +1 -1
  441. package/build/src/start/server/metro/serializeHtml.js +32 -19
  442. package/build/src/start/server/metro/serializeHtml.js.map +1 -1
  443. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +19 -5
  444. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
  445. package/build/src/start/server/metro/withMetroMultiPlatform.js +232 -104
  446. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
  447. package/build/src/start/server/metro/withMetroResolvers.js +95 -47
  448. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
  449. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
  450. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
  451. package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
  452. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
  453. package/build/src/start/server/middleware/CreateFileMiddleware.js +33 -13
  454. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
  455. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +27 -12
  456. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
  457. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +65 -28
  458. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
  459. package/build/src/start/server/middleware/ExpoMiddleware.js +54 -22
  460. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
  461. package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
  462. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
  463. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
  464. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
  465. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +58 -21
  466. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
  467. package/build/src/start/server/middleware/ManifestMiddleware.js +117 -63
  468. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
  469. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +35 -10
  470. package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
  471. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +54 -27
  472. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
  473. package/build/src/start/server/middleware/ServeStaticMiddleware.js +31 -10
  474. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
  475. package/build/src/start/server/middleware/inspector/JsInspector.js +45 -22
  476. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
  477. package/build/src/start/server/middleware/inspector/LaunchBrowser.js +25 -11
  478. package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
  479. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
  480. package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
  481. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +36 -14
  482. package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
  483. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +84 -38
  484. package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
  485. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +42 -20
  486. package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
  487. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +40 -13
  488. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
  489. package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
  490. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
  491. package/build/src/start/server/middleware/metroOptions.js +36 -18
  492. package/build/src/start/server/middleware/metroOptions.js.map +1 -1
  493. package/build/src/start/server/middleware/mutations.js +11 -4
  494. package/build/src/start/server/middleware/mutations.js.map +1 -1
  495. package/build/src/start/server/middleware/resolveAssets.js +78 -42
  496. package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
  497. package/build/src/start/server/middleware/resolvePlatform.js +21 -7
  498. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
  499. package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
  500. package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
  501. package/build/src/start/server/openPlatforms.js +7 -6
  502. package/build/src/start/server/openPlatforms.js.map +1 -1
  503. package/build/src/start/server/platformBundlers.js +12 -3
  504. package/build/src/start/server/platformBundlers.js.map +1 -1
  505. package/build/src/start/server/serverLogLikeMetro.js +93 -40
  506. package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
  507. package/build/src/start/server/type-generation/expo-env.js +26 -6
  508. package/build/src/start/server/type-generation/expo-env.js.map +1 -1
  509. package/build/src/start/server/type-generation/routes.js +137 -82
  510. package/build/src/start/server/type-generation/routes.js.map +1 -1
  511. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +44 -23
  512. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
  513. package/build/src/start/server/type-generation/tsconfig.js +41 -16
  514. package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
  515. package/build/src/start/server/webTemplate.js +43 -19
  516. package/build/src/start/server/webTemplate.js.map +1 -1
  517. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +105 -56
  518. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
  519. package/build/src/start/server/webpack/compile.js +60 -27
  520. package/build/src/start/server/webpack/compile.js.map +1 -1
  521. package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
  522. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
  523. package/build/src/start/server/webpack/resolveFromProject.js +20 -6
  524. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
  525. package/build/src/start/server/webpack/tls.js +84 -34
  526. package/build/src/start/server/webpack/tls.js.map +1 -1
  527. package/build/src/start/startAsync.js +98 -52
  528. package/build/src/start/startAsync.js.map +1 -1
  529. package/build/src/utils/FileNotifier.js +73 -28
  530. package/build/src/utils/FileNotifier.js.map +1 -1
  531. package/build/src/utils/analytics/getDevClientProperties.js +48 -22
  532. package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
  533. package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
  534. package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
  535. package/build/src/utils/analytics/getMetroProperties.js +4 -1
  536. package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
  537. package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
  538. package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
  539. package/build/src/utils/ansi.js +5 -2
  540. package/build/src/utils/ansi.js.map +1 -1
  541. package/build/src/utils/args.js +83 -31
  542. package/build/src/utils/args.js.map +1 -1
  543. package/build/src/utils/array.js +16 -9
  544. package/build/src/utils/array.js.map +1 -1
  545. package/build/src/utils/cocoapods.js +127 -67
  546. package/build/src/utils/cocoapods.js.map +1 -1
  547. package/build/src/utils/codesigning.js +144 -72
  548. package/build/src/utils/codesigning.js.map +1 -1
  549. package/build/src/utils/createFileTransform.js +34 -71
  550. package/build/src/utils/createFileTransform.js.map +1 -1
  551. package/build/src/utils/delay.js +13 -6
  552. package/build/src/utils/delay.js.map +1 -1
  553. package/build/src/utils/dir.js +50 -40
  554. package/build/src/utils/dir.js.map +1 -1
  555. package/build/src/utils/downloadAppAsync.js +51 -18
  556. package/build/src/utils/downloadAppAsync.js.map +1 -1
  557. package/build/src/utils/downloadExpoGoAsync.js +47 -26
  558. package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
  559. package/build/src/utils/editor.js +65 -27
  560. package/build/src/utils/editor.js.map +1 -1
  561. package/build/src/utils/env.js +44 -33
  562. package/build/src/utils/env.js.map +1 -1
  563. package/build/src/utils/errors.js +35 -12
  564. package/build/src/utils/errors.js.map +1 -1
  565. package/build/src/utils/exit.js +10 -7
  566. package/build/src/utils/exit.js.map +1 -1
  567. package/build/src/utils/findUp.js +38 -8
  568. package/build/src/utils/findUp.js.map +1 -1
  569. package/build/src/utils/fn.js +11 -3
  570. package/build/src/utils/fn.js.map +1 -1
  571. package/build/src/utils/getOrPromptApplicationId.js +84 -46
  572. package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
  573. package/build/src/utils/getRunningProcess.js +63 -25
  574. package/build/src/utils/getRunningProcess.js.map +1 -1
  575. package/build/src/utils/git.js +76 -38
  576. package/build/src/utils/git.js.map +1 -1
  577. package/build/src/utils/glob.js +23 -12
  578. package/build/src/utils/glob.js.map +1 -1
  579. package/build/src/utils/interactive.js +5 -2
  580. package/build/src/utils/interactive.js.map +1 -1
  581. package/build/src/utils/ip.js +12 -3
  582. package/build/src/utils/ip.js.map +1 -1
  583. package/build/src/utils/isModuleSymlinked.js +20 -5
  584. package/build/src/utils/isModuleSymlinked.js.map +1 -1
  585. package/build/src/utils/link.js +28 -8
  586. package/build/src/utils/link.js.map +1 -1
  587. package/build/src/utils/mergeGitIgnorePaths.js +45 -28
  588. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
  589. package/build/src/utils/modifyConfigAsync.js +69 -31
  590. package/build/src/utils/modifyConfigAsync.js.map +1 -1
  591. package/build/src/utils/modifyConfigPlugins.js +50 -23
  592. package/build/src/utils/modifyConfigPlugins.js.map +1 -1
  593. package/build/src/utils/nodeEnv.js +8 -1
  594. package/build/src/utils/nodeEnv.js.map +1 -1
  595. package/build/src/utils/nodeModules.js +29 -8
  596. package/build/src/utils/nodeModules.js.map +1 -1
  597. package/build/src/utils/npm.js +86 -31
  598. package/build/src/utils/npm.js.map +1 -1
  599. package/build/src/utils/obj.js +12 -4
  600. package/build/src/utils/obj.js.map +1 -1
  601. package/build/src/utils/open.js +13 -4
  602. package/build/src/utils/open.js.map +1 -1
  603. package/build/src/utils/ora.js +38 -22
  604. package/build/src/utils/ora.js.map +1 -1
  605. package/build/src/utils/plist.js +73 -29
  606. package/build/src/utils/plist.js.map +1 -1
  607. package/build/src/utils/port.js +74 -36
  608. package/build/src/utils/port.js.map +1 -1
  609. package/build/src/utils/profile.js +56 -29
  610. package/build/src/utils/profile.js.map +1 -1
  611. package/build/src/utils/progress.js +23 -13
  612. package/build/src/utils/progress.js.map +1 -1
  613. package/build/src/utils/prompts.js +45 -28
  614. package/build/src/utils/prompts.js.map +1 -1
  615. package/build/src/utils/resolveArgs.js +23 -20
  616. package/build/src/utils/resolveArgs.js.map +1 -1
  617. package/build/src/utils/scheme.js +128 -52
  618. package/build/src/utils/scheme.js.map +1 -1
  619. package/build/src/utils/strings.js +11 -4
  620. package/build/src/utils/strings.js.map +1 -1
  621. package/build/src/utils/tar.js +56 -23
  622. package/build/src/utils/tar.js.map +1 -1
  623. package/build/src/utils/telemetry/DetachedClient.js +90 -0
  624. package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
  625. package/build/src/utils/telemetry/RudderClient.js +101 -0
  626. package/build/src/utils/telemetry/RudderClient.js.map +1 -0
  627. package/build/src/utils/telemetry/flushDetached.js +44 -0
  628. package/build/src/utils/telemetry/flushDetached.js.map +1 -0
  629. package/build/src/utils/telemetry/getContext.js +112 -0
  630. package/build/src/utils/telemetry/getContext.js.map +1 -0
  631. package/build/src/utils/telemetry/index.js +37 -0
  632. package/build/src/utils/telemetry/index.js.map +1 -0
  633. package/build/src/utils/telemetry/types.js +6 -0
  634. package/build/src/utils/telemetry/types.js.map +1 -0
  635. package/build/src/utils/template.js +27 -2
  636. package/build/src/utils/template.js.map +1 -1
  637. package/build/src/utils/terminal.js +5 -2
  638. package/build/src/utils/terminal.js.map +1 -1
  639. package/build/src/utils/tsconfig/evaluateTsConfig.js +32 -14
  640. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
  641. package/build/src/utils/tsconfig/loadTsConfigPaths.js +34 -14
  642. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
  643. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
  644. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
  645. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +20 -11
  646. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
  647. package/build/src/utils/url.js +35 -19
  648. package/build/src/utils/url.js.map +1 -1
  649. package/build/src/utils/validateApplicationId.js +47 -28
  650. package/build/src/utils/validateApplicationId.js.map +1 -1
  651. package/build/src/utils/variadic.js +15 -11
  652. package/build/src/utils/variadic.js.map +1 -1
  653. package/build/src/whoami/index.js +43 -25
  654. package/build/src/whoami/index.js.map +1 -1
  655. package/build/src/whoami/whoamiAsync.js +50 -23
  656. package/build/src/whoami/whoamiAsync.js.map +1 -1
  657. package/package.json +16 -17
  658. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
  659. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
  660. package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
  661. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
  662. package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
  663. package/build/src/run/android/resolveGradleProps.js +0 -37
  664. package/build/src/run/android/resolveGradleProps.js.map +0 -1
  665. package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
  666. package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
  667. package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
  668. package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
  669. package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
  670. package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
  671. package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
  672. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js +0 -22
  673. package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
  674. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
  675. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
  676. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
  677. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
  678. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
  679. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
  680. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
  681. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
  682. package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
  683. package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
  684. package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
  685. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
  686. package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
  687. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
  688. package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
  689. package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
  690. package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
  691. package/build/src/utils/analytics/rudderstackClient.js +0 -147
  692. package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
  693. /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
@@ -2,48 +2,80 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.isOSType = isOSType;
6
- exports.getContainerPathAsync = getContainerPathAsync;
7
- exports.getInfoPlistValueAsync = getInfoPlistValueAsync;
8
- exports.openUrlAsync = openUrlAsync;
9
- exports.openAppIdAsync = openAppIdAsync;
10
- exports.bootAsync = bootAsync;
11
- exports.getBootedSimulatorsAsync = getBootedSimulatorsAsync;
12
- exports.isDeviceBootedAsync = isDeviceBootedAsync;
13
- exports.bootDeviceAsync = bootDeviceAsync;
14
- exports.installAsync = installAsync;
15
- exports.uninstallAsync = uninstallAsync;
16
- exports.getDevicesAsync = getDevicesAsync;
17
- exports.simctlAsync = simctlAsync;
18
- var _spawnAsync = _interopRequireDefault(require("@expo/spawn-async"));
19
- var _xcrun = require("./xcrun");
20
- var Log = _interopRequireWildcard(require("../../../log"));
21
- var _errors = require("../../../utils/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
+ isOSType: ()=>isOSType,
13
+ getContainerPathAsync: ()=>getContainerPathAsync,
14
+ getInfoPlistValueAsync: ()=>getInfoPlistValueAsync,
15
+ openUrlAsync: ()=>openUrlAsync,
16
+ openAppIdAsync: ()=>openAppIdAsync,
17
+ bootAsync: ()=>bootAsync,
18
+ getBootedSimulatorsAsync: ()=>getBootedSimulatorsAsync,
19
+ isDeviceBootedAsync: ()=>isDeviceBootedAsync,
20
+ bootDeviceAsync: ()=>bootDeviceAsync,
21
+ installAsync: ()=>installAsync,
22
+ uninstallAsync: ()=>uninstallAsync,
23
+ getDevicesAsync: ()=>getDevicesAsync,
24
+ simctlAsync: ()=>simctlAsync
25
+ });
26
+ function _spawnAsync() {
27
+ const data = /*#__PURE__*/ _interopRequireDefault(require("@expo/spawn-async"));
28
+ _spawnAsync = function() {
29
+ return data;
30
+ };
31
+ return data;
32
+ }
33
+ const _xcrun = require("./xcrun");
34
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
35
+ const _errors = require("../../../utils/errors");
22
36
  function _interopRequireDefault(obj) {
23
37
  return obj && obj.__esModule ? obj : {
24
38
  default: obj
25
39
  };
26
40
  }
27
- function _interopRequireWildcard(obj) {
28
- if (obj && obj.__esModule) {
41
+ function _getRequireWildcardCache(nodeInterop) {
42
+ if (typeof WeakMap !== "function") return null;
43
+ var cacheBabelInterop = new WeakMap();
44
+ var cacheNodeInterop = new WeakMap();
45
+ return (_getRequireWildcardCache = function(nodeInterop) {
46
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
47
+ })(nodeInterop);
48
+ }
49
+ function _interopRequireWildcard(obj, nodeInterop) {
50
+ if (!nodeInterop && obj && obj.__esModule) {
29
51
  return obj;
30
- } else {
31
- var newObj = {};
32
- if (obj != null) {
33
- for(var key in obj){
34
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
35
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
36
- if (desc.get || desc.set) {
37
- Object.defineProperty(newObj, key, desc);
38
- } else {
39
- newObj[key] = obj[key];
40
- }
41
- }
52
+ }
53
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
54
+ return {
55
+ default: obj
56
+ };
57
+ }
58
+ var cache = _getRequireWildcardCache(nodeInterop);
59
+ if (cache && cache.has(obj)) {
60
+ return cache.get(obj);
61
+ }
62
+ var newObj = {};
63
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
64
+ for(var key in obj){
65
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
66
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
67
+ if (desc && (desc.get || desc.set)) {
68
+ Object.defineProperty(newObj, key, desc);
69
+ } else {
70
+ newObj[key] = obj[key];
42
71
  }
43
72
  }
44
- newObj.default = obj;
45
- return newObj;
46
73
  }
74
+ newObj.default = obj;
75
+ if (cache) {
76
+ cache.set(obj, newObj);
77
+ }
78
+ return newObj;
47
79
  }
48
80
  function isOSType(value) {
49
81
  if (!value || typeof value !== "string") return false;
@@ -54,7 +86,7 @@ function isOSType(value) {
54
86
  "macOS"
55
87
  ];
56
88
  if (!knownTypes.includes(value)) {
57
- Log.warn(`Unknown OS type: ${value}. Expected one of: ${knownTypes.join(", ")}`);
89
+ _log.warn(`Unknown OS type: ${value}. Expected one of: ${knownTypes.join(", ")}`);
58
90
  }
59
91
  return true;
60
92
  }
@@ -74,15 +106,15 @@ async function getContainerPathAsync(device, { appId }) {
74
106
  throw error;
75
107
  }
76
108
  }
77
- async function getInfoPlistValueAsync(device, { appId , key }) {
78
- const containerPath = await getContainerPathAsync(device, {
109
+ async function getInfoPlistValueAsync(device, { appId , key , containerPath }) {
110
+ const ensuredContainerPath = containerPath != null ? containerPath : await getContainerPathAsync(device, {
79
111
  appId
80
112
  });
81
- if (containerPath) {
113
+ if (ensuredContainerPath) {
82
114
  try {
83
- const { output } = await (0, _spawnAsync).default("defaults", [
115
+ const { output } = await (0, _spawnAsync().default)("defaults", [
84
116
  "read",
85
- `${containerPath}/Info`,
117
+ `${ensuredContainerPath}/Info`,
86
118
  key
87
119
  ], {
88
120
  stdio: "pipe"
@@ -145,17 +177,14 @@ async function bootAsync(device) {
145
177
  }
146
178
  async function getBootedSimulatorsAsync() {
147
179
  const simulatorDeviceInfo = await getRuntimesAsync("devices");
148
- return Object.values(simulatorDeviceInfo.devices).flatMap((runtime)=>runtime.filter((device)=>device.state === "Booted"
149
- )
150
- );
180
+ return Object.values(simulatorDeviceInfo.devices).flatMap((runtime)=>runtime.filter((device)=>device.state === "Booted"));
151
181
  }
152
182
  async function isDeviceBootedAsync(device) {
153
183
  // Simulators can be booted even if the app isn't running :(
154
184
  const devices = await getBootedSimulatorsAsync();
155
185
  if (device.udid) {
156
186
  var ref;
157
- return (ref = devices.find((bootedDevice)=>bootedDevice.udid === device.udid
158
- )) != null ? ref : null;
187
+ return (ref = devices.find((bootedDevice)=>bootedDevice.udid === device.udid)) != null ? ref : null;
159
188
  }
160
189
  var ref1;
161
190
  return (ref1 = devices[0]) != null ? ref1 : null;
@@ -195,7 +224,7 @@ function parseSimControlJSONResults(input) {
195
224
  // Nov 15, 2020: Observed this can happen when opening the simulator and the simulator prompts the user to update the xcode command line tools.
196
225
  // Unexpected token I in JSON at position 0
197
226
  if (error.message.includes("Unexpected token")) {
198
- Log.error(`Apple's simctl returned malformed JSON:\n${input}`);
227
+ _log.error(`Apple's simctl returned malformed JSON:\n${input}`);
199
228
  }
200
229
  throw error;
201
230
  }
@@ -230,7 +259,7 @@ async function getDevicesAsync() {
230
259
  return Object.values(simulatorDeviceInfo.devices).flat();
231
260
  }
232
261
  async function simctlAsync(args, options) {
233
- return (0, _xcrun).xcrunAsync([
262
+ return (0, _xcrun.xcrunAsync)([
234
263
  "simctl",
235
264
  ...args
236
265
  ], options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/ios/simctl.ts"],"sourcesContent":["import spawnAsync, { SpawnOptions, SpawnResult } from '@expo/spawn-async';\n\nimport { xcrunAsync } from './xcrun';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\n\ntype DeviceState = 'Shutdown' | 'Booted';\n\nexport type OSType = 'iOS' | 'tvOS' | 'watchOS' | 'macOS';\n\nexport type Device = {\n availabilityError?: 'runtime profile not found';\n /** '/Users/name/Library/Developer/CoreSimulator/Devices/00E55DC0-0364-49DF-9EC6-77BE587137D4/data' */\n dataPath: string;\n /** @example `2811236352` */\n dataPathSize?: number;\n /** '/Users/name/Library/Logs/CoreSimulator/00E55DC0-0364-49DF-9EC6-77BE587137D4' */\n logPath: string;\n /** @example `479232` */\n logPathSize?: number;\n /** '00E55DC0-0364-49DF-9EC6-77BE587137D4' */\n udid: string;\n /** 'com.apple.CoreSimulator.SimRuntime.iOS-15-1' */\n runtime: string;\n /** If the device is \"available\" which generally means that the OS files haven't been deleted (this can happen when Xcode updates). */\n isAvailable: boolean;\n /** 'com.apple.CoreSimulator.SimDeviceType.iPhone-13-Pro' */\n deviceTypeIdentifier: string;\n state: DeviceState;\n /** 'iPhone 13 Pro' */\n name: string;\n /** Type of OS the device uses. */\n osType: OSType;\n /** '15.1' */\n osVersion: string;\n /** 'iPhone 13 Pro (15.1)' */\n windowName: string;\n};\n\ntype SimulatorDeviceList = {\n devices: {\n [runtime: string]: Device[];\n };\n};\n\ntype DeviceContext = Pick<Device, 'udid'>;\n\n/** Returns true if the given value is an `OSType`, if we don't recognize the value we continue anyways but warn. */\nexport function isOSType(value: any): value is OSType {\n if (!value || typeof value !== 'string') return false;\n\n const knownTypes = ['iOS', 'tvOS', 'watchOS', 'macOS'];\n if (!knownTypes.includes(value)) {\n Log.warn(`Unknown OS type: ${value}. Expected one of: ${knownTypes.join(', ')}`);\n }\n return true;\n}\n\n/**\n * Returns the local path for the installed tar.app. Returns null when the app isn't installed.\n *\n * @param device context for selecting a device.\n * @param props.appId bundle identifier for app.\n * @returns local file path to installed app binary, e.g. '/Users/evanbacon/Library/Developer/CoreSimulator/Devices/EFEEA6EF-E3F5-4EDE-9B72-29EAFA7514AE/data/Containers/Bundle/Application/FA43A0C6-C2AD-442D-B8B1-EAF3E88CF3BF/Exponent-2.21.3.tar.app'\n */\nexport async function getContainerPathAsync(\n device: Partial<DeviceContext>,\n {\n appId,\n }: {\n appId: string;\n }\n): Promise<string | null> {\n try {\n const { stdout } = await simctlAsync(['get_app_container', resolveId(device), appId]);\n return stdout.trim();\n } catch (error: any) {\n if (error.stderr?.match(/No such file or directory/)) {\n return null;\n }\n throw error;\n }\n}\n\n/** Return a value from an installed app's Info.plist. */\nexport async function getInfoPlistValueAsync(\n device: Partial<DeviceContext>,\n {\n appId,\n key,\n }: {\n appId: string;\n key: string;\n }\n): Promise<string | null> {\n const containerPath = await getContainerPathAsync(device, { appId });\n if (containerPath) {\n try {\n const { output } = await spawnAsync('defaults', ['read', `${containerPath}/Info`, key], {\n stdio: 'pipe',\n });\n return output.join('\\n').trim();\n } catch {\n return null;\n }\n }\n return null;\n}\n\n/** Open a URL on a device. The url can have any protocol. */\nexport async function openUrlAsync(\n device: Partial<DeviceContext>,\n options: { url: string }\n): Promise<void> {\n try {\n // Skip logging since this is likely to fail.\n await simctlAsync(['openurl', resolveId(device), options.url]);\n } catch (error: any) {\n if (!error.stderr?.match(/Unable to lookup in current state: Shut/)) {\n throw error;\n }\n\n // If the device was in a weird in-between state (\"Shutting Down\" or \"Shutdown\"), then attempt to reboot it and try again.\n // This can happen when quitting the Simulator app, and immediately pressing `i` to reopen the project.\n\n // First boot the simulator\n await bootDeviceAsync({ udid: resolveId(device) });\n\n // Finally, try again...\n return await openUrlAsync(device, options);\n }\n}\n\n/** Open a simulator using a bundle identifier. If no app with a matching bundle identifier is installed then an error will be thrown. */\nexport async function openAppIdAsync(\n device: Partial<DeviceContext>,\n options: {\n appId: string;\n }\n): Promise<SpawnResult> {\n const results = await openAppIdInternalAsync(device, options);\n // Similar to 194, this is a conformance issue which indicates that the given device has no app that can handle our launch request.\n if (results.status === 4) {\n throw new CommandError('APP_NOT_INSTALLED', results.stderr);\n }\n return results;\n}\nasync function openAppIdInternalAsync(\n device: Partial<DeviceContext>,\n options: {\n appId: string;\n }\n): Promise<SpawnResult> {\n try {\n return await simctlAsync(['launch', resolveId(device), options.appId]);\n } catch (error: any) {\n if ('status' in error) {\n return error;\n }\n throw error;\n }\n}\n\n// This will only boot in headless mode if the Simulator app is not running.\nexport async function bootAsync(device: DeviceContext): Promise<Device | null> {\n await bootDeviceAsync(device);\n return isDeviceBootedAsync(device);\n}\n\n/** Returns a list of devices whose current state is 'Booted' as an array. */\nexport async function getBootedSimulatorsAsync(): Promise<Device[]> {\n const simulatorDeviceInfo = await getRuntimesAsync('devices');\n return Object.values(simulatorDeviceInfo.devices).flatMap((runtime) =>\n runtime.filter((device) => device.state === 'Booted')\n );\n}\n\n/** Returns the current device if its state is 'Booted'. */\nexport async function isDeviceBootedAsync(device: Partial<DeviceContext>): Promise<Device | null> {\n // Simulators can be booted even if the app isn't running :(\n const devices = await getBootedSimulatorsAsync();\n if (device.udid) {\n return devices.find((bootedDevice) => bootedDevice.udid === device.udid) ?? null;\n }\n\n return devices[0] ?? null;\n}\n\n/** Boot a device. */\nexport async function bootDeviceAsync(device: DeviceContext): Promise<void> {\n try {\n // Skip logging since this is likely to fail.\n await simctlAsync(['boot', device.udid]);\n } catch (error: any) {\n if (!error.stderr?.match(/Unable to boot device in current state: Booted/)) {\n throw error;\n }\n }\n}\n\n/** Install a binary file on the device. */\nexport async function installAsync(\n device: Partial<DeviceContext>,\n options: {\n /** Local absolute file path to an app binary that is built and provisioned for iOS simulators. */\n filePath: string;\n }\n): Promise<any> {\n return simctlAsync(['install', resolveId(device), options.filePath]);\n}\n\n/** Uninstall an app from the provided device. */\nexport async function uninstallAsync(\n device: Partial<DeviceContext>,\n options: {\n /** Bundle identifier */\n appId: string;\n }\n): Promise<any> {\n return simctlAsync(['uninstall', resolveId(device), options.appId]);\n}\n\nfunction parseSimControlJSONResults(input: string): any {\n try {\n return JSON.parse(input);\n } catch (error: any) {\n // Nov 15, 2020: Observed this can happen when opening the simulator and the simulator prompts the user to update the xcode command line tools.\n // Unexpected token I in JSON at position 0\n if (error.message.includes('Unexpected token')) {\n Log.error(`Apple's simctl returned malformed JSON:\\n${input}`);\n }\n throw error;\n }\n}\n\n/** Get all runtime devices given a certain type. */\nasync function getRuntimesAsync(\n type: 'devices' | 'devicetypes' | 'runtimes' | 'pairs',\n query?: string | 'available'\n): Promise<SimulatorDeviceList> {\n const result = await simctlAsync(['list', type, '--json', query]);\n const info = parseSimControlJSONResults(result.stdout) as SimulatorDeviceList;\n\n for (const runtime of Object.keys(info.devices)) {\n // Given a string like 'com.apple.CoreSimulator.SimRuntime.tvOS-13-4'\n const runtimeSuffix = runtime.split('com.apple.CoreSimulator.SimRuntime.').pop()!;\n // Create an array [tvOS, 13, 4]\n const [osType, ...osVersionComponents] = runtimeSuffix.split('-');\n // Join the end components [13, 4] -> '13.4'\n const osVersion = osVersionComponents.join('.');\n const sims = info.devices[runtime];\n for (const device of sims) {\n device.runtime = runtime;\n device.osVersion = osVersion;\n device.windowName = `${device.name} (${osVersion})`;\n device.osType = osType as OSType;\n }\n }\n return info;\n}\n\n/** Return a list of iOS simulators. */\nexport async function getDevicesAsync(): Promise<Device[]> {\n const simulatorDeviceInfo = await getRuntimesAsync('devices');\n return Object.values(simulatorDeviceInfo.devices).flat();\n}\n\n/** Run a `simctl` command. */\nexport async function simctlAsync(\n args: (string | undefined)[],\n options?: SpawnOptions\n): Promise<SpawnResult> {\n return xcrunAsync(['simctl', ...args], options);\n}\n\nfunction resolveId(device: Partial<DeviceContext>): string {\n return device.udid ?? 'booted';\n}\n"],"names":["isOSType","getContainerPathAsync","getInfoPlistValueAsync","openUrlAsync","openAppIdAsync","bootAsync","getBootedSimulatorsAsync","isDeviceBootedAsync","bootDeviceAsync","installAsync","uninstallAsync","getDevicesAsync","simctlAsync","Log","value","knownTypes","includes","warn","join","device","appId","stdout","resolveId","trim","error","stderr","match","key","containerPath","output","spawnAsync","stdio","options","url","udid","results","openAppIdInternalAsync","status","CommandError","simulatorDeviceInfo","getRuntimesAsync","Object","values","devices","flatMap","runtime","filter","state","find","bootedDevice","filePath","parseSimControlJSONResults","input","JSON","parse","message","type","query","result","info","keys","runtimeSuffix","split","pop","osType","osVersionComponents","osVersion","sims","windowName","name","flat","args","xcrunAsync"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/ios/simctl.ts"],"sourcesContent":["import spawnAsync, { SpawnOptions, SpawnResult } from '@expo/spawn-async';\n\nimport { xcrunAsync } from './xcrun';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\n\ntype DeviceState = 'Shutdown' | 'Booted';\n\nexport type OSType = 'iOS' | 'tvOS' | 'watchOS' | 'macOS';\n\nexport type Device = {\n availabilityError?: 'runtime profile not found';\n /** '/Users/name/Library/Developer/CoreSimulator/Devices/00E55DC0-0364-49DF-9EC6-77BE587137D4/data' */\n dataPath: string;\n /** @example `2811236352` */\n dataPathSize?: number;\n /** '/Users/name/Library/Logs/CoreSimulator/00E55DC0-0364-49DF-9EC6-77BE587137D4' */\n logPath: string;\n /** @example `479232` */\n logPathSize?: number;\n /** '00E55DC0-0364-49DF-9EC6-77BE587137D4' */\n udid: string;\n /** 'com.apple.CoreSimulator.SimRuntime.iOS-15-1' */\n runtime: string;\n /** If the device is \"available\" which generally means that the OS files haven't been deleted (this can happen when Xcode updates). */\n isAvailable: boolean;\n /** 'com.apple.CoreSimulator.SimDeviceType.iPhone-13-Pro' */\n deviceTypeIdentifier: string;\n state: DeviceState;\n /** 'iPhone 13 Pro' */\n name: string;\n /** Type of OS the device uses. */\n osType: OSType;\n /** '15.1' */\n osVersion: string;\n /** 'iPhone 13 Pro (15.1)' */\n windowName: string;\n};\n\ntype SimulatorDeviceList = {\n devices: {\n [runtime: string]: Device[];\n };\n};\n\ntype DeviceContext = Pick<Device, 'udid'>;\n\n/** Returns true if the given value is an `OSType`, if we don't recognize the value we continue anyways but warn. */\nexport function isOSType(value: any): value is OSType {\n if (!value || typeof value !== 'string') return false;\n\n const knownTypes = ['iOS', 'tvOS', 'watchOS', 'macOS'];\n if (!knownTypes.includes(value)) {\n Log.warn(`Unknown OS type: ${value}. Expected one of: ${knownTypes.join(', ')}`);\n }\n return true;\n}\n\n/**\n * Returns the local path for the installed tar.app. Returns null when the app isn't installed.\n *\n * @param device context for selecting a device.\n * @param props.appId bundle identifier for app.\n * @returns local file path to installed app binary, e.g. '/Users/evanbacon/Library/Developer/CoreSimulator/Devices/EFEEA6EF-E3F5-4EDE-9B72-29EAFA7514AE/data/Containers/Bundle/Application/FA43A0C6-C2AD-442D-B8B1-EAF3E88CF3BF/Exponent-2.21.3.tar.app'\n */\nexport async function getContainerPathAsync(\n device: Partial<DeviceContext>,\n {\n appId,\n }: {\n appId: string;\n }\n): Promise<string | null> {\n try {\n const { stdout } = await simctlAsync(['get_app_container', resolveId(device), appId]);\n return stdout.trim();\n } catch (error: any) {\n if (error.stderr?.match(/No such file or directory/)) {\n return null;\n }\n throw error;\n }\n}\n\n/** Return a value from an installed app's Info.plist. */\nexport async function getInfoPlistValueAsync(\n device: Partial<DeviceContext>,\n {\n appId,\n key,\n containerPath,\n }: {\n appId: string;\n key: string;\n containerPath?: string;\n }\n): Promise<string | null> {\n const ensuredContainerPath = containerPath ?? (await getContainerPathAsync(device, { appId }));\n if (ensuredContainerPath) {\n try {\n const { output } = await spawnAsync(\n 'defaults',\n ['read', `${ensuredContainerPath}/Info`, key],\n {\n stdio: 'pipe',\n }\n );\n return output.join('\\n').trim();\n } catch {\n return null;\n }\n }\n return null;\n}\n\n/** Open a URL on a device. The url can have any protocol. */\nexport async function openUrlAsync(\n device: Partial<DeviceContext>,\n options: { url: string }\n): Promise<void> {\n try {\n // Skip logging since this is likely to fail.\n await simctlAsync(['openurl', resolveId(device), options.url]);\n } catch (error: any) {\n if (!error.stderr?.match(/Unable to lookup in current state: Shut/)) {\n throw error;\n }\n\n // If the device was in a weird in-between state (\"Shutting Down\" or \"Shutdown\"), then attempt to reboot it and try again.\n // This can happen when quitting the Simulator app, and immediately pressing `i` to reopen the project.\n\n // First boot the simulator\n await bootDeviceAsync({ udid: resolveId(device) });\n\n // Finally, try again...\n return await openUrlAsync(device, options);\n }\n}\n\n/** Open a simulator using a bundle identifier. If no app with a matching bundle identifier is installed then an error will be thrown. */\nexport async function openAppIdAsync(\n device: Partial<DeviceContext>,\n options: {\n appId: string;\n }\n): Promise<SpawnResult> {\n const results = await openAppIdInternalAsync(device, options);\n // Similar to 194, this is a conformance issue which indicates that the given device has no app that can handle our launch request.\n if (results.status === 4) {\n throw new CommandError('APP_NOT_INSTALLED', results.stderr);\n }\n return results;\n}\nasync function openAppIdInternalAsync(\n device: Partial<DeviceContext>,\n options: {\n appId: string;\n }\n): Promise<SpawnResult> {\n try {\n return await simctlAsync(['launch', resolveId(device), options.appId]);\n } catch (error: any) {\n if ('status' in error) {\n return error;\n }\n throw error;\n }\n}\n\n// This will only boot in headless mode if the Simulator app is not running.\nexport async function bootAsync(device: DeviceContext): Promise<Device | null> {\n await bootDeviceAsync(device);\n return isDeviceBootedAsync(device);\n}\n\n/** Returns a list of devices whose current state is 'Booted' as an array. */\nexport async function getBootedSimulatorsAsync(): Promise<Device[]> {\n const simulatorDeviceInfo = await getRuntimesAsync('devices');\n return Object.values(simulatorDeviceInfo.devices).flatMap((runtime) =>\n runtime.filter((device) => device.state === 'Booted')\n );\n}\n\n/** Returns the current device if its state is 'Booted'. */\nexport async function isDeviceBootedAsync(device: Partial<DeviceContext>): Promise<Device | null> {\n // Simulators can be booted even if the app isn't running :(\n const devices = await getBootedSimulatorsAsync();\n if (device.udid) {\n return devices.find((bootedDevice) => bootedDevice.udid === device.udid) ?? null;\n }\n\n return devices[0] ?? null;\n}\n\n/** Boot a device. */\nexport async function bootDeviceAsync(device: DeviceContext): Promise<void> {\n try {\n // Skip logging since this is likely to fail.\n await simctlAsync(['boot', device.udid]);\n } catch (error: any) {\n if (!error.stderr?.match(/Unable to boot device in current state: Booted/)) {\n throw error;\n }\n }\n}\n\n/** Install a binary file on the device. */\nexport async function installAsync(\n device: Partial<DeviceContext>,\n options: {\n /** Local absolute file path to an app binary that is built and provisioned for iOS simulators. */\n filePath: string;\n }\n): Promise<any> {\n return simctlAsync(['install', resolveId(device), options.filePath]);\n}\n\n/** Uninstall an app from the provided device. */\nexport async function uninstallAsync(\n device: Partial<DeviceContext>,\n options: {\n /** Bundle identifier */\n appId: string;\n }\n): Promise<any> {\n return simctlAsync(['uninstall', resolveId(device), options.appId]);\n}\n\nfunction parseSimControlJSONResults(input: string): any {\n try {\n return JSON.parse(input);\n } catch (error: any) {\n // Nov 15, 2020: Observed this can happen when opening the simulator and the simulator prompts the user to update the xcode command line tools.\n // Unexpected token I in JSON at position 0\n if (error.message.includes('Unexpected token')) {\n Log.error(`Apple's simctl returned malformed JSON:\\n${input}`);\n }\n throw error;\n }\n}\n\n/** Get all runtime devices given a certain type. */\nasync function getRuntimesAsync(\n type: 'devices' | 'devicetypes' | 'runtimes' | 'pairs',\n query?: string | 'available'\n): Promise<SimulatorDeviceList> {\n const result = await simctlAsync(['list', type, '--json', query]);\n const info = parseSimControlJSONResults(result.stdout) as SimulatorDeviceList;\n\n for (const runtime of Object.keys(info.devices)) {\n // Given a string like 'com.apple.CoreSimulator.SimRuntime.tvOS-13-4'\n const runtimeSuffix = runtime.split('com.apple.CoreSimulator.SimRuntime.').pop()!;\n // Create an array [tvOS, 13, 4]\n const [osType, ...osVersionComponents] = runtimeSuffix.split('-');\n // Join the end components [13, 4] -> '13.4'\n const osVersion = osVersionComponents.join('.');\n const sims = info.devices[runtime];\n for (const device of sims) {\n device.runtime = runtime;\n device.osVersion = osVersion;\n device.windowName = `${device.name} (${osVersion})`;\n device.osType = osType as OSType;\n }\n }\n return info;\n}\n\n/** Return a list of iOS simulators. */\nexport async function getDevicesAsync(): Promise<Device[]> {\n const simulatorDeviceInfo = await getRuntimesAsync('devices');\n return Object.values(simulatorDeviceInfo.devices).flat();\n}\n\n/** Run a `simctl` command. */\nexport async function simctlAsync(\n args: (string | undefined)[],\n options?: SpawnOptions\n): Promise<SpawnResult> {\n return xcrunAsync(['simctl', ...args], options);\n}\n\nfunction resolveId(device: Partial<DeviceContext>): string {\n return device.udid ?? 'booted';\n}\n"],"names":["isOSType","getContainerPathAsync","getInfoPlistValueAsync","openUrlAsync","openAppIdAsync","bootAsync","getBootedSimulatorsAsync","isDeviceBootedAsync","bootDeviceAsync","installAsync","uninstallAsync","getDevicesAsync","simctlAsync","value","knownTypes","includes","Log","warn","join","device","appId","stdout","resolveId","trim","error","stderr","match","key","containerPath","ensuredContainerPath","output","spawnAsync","stdio","options","url","udid","results","openAppIdInternalAsync","status","CommandError","simulatorDeviceInfo","getRuntimesAsync","Object","values","devices","flatMap","runtime","filter","state","find","bootedDevice","filePath","parseSimControlJSONResults","input","JSON","parse","message","type","query","result","info","keys","runtimeSuffix","split","pop","osType","osVersionComponents","osVersion","sims","windowName","name","flat","args","xcrunAsync"],"mappings":"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"}
@@ -2,48 +2,104 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.onMessage = onMessage;
6
- var _chalk = _interopRequireDefault(require("chalk"));
7
- var _childProcess = require("child_process");
8
- var _os = require("os");
9
- var _path = _interopRequireDefault(require("path"));
10
- var _wrapAnsi = _interopRequireDefault(require("wrap-ansi"));
11
- var _simctl = require("./simctl");
12
- var Log = _interopRequireWildcard(require("../../../log"));
13
- var _errors = require("../../../utils/errors");
14
- var _exit = require("../../../utils/exit");
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
+ SimulatorLogStreamer: ()=>SimulatorLogStreamer,
13
+ onMessage: ()=>onMessage
14
+ });
15
+ function _chalk() {
16
+ const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
17
+ _chalk = function() {
18
+ return data;
19
+ };
20
+ return data;
21
+ }
22
+ function _childProcess() {
23
+ const data = require("child_process");
24
+ _childProcess = function() {
25
+ return data;
26
+ };
27
+ return data;
28
+ }
29
+ function _os() {
30
+ const data = require("os");
31
+ _os = function() {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
36
+ function _path() {
37
+ const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
38
+ _path = function() {
39
+ return data;
40
+ };
41
+ return data;
42
+ }
43
+ function _wrapAnsi() {
44
+ const data = /*#__PURE__*/ _interopRequireDefault(require("wrap-ansi"));
45
+ _wrapAnsi = function() {
46
+ return data;
47
+ };
48
+ return data;
49
+ }
50
+ const _simctl = require("./simctl");
51
+ const _log = /*#__PURE__*/ _interopRequireWildcard(require("../../../log"));
52
+ const _errors = require("../../../utils/errors");
53
+ const _exit = require("../../../utils/exit");
15
54
  function _interopRequireDefault(obj) {
16
55
  return obj && obj.__esModule ? obj : {
17
56
  default: obj
18
57
  };
19
58
  }
20
- function _interopRequireWildcard(obj) {
21
- if (obj && obj.__esModule) {
59
+ function _getRequireWildcardCache(nodeInterop) {
60
+ if (typeof WeakMap !== "function") return null;
61
+ var cacheBabelInterop = new WeakMap();
62
+ var cacheNodeInterop = new WeakMap();
63
+ return (_getRequireWildcardCache = function(nodeInterop) {
64
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
65
+ })(nodeInterop);
66
+ }
67
+ function _interopRequireWildcard(obj, nodeInterop) {
68
+ if (!nodeInterop && obj && obj.__esModule) {
22
69
  return obj;
23
- } else {
24
- var newObj = {};
25
- if (obj != null) {
26
- for(var key in obj){
27
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
28
- var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
29
- if (desc.get || desc.set) {
30
- Object.defineProperty(newObj, key, desc);
31
- } else {
32
- newObj[key] = obj[key];
33
- }
34
- }
70
+ }
71
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
72
+ return {
73
+ default: obj
74
+ };
75
+ }
76
+ var cache = _getRequireWildcardCache(nodeInterop);
77
+ if (cache && cache.has(obj)) {
78
+ return cache.get(obj);
79
+ }
80
+ var newObj = {};
81
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
82
+ for(var key in obj){
83
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
84
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
85
+ if (desc && (desc.get || desc.set)) {
86
+ Object.defineProperty(newObj, key, desc);
87
+ } else {
88
+ newObj[key] = obj[key];
35
89
  }
36
90
  }
37
- newObj.default = obj;
38
- return newObj;
39
91
  }
92
+ newObj.default = obj;
93
+ if (cache) {
94
+ cache.set(obj, newObj);
95
+ }
96
+ return newObj;
40
97
  }
41
98
  class SimulatorLogStreamer {
42
99
  static cache = [];
43
100
  static getStreamer = (device, resolver)=>{
44
101
  var ref;
45
- return (ref = SimulatorLogStreamer.cache.find((streamer)=>streamer.device.udid === device.udid
46
- )) != null ? ref : new SimulatorLogStreamer(device, resolver);
102
+ return (ref = SimulatorLogStreamer.cache.find((streamer)=>streamer.device.udid === device.udid)) != null ? ref : new SimulatorLogStreamer(device, resolver);
47
103
  };
48
104
  constructor(device, resolver){
49
105
  this.device = device;
@@ -67,7 +123,7 @@ class SimulatorLogStreamer {
67
123
  throw new _errors.CommandError(`Could not find pid for ${this.device.udid}`);
68
124
  }
69
125
  // xcrun simctl spawn booted log stream --process --style json
70
- this.childProcess = (0, _childProcess).spawn("xcrun", [
126
+ this.childProcess = (0, _childProcess().spawn)("xcrun", [
71
127
  "simctl",
72
128
  "spawn",
73
129
  this.device.udid,
@@ -91,11 +147,9 @@ class SimulatorLogStreamer {
91
147
  this.childProcess.stdout.on("data", (data)=>{
92
148
  // Sometimes more than one chunk comes at a time, here we split by system newline,
93
149
  // then trim and filter.
94
- const strings = data.toString().split(_os.EOL).map((value)=>value.trim()
95
- )// This filters out the first log which says something like:
150
+ const strings = data.toString().split(_os().EOL).map((value)=>value.trim())// This filters out the first log which says something like:
96
151
  // Filtering the log data using "process BEGINSWITH[cd] "my-app" AND type == 1024"
97
- .filter((value)=>value.startsWith("{")
98
- );
152
+ .filter((value)=>value.startsWith("{"));
99
153
  strings.forEach((str)=>{
100
154
  const simLog = parseMessageJson(str);
101
155
  if (!simLog) {
@@ -105,15 +159,15 @@ class SimulatorLogStreamer {
105
159
  });
106
160
  });
107
161
  this.childProcess.on("error", ({ message })=>{
108
- Log.debug("[simctl error]:", message);
162
+ _log.debug("[simctl error]:", message);
109
163
  });
110
- this.off = (0, _exit).installExitHooks(()=>{
164
+ this.off = (0, _exit.installExitHooks)(()=>{
111
165
  this.detachAsync.bind(this);
112
166
  });
113
167
  }
114
168
  detachAsync() {
115
- var _obj, ref2;
116
- (ref2 = (_obj = this).off) == null ? void 0 : ref2.call(_obj);
169
+ var _obj, ref;
170
+ (ref = (_obj = this).off) == null ? void 0 : ref.call(_obj);
117
171
  this.off = null;
118
172
  if (this.childProcess) {
119
173
  return new Promise((resolve)=>{
@@ -126,13 +180,12 @@ class SimulatorLogStreamer {
126
180
  return Promise.resolve();
127
181
  }
128
182
  }
129
- exports.SimulatorLogStreamer = SimulatorLogStreamer;
130
183
  function parseMessageJson(data) {
131
184
  const stringData = data.toString();
132
185
  try {
133
186
  return JSON.parse(stringData);
134
187
  } catch {
135
- Log.debug("Failed to parse simctl JSON message:\n" + stringData);
188
+ _log.debug("Failed to parse simctl JSON message:\n" + stringData);
136
189
  }
137
190
  return null;
138
191
  }
@@ -167,11 +220,11 @@ function isRunningBoardServicesLog(simLog) {
167
220
  }
168
221
  function formatMessage(simLog) {
169
222
  var ref;
170
- var ref3;
223
+ var ref1;
171
224
  // TODO: Maybe change "TCC" to "Consent" or "System".
172
- const category = _chalk.default.gray(`[${(ref3 = (ref = simLog.source) == null ? void 0 : ref.image) != null ? ref3 : simLog.subsystem}]`);
225
+ const category = _chalk().default.gray(`[${(ref1 = (ref = simLog.source) == null ? void 0 : ref.image) != null ? ref1 : simLog.subsystem}]`);
173
226
  const message = simLog.eventMessage;
174
- return (0, _wrapAnsi).default(category + " " + message, process.stdout.columns || 80);
227
+ return (0, _wrapAnsi().default)(category + " " + message, process.stdout.columns || 80);
175
228
  }
176
229
  function onMessage(simLog) {
177
230
  let hasLogged = false;
@@ -181,18 +234,18 @@ function onMessage(simLog) {
181
234
  !isReactLog(simLog) && !isCoreTelephonyLog(simLog) && !isWebKitLog(simLog) && !isRunningBoardServicesLog(simLog)) {
182
235
  hasLogged = true;
183
236
  // Sim: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
184
- Log.error(formatMessage(simLog));
237
+ _log.error(formatMessage(simLog));
185
238
  }
186
239
  } else if (simLog.eventMessage) {
187
240
  var ref;
188
241
  // If the source has a file (i.e. not a system log).
189
242
  if (((ref = simLog.source) == null ? void 0 : ref.file) || simLog.eventMessage.includes("Terminating app due to uncaught exception")) {
190
243
  hasLogged = true;
191
- Log.log(formatMessage(simLog));
244
+ _log.log(formatMessage(simLog));
192
245
  }
193
246
  }
194
247
  if (!hasLogged) {
195
- Log.debug(formatMessage(simLog));
248
+ _log.debug(formatMessage(simLog));
196
249
  } else {
197
250
  // console.log('DATA:', JSON.stringify(simLog));
198
251
  }
@@ -203,7 +256,7 @@ function onMessage(simLog) {
203
256
  * @param bundleIdentifier
204
257
  * @returns Image name like `Exponent` and `null` when the app is not installed on the provided simulator.
205
258
  */ async function getImageNameFromBundleIdentifierAsync(udid, bundleIdentifier) {
206
- const containerPath = await (0, _simctl).getContainerPathAsync({
259
+ const containerPath = await (0, _simctl.getContainerPathAsync)({
207
260
  udid
208
261
  }, {
209
262
  appId: bundleIdentifier
@@ -214,7 +267,7 @@ function onMessage(simLog) {
214
267
  return null;
215
268
  }
216
269
  function getImageNameFromContainerPath(binaryPath) {
217
- return _path.default.basename(binaryPath).split(".")[0];
270
+ return _path().default.basename(binaryPath).split(".")[0];
218
271
  }
219
272
 
220
273
  //# sourceMappingURL=simctlLogging.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/start/platforms/ios/simctlLogging.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { ChildProcessWithoutNullStreams, spawn } from 'child_process';\nimport { EOL } from 'os';\nimport path from 'path';\nimport wrapAnsi from 'wrap-ansi';\n\nimport { Device, getContainerPathAsync } from './simctl';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nexport type SimControlLog = {\n /**\n * 258753568922927108\n */\n traceID: number;\n /**\n *\n * \"Connection 1: done\",\n */\n eventMessage: string;\n /**\n * \"logEvent\" | \"activityCreateEvent\",\n */\n eventType: 'logEvent' | 'activityCreateEvent';\n source: null | {\n /**\n * 'RCTDefaultLogFunction_block_invoke' | '__TCC_CRASHING_DUE_TO_PRIVACY_VIOLATION__'\n */\n symbol: string;\n line: number;\n /**\n * 'TCC' | 'Security' | 'CFNetwork' | 'libnetwork.dylib' | 'myapp'\n *\n * TCC is apple sys, it means \"Transparency, Consent, and Control\"\n */\n image: string;\n /**\n * 'RCTLog.mm' | ''\n */\n file: string;\n };\n /**\n * \"Connection %llu: done\"\n */\n formatString: string;\n /**\n * 0\n */\n activityIdentifier: number;\n subsystem:\n | ''\n | 'com.apple.network'\n | 'com.facebook.react.log'\n | 'com.apple.TCC'\n | 'com.apple.CoreTelephony'\n | 'com.apple.WebKit'\n | 'com.apple.runningboard'\n | string;\n category: '' | 'access' | 'connection' | 'plugin';\n /**\n * \"2021-03-15 15:36:28.004331-0700\"\n */\n timestamp: string;\n /**\n * 706567072091713\n */\n machTimestamp: number;\n /**\n * \"Default\"\n */\n messageType: 'Default' | 'Error';\n /**\n * 15192\n */\n processID: number;\n};\n\ntype ProcessResolver =\n | {\n pid: string;\n }\n | {\n appId: string;\n };\n\nexport class SimulatorLogStreamer {\n private childProcess: ChildProcessWithoutNullStreams | null = null;\n\n static cache: SimulatorLogStreamer[] = [];\n\n static getStreamer = (device: Pick<Device, 'udid'>, resolver: ProcessResolver) => {\n return (\n SimulatorLogStreamer.cache.find((streamer) => streamer.device.udid === device.udid) ??\n new SimulatorLogStreamer(device, resolver)\n );\n };\n\n constructor(\n public device: Pick<Device, 'udid'>,\n public resolver: ProcessResolver\n ) {}\n\n isAttached() {\n return !!this.childProcess;\n }\n\n async resolvePidAsync() {\n if ('pid' in this.resolver) {\n return this.resolver.pid;\n }\n return getImageNameFromBundleIdentifierAsync(this.device.udid, this.resolver.appId);\n }\n\n async attachAsync() {\n await this.detachAsync();\n\n const pid = await this.resolvePidAsync();\n\n if (!pid) {\n throw new CommandError(`Could not find pid for ${this.device.udid}`);\n }\n\n // xcrun simctl spawn booted log stream --process --style json\n this.childProcess = spawn('xcrun', [\n 'simctl',\n 'spawn',\n this.device.udid,\n 'log',\n 'stream',\n '--process',\n pid,\n // ndjson provides a better format than json.\n '--style',\n 'ndjson',\n // Provide the source so we can filter logs better\n '--source',\n // log, activity, trace -- activity was related to layouts, trace didn't work, so that leaves log.\n // Passing nothing combines all three, but we don't use activity.\n '--type',\n 'log',\n // backtrace doesn't seem very useful in basic cases.\n // TODO: Maybe we can format as a stack trace for native errors.\n '--no-backtrace',\n ]);\n\n this.childProcess.stdout.on('data', (data: Buffer) => {\n // Sometimes more than one chunk comes at a time, here we split by system newline,\n // then trim and filter.\n const strings = data\n .toString()\n .split(EOL)\n .map((value) => value.trim())\n // This filters out the first log which says something like:\n // Filtering the log data using \"process BEGINSWITH[cd] \"my-app\" AND type == 1024\"\n .filter((value) => value.startsWith('{'));\n\n strings.forEach((str) => {\n const simLog = parseMessageJson(str);\n if (!simLog) {\n return;\n }\n onMessage(simLog);\n });\n });\n\n this.childProcess.on('error', ({ message }) => {\n Log.debug('[simctl error]:', message);\n });\n\n this.off = installExitHooks(() => {\n this.detachAsync.bind(this);\n });\n }\n\n private off: (() => void) | null = null;\n\n detachAsync() {\n this.off?.();\n this.off = null;\n if (this.childProcess) {\n return new Promise<void>((resolve) => {\n this.childProcess?.on('close', resolve);\n this.childProcess?.kill();\n this.childProcess = null;\n });\n }\n return Promise.resolve();\n }\n}\n\nfunction parseMessageJson(data: string) {\n const stringData = data.toString();\n try {\n return JSON.parse(stringData) as SimControlLog;\n } catch {\n Log.debug('Failed to parse simctl JSON message:\\n' + stringData);\n }\n return null;\n}\n\n// There are a lot of networking logs in RN that aren't relevant to the user.\nfunction isNetworkLog(simLog: SimControlLog): boolean {\n return (\n simLog.subsystem === 'com.apple.network' ||\n simLog.category === 'connection' ||\n simLog.source?.image === 'CFNetwork'\n );\n}\n\nfunction isReactLog(simLog: SimControlLog): boolean {\n return simLog.subsystem === 'com.facebook.react.log' && simLog.source?.file === 'RCTLog.mm';\n}\n\n// It's not clear what these are but they aren't very useful.\n// (The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated)\n// We can add them later if need.\nfunction isCoreTelephonyLog(simLog: SimControlLog): boolean {\n // [CoreTelephony] Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099\n // \"The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.\" UserInfo={NSDebugDescription=The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.}\n return simLog.subsystem === 'com.apple.CoreTelephony';\n}\n\n// https://stackoverflow.com/a/65313219/4047926\nfunction isWebKitLog(simLog: SimControlLog): boolean {\n // [WebKit] 0x1143ca500 - ProcessAssertion: Failed to acquire RBS Background assertion 'WebProcess Background Assertion' for process with PID 27084, error: Error Domain=RBSAssertionErrorDomain Code=3 \"Target is not running or required target\n // entitlement is missing\" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:\"com.apple.webkit\" name:\"Background\" sourceEnvironment:\"(null)\">, NSLocalizedFailureReason=Target is not running or required target entitlement is missing}\n return simLog.subsystem === 'com.apple.WebKit';\n}\n\n// Similar to WebKit logs\nfunction isRunningBoardServicesLog(simLog: SimControlLog): boolean {\n // [RunningBoardServices] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=3 \"Target is not running or required target entitlement is missing\" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:\"com.apple.webkit\"\n // name:\"Background\" sourceEnvironment:\"(null)\">, NSLocalizedFailureReason=Target is not running or required target entitlement is missing}>\n return simLog.subsystem === 'com.apple.runningboard';\n}\n\nfunction formatMessage(simLog: SimControlLog): string {\n // TODO: Maybe change \"TCC\" to \"Consent\" or \"System\".\n const category = chalk.gray(`[${simLog.source?.image ?? simLog.subsystem}]`);\n const message = simLog.eventMessage;\n return wrapAnsi(category + ' ' + message, process.stdout.columns || 80);\n}\n\nexport function onMessage(simLog: SimControlLog) {\n let hasLogged = false;\n\n if (simLog.messageType === 'Error') {\n if (\n // Hide all networking errors which are mostly useless.\n !isNetworkLog(simLog) &&\n // Showing React errors will result in duplicate messages.\n !isReactLog(simLog) &&\n !isCoreTelephonyLog(simLog) &&\n !isWebKitLog(simLog) &&\n !isRunningBoardServicesLog(simLog)\n ) {\n hasLogged = true;\n // Sim: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.\n Log.error(formatMessage(simLog));\n }\n } else if (simLog.eventMessage) {\n // If the source has a file (i.e. not a system log).\n if (\n simLog.source?.file ||\n simLog.eventMessage.includes('Terminating app due to uncaught exception')\n ) {\n hasLogged = true;\n Log.log(formatMessage(simLog));\n }\n }\n\n if (!hasLogged) {\n Log.debug(formatMessage(simLog));\n } else {\n // console.log('DATA:', JSON.stringify(simLog));\n }\n}\n\n/**\n *\n * @param udid\n * @param bundleIdentifier\n * @returns Image name like `Exponent` and `null` when the app is not installed on the provided simulator.\n */\nasync function getImageNameFromBundleIdentifierAsync(\n udid: string,\n bundleIdentifier: string\n): Promise<string | null> {\n const containerPath = await getContainerPathAsync({ udid }, { appId: bundleIdentifier });\n\n if (containerPath) {\n return getImageNameFromContainerPath(containerPath);\n }\n return null;\n}\n\nfunction getImageNameFromContainerPath(binaryPath: string): string {\n return path.basename(binaryPath).split('.')[0];\n}\n"],"names":["onMessage","Log","SimulatorLogStreamer","cache","getStreamer","device","resolver","find","streamer","udid","constructor","childProcess","off","isAttached","resolvePidAsync","pid","getImageNameFromBundleIdentifierAsync","appId","attachAsync","detachAsync","CommandError","spawn","stdout","on","data","strings","toString","split","EOL","map","value","trim","filter","startsWith","forEach","str","simLog","parseMessageJson","message","debug","installExitHooks","bind","Promise","resolve","kill","stringData","JSON","parse","isNetworkLog","subsystem","category","source","image","isReactLog","file","isCoreTelephonyLog","isWebKitLog","isRunningBoardServicesLog","formatMessage","chalk","gray","eventMessage","wrapAnsi","process","columns","hasLogged","messageType","error","includes","log","bundleIdentifier","containerPath","getContainerPathAsync","getImageNameFromContainerPath","binaryPath","path","basename"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/start/platforms/ios/simctlLogging.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { ChildProcessWithoutNullStreams, spawn } from 'child_process';\nimport { EOL } from 'os';\nimport path from 'path';\nimport wrapAnsi from 'wrap-ansi';\n\nimport { Device, getContainerPathAsync } from './simctl';\nimport * as Log from '../../../log';\nimport { CommandError } from '../../../utils/errors';\nimport { installExitHooks } from '../../../utils/exit';\n\nexport type SimControlLog = {\n /**\n * 258753568922927108\n */\n traceID: number;\n /**\n *\n * \"Connection 1: done\",\n */\n eventMessage: string;\n /**\n * \"logEvent\" | \"activityCreateEvent\",\n */\n eventType: 'logEvent' | 'activityCreateEvent';\n source: null | {\n /**\n * 'RCTDefaultLogFunction_block_invoke' | '__TCC_CRASHING_DUE_TO_PRIVACY_VIOLATION__'\n */\n symbol: string;\n line: number;\n /**\n * 'TCC' | 'Security' | 'CFNetwork' | 'libnetwork.dylib' | 'myapp'\n *\n * TCC is apple sys, it means \"Transparency, Consent, and Control\"\n */\n image: string;\n /**\n * 'RCTLog.mm' | ''\n */\n file: string;\n };\n /**\n * \"Connection %llu: done\"\n */\n formatString: string;\n /**\n * 0\n */\n activityIdentifier: number;\n subsystem:\n | ''\n | 'com.apple.network'\n | 'com.facebook.react.log'\n | 'com.apple.TCC'\n | 'com.apple.CoreTelephony'\n | 'com.apple.WebKit'\n | 'com.apple.runningboard'\n | string;\n category: '' | 'access' | 'connection' | 'plugin';\n /**\n * \"2021-03-15 15:36:28.004331-0700\"\n */\n timestamp: string;\n /**\n * 706567072091713\n */\n machTimestamp: number;\n /**\n * \"Default\"\n */\n messageType: 'Default' | 'Error';\n /**\n * 15192\n */\n processID: number;\n};\n\ntype ProcessResolver =\n | {\n pid: string;\n }\n | {\n appId: string;\n };\n\nexport class SimulatorLogStreamer {\n private childProcess: ChildProcessWithoutNullStreams | null = null;\n\n static cache: SimulatorLogStreamer[] = [];\n\n static getStreamer = (device: Pick<Device, 'udid'>, resolver: ProcessResolver) => {\n return (\n SimulatorLogStreamer.cache.find((streamer) => streamer.device.udid === device.udid) ??\n new SimulatorLogStreamer(device, resolver)\n );\n };\n\n constructor(\n public device: Pick<Device, 'udid'>,\n public resolver: ProcessResolver\n ) {}\n\n isAttached() {\n return !!this.childProcess;\n }\n\n async resolvePidAsync() {\n if ('pid' in this.resolver) {\n return this.resolver.pid;\n }\n return getImageNameFromBundleIdentifierAsync(this.device.udid, this.resolver.appId);\n }\n\n async attachAsync() {\n await this.detachAsync();\n\n const pid = await this.resolvePidAsync();\n\n if (!pid) {\n throw new CommandError(`Could not find pid for ${this.device.udid}`);\n }\n\n // xcrun simctl spawn booted log stream --process --style json\n this.childProcess = spawn('xcrun', [\n 'simctl',\n 'spawn',\n this.device.udid,\n 'log',\n 'stream',\n '--process',\n pid,\n // ndjson provides a better format than json.\n '--style',\n 'ndjson',\n // Provide the source so we can filter logs better\n '--source',\n // log, activity, trace -- activity was related to layouts, trace didn't work, so that leaves log.\n // Passing nothing combines all three, but we don't use activity.\n '--type',\n 'log',\n // backtrace doesn't seem very useful in basic cases.\n // TODO: Maybe we can format as a stack trace for native errors.\n '--no-backtrace',\n ]);\n\n this.childProcess.stdout.on('data', (data: Buffer) => {\n // Sometimes more than one chunk comes at a time, here we split by system newline,\n // then trim and filter.\n const strings = data\n .toString()\n .split(EOL)\n .map((value) => value.trim())\n // This filters out the first log which says something like:\n // Filtering the log data using \"process BEGINSWITH[cd] \"my-app\" AND type == 1024\"\n .filter((value) => value.startsWith('{'));\n\n strings.forEach((str) => {\n const simLog = parseMessageJson(str);\n if (!simLog) {\n return;\n }\n onMessage(simLog);\n });\n });\n\n this.childProcess.on('error', ({ message }) => {\n Log.debug('[simctl error]:', message);\n });\n\n this.off = installExitHooks(() => {\n this.detachAsync.bind(this);\n });\n }\n\n private off: (() => void) | null = null;\n\n detachAsync() {\n this.off?.();\n this.off = null;\n if (this.childProcess) {\n return new Promise<void>((resolve) => {\n this.childProcess?.on('close', resolve);\n this.childProcess?.kill();\n this.childProcess = null;\n });\n }\n return Promise.resolve();\n }\n}\n\nfunction parseMessageJson(data: string) {\n const stringData = data.toString();\n try {\n return JSON.parse(stringData) as SimControlLog;\n } catch {\n Log.debug('Failed to parse simctl JSON message:\\n' + stringData);\n }\n return null;\n}\n\n// There are a lot of networking logs in RN that aren't relevant to the user.\nfunction isNetworkLog(simLog: SimControlLog): boolean {\n return (\n simLog.subsystem === 'com.apple.network' ||\n simLog.category === 'connection' ||\n simLog.source?.image === 'CFNetwork'\n );\n}\n\nfunction isReactLog(simLog: SimControlLog): boolean {\n return simLog.subsystem === 'com.facebook.react.log' && simLog.source?.file === 'RCTLog.mm';\n}\n\n// It's not clear what these are but they aren't very useful.\n// (The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated)\n// We can add them later if need.\nfunction isCoreTelephonyLog(simLog: SimControlLog): boolean {\n // [CoreTelephony] Updating selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099\n // \"The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.\" UserInfo={NSDebugDescription=The connection to service on pid 0 named com.apple.commcenter.coretelephony.xpc was invalidated.}\n return simLog.subsystem === 'com.apple.CoreTelephony';\n}\n\n// https://stackoverflow.com/a/65313219/4047926\nfunction isWebKitLog(simLog: SimControlLog): boolean {\n // [WebKit] 0x1143ca500 - ProcessAssertion: Failed to acquire RBS Background assertion 'WebProcess Background Assertion' for process with PID 27084, error: Error Domain=RBSAssertionErrorDomain Code=3 \"Target is not running or required target\n // entitlement is missing\" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:\"com.apple.webkit\" name:\"Background\" sourceEnvironment:\"(null)\">, NSLocalizedFailureReason=Target is not running or required target entitlement is missing}\n return simLog.subsystem === 'com.apple.WebKit';\n}\n\n// Similar to WebKit logs\nfunction isRunningBoardServicesLog(simLog: SimControlLog): boolean {\n // [RunningBoardServices] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=3 \"Target is not running or required target entitlement is missing\" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:\"com.apple.webkit\"\n // name:\"Background\" sourceEnvironment:\"(null)\">, NSLocalizedFailureReason=Target is not running or required target entitlement is missing}>\n return simLog.subsystem === 'com.apple.runningboard';\n}\n\nfunction formatMessage(simLog: SimControlLog): string {\n // TODO: Maybe change \"TCC\" to \"Consent\" or \"System\".\n const category = chalk.gray(`[${simLog.source?.image ?? simLog.subsystem}]`);\n const message = simLog.eventMessage;\n return wrapAnsi(category + ' ' + message, process.stdout.columns || 80);\n}\n\nexport function onMessage(simLog: SimControlLog) {\n let hasLogged = false;\n\n if (simLog.messageType === 'Error') {\n if (\n // Hide all networking errors which are mostly useless.\n !isNetworkLog(simLog) &&\n // Showing React errors will result in duplicate messages.\n !isReactLog(simLog) &&\n !isCoreTelephonyLog(simLog) &&\n !isWebKitLog(simLog) &&\n !isRunningBoardServicesLog(simLog)\n ) {\n hasLogged = true;\n // Sim: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.\n Log.error(formatMessage(simLog));\n }\n } else if (simLog.eventMessage) {\n // If the source has a file (i.e. not a system log).\n if (\n simLog.source?.file ||\n simLog.eventMessage.includes('Terminating app due to uncaught exception')\n ) {\n hasLogged = true;\n Log.log(formatMessage(simLog));\n }\n }\n\n if (!hasLogged) {\n Log.debug(formatMessage(simLog));\n } else {\n // console.log('DATA:', JSON.stringify(simLog));\n }\n}\n\n/**\n *\n * @param udid\n * @param bundleIdentifier\n * @returns Image name like `Exponent` and `null` when the app is not installed on the provided simulator.\n */\nasync function getImageNameFromBundleIdentifierAsync(\n udid: string,\n bundleIdentifier: string\n): Promise<string | null> {\n const containerPath = await getContainerPathAsync({ udid }, { appId: bundleIdentifier });\n\n if (containerPath) {\n return getImageNameFromContainerPath(containerPath);\n }\n return null;\n}\n\nfunction getImageNameFromContainerPath(binaryPath: string): string {\n return path.basename(binaryPath).split('.')[0];\n}\n"],"names":["SimulatorLogStreamer","onMessage","cache","getStreamer","device","resolver","find","streamer","udid","constructor","childProcess","off","isAttached","resolvePidAsync","pid","getImageNameFromBundleIdentifierAsync","appId","attachAsync","detachAsync","CommandError","spawn","stdout","on","data","strings","toString","split","EOL","map","value","trim","filter","startsWith","forEach","str","simLog","parseMessageJson","message","Log","debug","installExitHooks","bind","Promise","resolve","kill","stringData","JSON","parse","isNetworkLog","subsystem","category","source","image","isReactLog","file","isCoreTelephonyLog","isWebKitLog","isRunningBoardServicesLog","formatMessage","chalk","gray","eventMessage","wrapAnsi","process","columns","hasLogged","messageType","error","includes","log","bundleIdentifier","containerPath","getContainerPathAsync","getImageNameFromContainerPath","binaryPath","path","basename"],"mappings":"AAAA;;;;;;;;;;;IAsFaA,oBAAoB,MAApBA,oBAAoB;IA8JjBC,SAAS,MAATA,SAAS;;;8DApPP,OAAO;;;;;;;yBAC6B,eAAe;;;;;;;yBACjD,IAAI;;;;;;;8DACP,MAAM;;;;;;;8DACF,WAAW;;;;;;wBAEc,UAAU;2DACnC,cAAc;wBACN,uBAAuB;sBACnB,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6E/C,MAAMD,oBAAoB;IAG/B,OAAOE,KAAK,GAA2B,EAAE,CAAC;IAE1C,OAAOC,WAAW,GAAG,CAACC,MAA4B,EAAEC,QAAyB,GAAK;YAE9EL,GAAmF;QADrF,OACEA,CAAAA,GAAmF,GAAnFA,oBAAoB,CAACE,KAAK,CAACI,IAAI,CAAC,CAACC,QAAQ,GAAKA,QAAQ,CAACH,MAAM,CAACI,IAAI,KAAKJ,MAAM,CAACI,IAAI,CAAC,YAAnFR,GAAmF,GACnF,IAAIA,oBAAoB,CAACI,MAAM,EAAEC,QAAQ,CAAC,CAC1C;IACJ,CAAC,CAAC;IAEFI,YACSL,MAA4B,EAC5BC,QAAyB,CAChC;QAFOD,cAAAA,MAA4B,CAAA;QAC5BC,gBAAAA,QAAyB,CAAA;aAb1BK,YAAY,GAA0C,IAAI;aAwF1DC,GAAG,GAAwB,IAAI;IA1EpC;IAEHC,UAAU,GAAG;QACX,OAAO,CAAC,CAAC,IAAI,CAACF,YAAY,CAAC;IAC7B;UAEMG,eAAe,GAAG;QACtB,IAAI,KAAK,IAAI,IAAI,CAACR,QAAQ,EAAE;YAC1B,OAAO,IAAI,CAACA,QAAQ,CAACS,GAAG,CAAC;QAC3B,CAAC;QACD,OAAOC,qCAAqC,CAAC,IAAI,CAACX,MAAM,CAACI,IAAI,EAAE,IAAI,CAACH,QAAQ,CAACW,KAAK,CAAC,CAAC;IACtF;UAEMC,WAAW,GAAG;QAClB,MAAM,IAAI,CAACC,WAAW,EAAE,CAAC;QAEzB,MAAMJ,GAAG,GAAG,MAAM,IAAI,CAACD,eAAe,EAAE,AAAC;QAEzC,IAAI,CAACC,GAAG,EAAE;YACR,MAAM,IAAIK,OAAY,aAAA,CAAC,CAAC,uBAAuB,EAAE,IAAI,CAACf,MAAM,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAACE,YAAY,GAAGU,IAAAA,aAAK,EAAA,MAAA,EAAC,OAAO,EAAE;YACjC,QAAQ;YACR,OAAO;YACP,IAAI,CAAChB,MAAM,CAACI,IAAI;YAChB,KAAK;YACL,QAAQ;YACR,WAAW;YACXM,GAAG;YACH,6CAA6C;YAC7C,SAAS;YACT,QAAQ;YACR,kDAAkD;YAClD,UAAU;YACV,kGAAkG;YAClG,iEAAiE;YACjE,QAAQ;YACR,KAAK;YACL,qDAAqD;YACrD,gEAAgE;YAChE,gBAAgB;SACjB,CAAC,CAAC;QAEH,IAAI,CAACJ,YAAY,CAACW,MAAM,CAACC,EAAE,CAAC,MAAM,EAAE,CAACC,IAAY,GAAK;YACpD,kFAAkF;YAClF,wBAAwB;YACxB,MAAMC,OAAO,GAAGD,IAAI,CACjBE,QAAQ,EAAE,CACVC,KAAK,CAACC,GAAG,EAAA,IAAA,CAAC,CACVC,GAAG,CAAC,CAACC,KAAK,GAAKA,KAAK,CAACC,IAAI,EAAE,CAAC,AAC7B,4DAA4D;YAC5D,kFAAkF;aACjFC,MAAM,CAAC,CAACF,KAAK,GAAKA,KAAK,CAACG,UAAU,CAAC,GAAG,CAAC,CAAC,AAAC;YAE5CR,OAAO,CAACS,OAAO,CAAC,CAACC,GAAG,GAAK;gBACvB,MAAMC,MAAM,GAAGC,gBAAgB,CAACF,GAAG,CAAC,AAAC;gBACrC,IAAI,CAACC,MAAM,EAAE;oBACX,OAAO;gBACT,CAAC;gBACDlC,SAAS,CAACkC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAACzB,YAAY,CAACY,EAAE,CAAC,OAAO,EAAE,CAAC,EAAEe,OAAO,CAAA,EAAE,GAAK;YAC7CC,IAAG,CAACC,KAAK,CAAC,iBAAiB,EAAEF,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC1B,GAAG,GAAG6B,IAAAA,KAAgB,iBAAA,EAAC,IAAM;YAChC,IAAI,CAACtB,WAAW,CAACuB,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL;IAIAvB,WAAW,GAAG;YACZ,IAAI,AAAI,EAAR,GAAQ;QAAR,CAAA,GAAQ,GAAR,CAAA,IAAI,GAAJ,IAAI,EAACP,GAAG,SAAI,GAAZ,KAAA,CAAY,GAAZ,GAAQ,CAAR,IAAY,CAAZ,IAAI,CAAQ,CAAC;QACb,IAAI,CAACA,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAACD,YAAY,EAAE;YACrB,OAAO,IAAIgC,OAAO,CAAO,CAACC,OAAO,GAAK;oBACpC,GAAiB,EACjB,IAAiB;gBADjB,CAAA,GAAiB,GAAjB,IAAI,CAACjC,YAAY,SAAI,GAArB,KAAA,CAAqB,GAArB,GAAiB,CAAEY,EAAE,CAAC,OAAO,EAAEqB,OAAO,CAAC,CAAC;gBACxC,CAAA,IAAiB,GAAjB,IAAI,CAACjC,YAAY,SAAM,GAAvB,KAAA,CAAuB,GAAvB,IAAiB,CAAEkC,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAClC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAOgC,OAAO,CAACC,OAAO,EAAE,CAAC;IAC3B;CACD;AAED,SAASP,gBAAgB,CAACb,IAAY,EAAE;IACtC,MAAMsB,UAAU,GAAGtB,IAAI,CAACE,QAAQ,EAAE,AAAC;IACnC,IAAI;QACF,OAAOqB,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAkB;IACjD,EAAE,OAAM;QACNP,IAAG,CAACC,KAAK,CAAC,wCAAwC,GAAGM,UAAU,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E,SAASG,YAAY,CAACb,MAAqB,EAAW;QAIlDA,GAAa;IAHf,OACEA,MAAM,CAACc,SAAS,KAAK,mBAAmB,IACxCd,MAAM,CAACe,QAAQ,KAAK,YAAY,IAChCf,CAAAA,CAAAA,GAAa,GAAbA,MAAM,CAACgB,MAAM,SAAO,GAApBhB,KAAAA,CAAoB,GAApBA,GAAa,CAAEiB,KAAK,CAAA,KAAK,WAAW,CACpC;AACJ,CAAC;AAED,SAASC,UAAU,CAAClB,MAAqB,EAAW;QACMA,GAAa;IAArE,OAAOA,MAAM,CAACc,SAAS,KAAK,wBAAwB,IAAId,CAAAA,CAAAA,GAAa,GAAbA,MAAM,CAACgB,MAAM,SAAM,GAAnBhB,KAAAA,CAAmB,GAAnBA,GAAa,CAAEmB,IAAI,CAAA,KAAK,WAAW,CAAC;AAC9F,CAAC;AAED,6DAA6D;AAC7D,oGAAoG;AACpG,iCAAiC;AACjC,SAASC,kBAAkB,CAACpB,MAAqB,EAAW;IAC1D,4FAA4F;IAC5F,oOAAoO;IACpO,OAAOA,MAAM,CAACc,SAAS,KAAK,yBAAyB,CAAC;AACxD,CAAC;AAED,+CAA+C;AAC/C,SAASO,WAAW,CAACrB,MAAqB,EAAW;IACnD,iPAAiP;IACjP,kPAAkP;IAClP,OAAOA,MAAM,CAACc,SAAS,KAAK,kBAAkB,CAAC;AACjD,CAAC;AAED,yBAAyB;AACzB,SAASQ,yBAAyB,CAACtB,MAAqB,EAAW;IACjE,kPAAkP;IAClP,4IAA4I;IAC5I,OAAOA,MAAM,CAACc,SAAS,KAAK,wBAAwB,CAAC;AACvD,CAAC;AAED,SAASS,aAAa,CAACvB,MAAqB,EAAU;QAEpBA,GAAa;QAAbA,IAAoB;IADpD,qDAAqD;IACrD,MAAMe,QAAQ,GAAGS,MAAK,EAAA,QAAA,CAACC,IAAI,CAAC,CAAC,CAAC,EAAEzB,CAAAA,IAAoB,GAApBA,CAAAA,GAAa,GAAbA,MAAM,CAACgB,MAAM,SAAO,GAApBhB,KAAAA,CAAoB,GAApBA,GAAa,CAAEiB,KAAK,YAApBjB,IAAoB,GAAIA,MAAM,CAACc,SAAS,CAAC,CAAC,CAAC,CAAC,AAAC;IAC7E,MAAMZ,OAAO,GAAGF,MAAM,CAAC0B,YAAY,AAAC;IACpC,OAAOC,IAAAA,SAAQ,EAAA,QAAA,EAACZ,QAAQ,GAAG,GAAG,GAAGb,OAAO,EAAE0B,OAAO,CAAC1C,MAAM,CAAC2C,OAAO,IAAI,EAAE,CAAC,CAAC;AAC1E,CAAC;AAEM,SAAS/D,SAAS,CAACkC,MAAqB,EAAE;IAC/C,IAAI8B,SAAS,GAAG,KAAK,AAAC;IAEtB,IAAI9B,MAAM,CAAC+B,WAAW,KAAK,OAAO,EAAE;QAClC,IACE,uDAAuD;QACvD,CAAClB,YAAY,CAACb,MAAM,CAAC,IACrB,0DAA0D;QAC1D,CAACkB,UAAU,CAAClB,MAAM,CAAC,IACnB,CAACoB,kBAAkB,CAACpB,MAAM,CAAC,IAC3B,CAACqB,WAAW,CAACrB,MAAM,CAAC,IACpB,CAACsB,yBAAyB,CAACtB,MAAM,CAAC,EAClC;YACA8B,SAAS,GAAG,IAAI,CAAC;YACjB,yPAAyP;YACzP3B,IAAG,CAAC6B,KAAK,CAACT,aAAa,CAACvB,MAAM,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,OAAO,IAAIA,MAAM,CAAC0B,YAAY,EAAE;YAG5B1B,GAAa;QAFf,oDAAoD;QACpD,IACEA,CAAAA,CAAAA,GAAa,GAAbA,MAAM,CAACgB,MAAM,SAAM,GAAnBhB,KAAAA,CAAmB,GAAnBA,GAAa,CAAEmB,IAAI,CAAA,IACnBnB,MAAM,CAAC0B,YAAY,CAACO,QAAQ,CAAC,2CAA2C,CAAC,EACzE;YACAH,SAAS,GAAG,IAAI,CAAC;YACjB3B,IAAG,CAAC+B,GAAG,CAACX,aAAa,CAACvB,MAAM,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,IAAI,CAAC8B,SAAS,EAAE;QACd3B,IAAG,CAACC,KAAK,CAACmB,aAAa,CAACvB,MAAM,CAAC,CAAC,CAAC;IACnC,OAAO;IACL,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED;;;;;CAKC,GACD,eAAepB,qCAAqC,CAClDP,IAAY,EACZ8D,gBAAwB,EACA;IACxB,MAAMC,aAAa,GAAG,MAAMC,IAAAA,OAAqB,sBAAA,EAAC;QAAEhE,IAAI;KAAE,EAAE;QAAEQ,KAAK,EAAEsD,gBAAgB;KAAE,CAAC,AAAC;IAEzF,IAAIC,aAAa,EAAE;QACjB,OAAOE,6BAA6B,CAACF,aAAa,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAASE,6BAA6B,CAACC,UAAkB,EAAU;IACjE,OAAOC,KAAI,EAAA,QAAA,CAACC,QAAQ,CAACF,UAAU,CAAC,CAAChD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}