@depup/expo__cli 55.0.16-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (782) hide show
  1. package/README.md +55 -0
  2. package/add-module.js +8 -0
  3. package/build/bin/cli +278 -0
  4. package/build/bin/cli.map +1 -0
  5. package/build/metro-require/require.js +608 -0
  6. package/build/src/api/endpoint.js +39 -0
  7. package/build/src/api/endpoint.js.map +1 -0
  8. package/build/src/api/getExpoGoIntermediateCertificate.js +23 -0
  9. package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -0
  10. package/build/src/api/getExpoSchema.js +97 -0
  11. package/build/src/api/getExpoSchema.js.map +1 -0
  12. package/build/src/api/getNativeModuleVersions.js +37 -0
  13. package/build/src/api/getNativeModuleVersions.js.map +1 -0
  14. package/build/src/api/getProjectDevelopmentCertificate.js +26 -0
  15. package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -0
  16. package/build/src/api/getVersions.js +29 -0
  17. package/build/src/api/getVersions.js.map +1 -0
  18. package/build/src/api/graphql/client.js +204 -0
  19. package/build/src/api/graphql/client.js.map +1 -0
  20. package/build/src/api/graphql/queries/AppQuery.js +40 -0
  21. package/build/src/api/graphql/queries/AppQuery.js.map +1 -0
  22. package/build/src/api/graphql/queries/UserQuery.js +63 -0
  23. package/build/src/api/graphql/queries/UserQuery.js.map +1 -0
  24. package/build/src/api/rest/cache/FileSystemResponseCache.js +184 -0
  25. package/build/src/api/rest/cache/FileSystemResponseCache.js.map +1 -0
  26. package/build/src/api/rest/cache/ResponseCache.js +116 -0
  27. package/build/src/api/rest/cache/ResponseCache.js.map +1 -0
  28. package/build/src/api/rest/cache/wrapFetchWithCache.js +76 -0
  29. package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -0
  30. package/build/src/api/rest/client.js +168 -0
  31. package/build/src/api/rest/client.js.map +1 -0
  32. package/build/src/api/rest/client.types.js +6 -0
  33. package/build/src/api/rest/client.types.js.map +1 -0
  34. package/build/src/api/rest/wrapFetchWithBaseUrl.js +32 -0
  35. package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -0
  36. package/build/src/api/rest/wrapFetchWithOffline.js +26 -0
  37. package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -0
  38. package/build/src/api/rest/wrapFetchWithProgress.js +108 -0
  39. package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -0
  40. package/build/src/api/rest/wrapFetchWithUserAgent.js +34 -0
  41. package/build/src/api/rest/wrapFetchWithUserAgent.js.map +1 -0
  42. package/build/src/api/settings.js +33 -0
  43. package/build/src/api/settings.js.map +1 -0
  44. package/build/src/api/updateDevelopmentSession.js +100 -0
  45. package/build/src/api/updateDevelopmentSession.js.map +1 -0
  46. package/build/src/api/user/UserSettings.js +183 -0
  47. package/build/src/api/user/UserSettings.js.map +1 -0
  48. package/build/src/api/user/actions.js +167 -0
  49. package/build/src/api/user/actions.js.map +1 -0
  50. package/build/src/api/user/expoSsoLauncher.js +149 -0
  51. package/build/src/api/user/expoSsoLauncher.js.map +1 -0
  52. package/build/src/api/user/otp.js +177 -0
  53. package/build/src/api/user/otp.js.map +1 -0
  54. package/build/src/api/user/user.js +154 -0
  55. package/build/src/api/user/user.js.map +1 -0
  56. package/build/src/config/configAsync.js +180 -0
  57. package/build/src/config/configAsync.js.map +1 -0
  58. package/build/src/config/index.js +101 -0
  59. package/build/src/config/index.js.map +1 -0
  60. package/build/src/customize/customizeAsync.js +57 -0
  61. package/build/src/customize/customizeAsync.js.map +1 -0
  62. package/build/src/customize/generate.js +94 -0
  63. package/build/src/customize/generate.js.map +1 -0
  64. package/build/src/customize/index.js +51 -0
  65. package/build/src/customize/index.js.map +1 -0
  66. package/build/src/customize/resolveOptions.js +23 -0
  67. package/build/src/customize/resolveOptions.js.map +1 -0
  68. package/build/src/customize/templates.js +189 -0
  69. package/build/src/customize/templates.js.map +1 -0
  70. package/build/src/customize/typescript.js +81 -0
  71. package/build/src/customize/typescript.js.map +1 -0
  72. package/build/src/events/builder.js +6 -0
  73. package/build/src/events/builder.js.map +1 -0
  74. package/build/src/events/index.js +132 -0
  75. package/build/src/events/index.js.map +1 -0
  76. package/build/src/events/stream.js +303 -0
  77. package/build/src/events/stream.js.map +1 -0
  78. package/build/src/events/types.js +6 -0
  79. package/build/src/events/types.js.map +1 -0
  80. package/build/src/expoUpdatesExports.js +28 -0
  81. package/build/src/expoUpdatesExports.js.map +1 -0
  82. package/build/src/export/createMetadataJson.js +55 -0
  83. package/build/src/export/createMetadataJson.js.map +1 -0
  84. package/build/src/export/embed/exportEager.js +33 -0
  85. package/build/src/export/embed/exportEager.js.map +1 -0
  86. package/build/src/export/embed/exportEmbedAsync.js +457 -0
  87. package/build/src/export/embed/exportEmbedAsync.js.map +1 -0
  88. package/build/src/export/embed/exportServer.js +353 -0
  89. package/build/src/export/embed/exportServer.js.map +1 -0
  90. package/build/src/export/embed/index.js +161 -0
  91. package/build/src/export/embed/index.js.map +1 -0
  92. package/build/src/export/embed/resolveOptions.js +159 -0
  93. package/build/src/export/embed/resolveOptions.js.map +1 -0
  94. package/build/src/export/embed/xcodeCompilerLogger.js +148 -0
  95. package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -0
  96. package/build/src/export/exportApp.js +387 -0
  97. package/build/src/export/exportApp.js.map +1 -0
  98. package/build/src/export/exportAssets.js +245 -0
  99. package/build/src/export/exportAssets.js.map +1 -0
  100. package/build/src/export/exportAsync.js +103 -0
  101. package/build/src/export/exportAsync.js.map +1 -0
  102. package/build/src/export/exportDomComponents.js +185 -0
  103. package/build/src/export/exportDomComponents.js.map +1 -0
  104. package/build/src/export/exportHermes.js +251 -0
  105. package/build/src/export/exportHermes.js.map +1 -0
  106. package/build/src/export/exportStaticAsync.js +623 -0
  107. package/build/src/export/exportStaticAsync.js.map +1 -0
  108. package/build/src/export/favicon.js +138 -0
  109. package/build/src/export/favicon.js.map +1 -0
  110. package/build/src/export/getPublicExpoManifest.js +39 -0
  111. package/build/src/export/getPublicExpoManifest.js.map +1 -0
  112. package/build/src/export/getResolvedLocales.js +52 -0
  113. package/build/src/export/getResolvedLocales.js.map +1 -0
  114. package/build/src/export/html.js +33 -0
  115. package/build/src/export/html.js.map +1 -0
  116. package/build/src/export/index.js +146 -0
  117. package/build/src/export/index.js.map +1 -0
  118. package/build/src/export/metroAssetLocalPath.js +130 -0
  119. package/build/src/export/metroAssetLocalPath.js.map +1 -0
  120. package/build/src/export/persistMetroAssets.js +269 -0
  121. package/build/src/export/persistMetroAssets.js.map +1 -0
  122. package/build/src/export/publicFolder.js +61 -0
  123. package/build/src/export/publicFolder.js.map +1 -0
  124. package/build/src/export/resolveOptions.js +92 -0
  125. package/build/src/export/resolveOptions.js.map +1 -0
  126. package/build/src/export/saveAssets.js +273 -0
  127. package/build/src/export/saveAssets.js.map +1 -0
  128. package/build/src/export/web/exportWebAsync.js +57 -0
  129. package/build/src/export/web/exportWebAsync.js.map +1 -0
  130. package/build/src/export/web/index.js +92 -0
  131. package/build/src/export/web/index.js.map +1 -0
  132. package/build/src/export/web/resolveOptions.js +18 -0
  133. package/build/src/export/web/resolveOptions.js.map +1 -0
  134. package/build/src/export/writeContents.js +19 -0
  135. package/build/src/export/writeContents.js.map +1 -0
  136. package/build/src/install/applyPlugins.js +81 -0
  137. package/build/src/install/applyPlugins.js.map +1 -0
  138. package/build/src/install/checkPackages.js +157 -0
  139. package/build/src/install/checkPackages.js.map +1 -0
  140. package/build/src/install/fixPackages.js +111 -0
  141. package/build/src/install/fixPackages.js.map +1 -0
  142. package/build/src/install/index.js +64 -0
  143. package/build/src/install/index.js.map +1 -0
  144. package/build/src/install/installAsync.js +203 -0
  145. package/build/src/install/installAsync.js.map +1 -0
  146. package/build/src/install/installExpoPackage.js +124 -0
  147. package/build/src/install/installExpoPackage.js.map +1 -0
  148. package/build/src/install/resolveOptions.js +65 -0
  149. package/build/src/install/resolveOptions.js.map +1 -0
  150. package/build/src/install/utils/autoAddConfigPlugins.js +90 -0
  151. package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -0
  152. package/build/src/install/utils/checkPackagesCompatibility.js +66 -0
  153. package/build/src/install/utils/checkPackagesCompatibility.js.map +1 -0
  154. package/build/src/install/utils/parsePackageSpecifier.js +24 -0
  155. package/build/src/install/utils/parsePackageSpecifier.js.map +1 -0
  156. package/build/src/lint/ESlintPrerequisite.js +163 -0
  157. package/build/src/lint/ESlintPrerequisite.js.map +1 -0
  158. package/build/src/lint/index.js +68 -0
  159. package/build/src/lint/index.js.map +1 -0
  160. package/build/src/lint/lintAsync.js +183 -0
  161. package/build/src/lint/lintAsync.js.map +1 -0
  162. package/build/src/lint/resolveOptions.js +115 -0
  163. package/build/src/lint/resolveOptions.js.map +1 -0
  164. package/build/src/log.js +106 -0
  165. package/build/src/log.js.map +1 -0
  166. package/build/src/login/index.js +92 -0
  167. package/build/src/login/index.js.map +1 -0
  168. package/build/src/logout/index.js +70 -0
  169. package/build/src/logout/index.js.map +1 -0
  170. package/build/src/prebuild/clearNativeFolder.js +202 -0
  171. package/build/src/prebuild/clearNativeFolder.js.map +1 -0
  172. package/build/src/prebuild/configureProjectAsync.js +106 -0
  173. package/build/src/prebuild/configureProjectAsync.js.map +1 -0
  174. package/build/src/prebuild/copyTemplateFiles.js +95 -0
  175. package/build/src/prebuild/copyTemplateFiles.js.map +1 -0
  176. package/build/src/prebuild/ensureConfigAsync.js +32 -0
  177. package/build/src/prebuild/ensureConfigAsync.js.map +1 -0
  178. package/build/src/prebuild/index.js +122 -0
  179. package/build/src/prebuild/index.js.map +1 -0
  180. package/build/src/prebuild/prebuildAsync.js +192 -0
  181. package/build/src/prebuild/prebuildAsync.js.map +1 -0
  182. package/build/src/prebuild/renameTemplateAppName.js +135 -0
  183. package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
  184. package/build/src/prebuild/resolveLocalTemplate.js +72 -0
  185. package/build/src/prebuild/resolveLocalTemplate.js.map +1 -0
  186. package/build/src/prebuild/resolveOptions.js +222 -0
  187. package/build/src/prebuild/resolveOptions.js.map +1 -0
  188. package/build/src/prebuild/resolveTemplate.js +216 -0
  189. package/build/src/prebuild/resolveTemplate.js.map +1 -0
  190. package/build/src/prebuild/updateFromTemplate.js +148 -0
  191. package/build/src/prebuild/updateFromTemplate.js.map +1 -0
  192. package/build/src/prebuild/updatePackageJson.js +305 -0
  193. package/build/src/prebuild/updatePackageJson.js.map +1 -0
  194. package/build/src/prebuild/validateTemplatePlatforms.js +85 -0
  195. package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -0
  196. package/build/src/register/index.js +70 -0
  197. package/build/src/register/index.js.map +1 -0
  198. package/build/src/register/registerAsync.js +39 -0
  199. package/build/src/register/registerAsync.js.map +1 -0
  200. package/build/src/run/android/index.js +139 -0
  201. package/build/src/run/android/index.js.map +1 -0
  202. package/build/src/run/android/resolveDevice.js +28 -0
  203. package/build/src/run/android/resolveDevice.js.map +1 -0
  204. package/build/src/run/android/resolveGradlePropsAsync.js +82 -0
  205. package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
  206. package/build/src/run/android/resolveInstallApkName.js +67 -0
  207. package/build/src/run/android/resolveInstallApkName.js.map +1 -0
  208. package/build/src/run/android/resolveLaunchProps.js +44 -0
  209. package/build/src/run/android/resolveLaunchProps.js.map +1 -0
  210. package/build/src/run/android/resolveOptions.js +43 -0
  211. package/build/src/run/android/resolveOptions.js.map +1 -0
  212. package/build/src/run/android/runAndroidAsync.js +157 -0
  213. package/build/src/run/android/runAndroidAsync.js.map +1 -0
  214. package/build/src/run/ensureNativeProject.js +53 -0
  215. package/build/src/run/ensureNativeProject.js.map +1 -0
  216. package/build/src/run/hints.js +46 -0
  217. package/build/src/run/hints.js.map +1 -0
  218. package/build/src/run/index.js +124 -0
  219. package/build/src/run/index.js.map +1 -0
  220. package/build/src/run/ios/XcodeBuild.js +382 -0
  221. package/build/src/run/ios/XcodeBuild.js.map +1 -0
  222. package/build/src/run/ios/XcodeBuild.types.js +6 -0
  223. package/build/src/run/ios/XcodeBuild.types.js.map +1 -0
  224. package/build/src/run/ios/appleDevice/AppleDevice.js +316 -0
  225. package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -0
  226. package/build/src/run/ios/appleDevice/ClientManager.js +207 -0
  227. package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -0
  228. package/build/src/run/ios/appleDevice/client/AFCClient.js +248 -0
  229. package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -0
  230. package/build/src/run/ios/appleDevice/client/DebugserverClient.js +149 -0
  231. package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -0
  232. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +113 -0
  233. package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -0
  234. package/build/src/run/ios/appleDevice/client/LockdowndClient.js +186 -0
  235. package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -0
  236. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +133 -0
  237. package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -0
  238. package/build/src/run/ios/appleDevice/client/ServiceClient.js +38 -0
  239. package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -0
  240. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +146 -0
  241. package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -0
  242. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +153 -0
  243. package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -0
  244. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +365 -0
  245. package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -0
  246. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +167 -0
  247. package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -0
  248. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +153 -0
  249. package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -0
  250. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +111 -0
  251. package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -0
  252. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +100 -0
  253. package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -0
  254. package/build/src/run/ios/codeSigning/Security.js +116 -0
  255. package/build/src/run/ios/codeSigning/Security.js.map +1 -0
  256. package/build/src/run/ios/codeSigning/configureCodeSigning.js +108 -0
  257. package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -0
  258. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +165 -0
  259. package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -0
  260. package/build/src/run/ios/codeSigning/settings.js +27 -0
  261. package/build/src/run/ios/codeSigning/settings.js.map +1 -0
  262. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +67 -0
  263. package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -0
  264. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +103 -0
  265. package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -0
  266. package/build/src/run/ios/index.js +137 -0
  267. package/build/src/run/ios/index.js.map +1 -0
  268. package/build/src/run/ios/launchApp.js +142 -0
  269. package/build/src/run/ios/launchApp.js.map +1 -0
  270. package/build/src/run/ios/options/appleDestinations.js +126 -0
  271. package/build/src/run/ios/options/appleDestinations.js.map +1 -0
  272. package/build/src/run/ios/options/promptDevice.js +64 -0
  273. package/build/src/run/ios/options/promptDevice.js.map +1 -0
  274. package/build/src/run/ios/options/resolveDevice.js +151 -0
  275. package/build/src/run/ios/options/resolveDevice.js.map +1 -0
  276. package/build/src/run/ios/options/resolveNativeScheme.js +147 -0
  277. package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -0
  278. package/build/src/run/ios/options/resolveOptions.js +66 -0
  279. package/build/src/run/ios/options/resolveOptions.js.map +1 -0
  280. package/build/src/run/ios/options/resolveXcodeProject.js +50 -0
  281. package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -0
  282. package/build/src/run/ios/runIosAsync.js +255 -0
  283. package/build/src/run/ios/runIosAsync.js.map +1 -0
  284. package/build/src/run/ios/validateExternalBinary.js +113 -0
  285. package/build/src/run/ios/validateExternalBinary.js.map +1 -0
  286. package/build/src/run/resolveBundlerProps.js +38 -0
  287. package/build/src/run/resolveBundlerProps.js.map +1 -0
  288. package/build/src/run/startBundler.js +119 -0
  289. package/build/src/run/startBundler.js.map +1 -0
  290. package/build/src/serve/index.js +95 -0
  291. package/build/src/serve/index.js.map +1 -0
  292. package/build/src/serve/serveAsync.js +227 -0
  293. package/build/src/serve/serveAsync.js.map +1 -0
  294. package/build/src/start/detectDevClient.js +53 -0
  295. package/build/src/start/detectDevClient.js.map +1 -0
  296. package/build/src/start/doctor/Prerequisite.js +60 -0
  297. package/build/src/start/doctor/Prerequisite.js.map +1 -0
  298. package/build/src/start/doctor/SecurityBinPrerequisite.js +38 -0
  299. package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -0
  300. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +144 -0
  301. package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -0
  302. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +106 -0
  303. package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -0
  304. package/build/src/start/doctor/apple/XcodePrerequisite.js +239 -0
  305. package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -0
  306. package/build/src/start/doctor/apple/XcrunPrerequisite.js +88 -0
  307. package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -0
  308. package/build/src/start/doctor/dependencies/bundledNativeModules.js +112 -0
  309. package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -0
  310. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +192 -0
  311. package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -0
  312. package/build/src/start/doctor/dependencies/getMissingPackages.js +108 -0
  313. package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -0
  314. package/build/src/start/doctor/dependencies/getVersionedPackages.js +165 -0
  315. package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -0
  316. package/build/src/start/doctor/dependencies/resolvePackages.js +95 -0
  317. package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -0
  318. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +262 -0
  319. package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -0
  320. package/build/src/start/doctor/ngrok/ExternalModule.js +214 -0
  321. package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -0
  322. package/build/src/start/doctor/ngrok/NgrokResolver.js +33 -0
  323. package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -0
  324. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +205 -0
  325. package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -0
  326. package/build/src/start/doctor/typescript/updateTSConfig.js +144 -0
  327. package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -0
  328. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +164 -0
  329. package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -0
  330. package/build/src/start/index.js +151 -0
  331. package/build/src/start/index.js.map +1 -0
  332. package/build/src/start/interface/KeyPressHandler.js +126 -0
  333. package/build/src/start/interface/KeyPressHandler.js.map +1 -0
  334. package/build/src/start/interface/cliExtensionMenuItemHandler.js +173 -0
  335. package/build/src/start/interface/cliExtensionMenuItemHandler.js.map +1 -0
  336. package/build/src/start/interface/commandsTable.js +273 -0
  337. package/build/src/start/interface/commandsTable.js.map +1 -0
  338. package/build/src/start/interface/createDevToolsMenuItems.js +159 -0
  339. package/build/src/start/interface/createDevToolsMenuItems.js.map +1 -0
  340. package/build/src/start/interface/interactiveActions.js +225 -0
  341. package/build/src/start/interface/interactiveActions.js.map +1 -0
  342. package/build/src/start/interface/startInterface.js +261 -0
  343. package/build/src/start/interface/startInterface.js.map +1 -0
  344. package/build/src/start/platforms/AppIdResolver.js +55 -0
  345. package/build/src/start/platforms/AppIdResolver.js.map +1 -0
  346. package/build/src/start/platforms/DeviceManager.js +74 -0
  347. package/build/src/start/platforms/DeviceManager.js.map +1 -0
  348. package/build/src/start/platforms/ExpoGoInstaller.js +167 -0
  349. package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -0
  350. package/build/src/start/platforms/PlatformManager.js +149 -0
  351. package/build/src/start/platforms/PlatformManager.js.map +1 -0
  352. package/build/src/start/platforms/android/ADBServer.js +139 -0
  353. package/build/src/start/platforms/android/ADBServer.js.map +1 -0
  354. package/build/src/start/platforms/android/AndroidAppIdResolver.js +54 -0
  355. package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -0
  356. package/build/src/start/platforms/android/AndroidDeviceManager.js +216 -0
  357. package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -0
  358. package/build/src/start/platforms/android/AndroidPlatformManager.js +80 -0
  359. package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -0
  360. package/build/src/start/platforms/android/AndroidSdk.js +79 -0
  361. package/build/src/start/platforms/android/AndroidSdk.js.map +1 -0
  362. package/build/src/start/platforms/android/activateWindow.js +117 -0
  363. package/build/src/start/platforms/android/activateWindow.js.map +1 -0
  364. package/build/src/start/platforms/android/adb.js +367 -0
  365. package/build/src/start/platforms/android/adb.js.map +1 -0
  366. package/build/src/start/platforms/android/adbReverse.js +129 -0
  367. package/build/src/start/platforms/android/adbReverse.js.map +1 -0
  368. package/build/src/start/platforms/android/emulator.js +185 -0
  369. package/build/src/start/platforms/android/emulator.js.map +1 -0
  370. package/build/src/start/platforms/android/getDevices.js +39 -0
  371. package/build/src/start/platforms/android/getDevices.js.map +1 -0
  372. package/build/src/start/platforms/android/gradle.js +125 -0
  373. package/build/src/start/platforms/android/gradle.js.map +1 -0
  374. package/build/src/start/platforms/android/promptAndroidDevice.js +82 -0
  375. package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -0
  376. package/build/src/start/platforms/ios/AppleAppIdResolver.js +76 -0
  377. package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -0
  378. package/build/src/start/platforms/ios/AppleDeviceManager.js +283 -0
  379. package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -0
  380. package/build/src/start/platforms/ios/ApplePlatformManager.js +34 -0
  381. package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -0
  382. package/build/src/start/platforms/ios/assertSystemRequirements.js +22 -0
  383. package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -0
  384. package/build/src/start/platforms/ios/devicectl.js +398 -0
  385. package/build/src/start/platforms/ios/devicectl.js.map +1 -0
  386. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +122 -0
  387. package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -0
  388. package/build/src/start/platforms/ios/getBestSimulator.js +148 -0
  389. package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -0
  390. package/build/src/start/platforms/ios/promptAppleDevice.js +72 -0
  391. package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -0
  392. package/build/src/start/platforms/ios/simctl.js +386 -0
  393. package/build/src/start/platforms/ios/simctl.js.map +1 -0
  394. package/build/src/start/platforms/ios/simctlLogging.js +276 -0
  395. package/build/src/start/platforms/ios/simctlLogging.js.map +1 -0
  396. package/build/src/start/platforms/ios/xcrun.js +74 -0
  397. package/build/src/start/platforms/ios/xcrun.js.map +1 -0
  398. package/build/src/start/project/devices.js +92 -0
  399. package/build/src/start/project/devices.js.map +1 -0
  400. package/build/src/start/project/dotExpo.js +109 -0
  401. package/build/src/start/project/dotExpo.js.map +1 -0
  402. package/build/src/start/project/settings.js +17 -0
  403. package/build/src/start/project/settings.js.map +1 -0
  404. package/build/src/start/resolveOptions.js +173 -0
  405. package/build/src/start/resolveOptions.js.map +1 -0
  406. package/build/src/start/server/AsyncNgrok.js +269 -0
  407. package/build/src/start/server/AsyncNgrok.js.map +1 -0
  408. package/build/src/start/server/AsyncWsTunnel.js +156 -0
  409. package/build/src/start/server/AsyncWsTunnel.js.map +1 -0
  410. package/build/src/start/server/Bonjour.js +103 -0
  411. package/build/src/start/server/Bonjour.js.map +1 -0
  412. package/build/src/start/server/BundlerDevServer.js +410 -0
  413. package/build/src/start/server/BundlerDevServer.js.map +1 -0
  414. package/build/src/start/server/DevServerManager.js +259 -0
  415. package/build/src/start/server/DevServerManager.js.map +1 -0
  416. package/build/src/start/server/DevToolsPlugin.js +60 -0
  417. package/build/src/start/server/DevToolsPlugin.js.map +1 -0
  418. package/build/src/start/server/DevToolsPlugin.schema.js +79 -0
  419. package/build/src/start/server/DevToolsPlugin.schema.js.map +1 -0
  420. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js +119 -0
  421. package/build/src/start/server/DevToolsPluginCliExtensionExecutor.js.map +1 -0
  422. package/build/src/start/server/DevToolsPluginCliExtensionResults.js +61 -0
  423. package/build/src/start/server/DevToolsPluginCliExtensionResults.js.map +1 -0
  424. package/build/src/start/server/DevToolsPluginManager.js +60 -0
  425. package/build/src/start/server/DevToolsPluginManager.js.map +1 -0
  426. package/build/src/start/server/DevelopmentSession.js +132 -0
  427. package/build/src/start/server/DevelopmentSession.js.map +1 -0
  428. package/build/src/start/server/MCP.js +106 -0
  429. package/build/src/start/server/MCP.js.map +1 -0
  430. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js +86 -0
  431. package/build/src/start/server/MCPDevToolsPluginCLIExtensions.js.map +1 -0
  432. package/build/src/start/server/UrlCreator.js +219 -0
  433. package/build/src/start/server/UrlCreator.js.map +1 -0
  434. package/build/src/start/server/createMCPDevToolsExtensionSchema.js +67 -0
  435. package/build/src/start/server/createMCPDevToolsExtensionSchema.js.map +1 -0
  436. package/build/src/start/server/getStaticRenderFunctions.js +171 -0
  437. package/build/src/start/server/getStaticRenderFunctions.js.map +1 -0
  438. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js +39 -0
  439. package/build/src/start/server/metro/DevToolsPluginWebsocketEndpoint.js.map +1 -0
  440. package/build/src/start/server/metro/MetroBundlerDevServer.js +1654 -0
  441. package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -0
  442. package/build/src/start/server/metro/MetroTerminalReporter.js +438 -0
  443. package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -0
  444. package/build/src/start/server/metro/TerminalReporter.js +180 -0
  445. package/build/src/start/server/metro/TerminalReporter.js.map +1 -0
  446. package/build/src/start/server/metro/TerminalReporter.types.js +6 -0
  447. package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -0
  448. package/build/src/start/server/metro/createExpoAutolinkingResolver.js +123 -0
  449. package/build/src/start/server/metro/createExpoAutolinkingResolver.js.map +1 -0
  450. package/build/src/start/server/metro/createExpoFallbackResolver.js +143 -0
  451. package/build/src/start/server/metro/createExpoFallbackResolver.js.map +1 -0
  452. package/build/src/start/server/metro/createServerComponentsMiddleware.js +501 -0
  453. package/build/src/start/server/metro/createServerComponentsMiddleware.js.map +1 -0
  454. package/build/src/start/server/metro/createServerRouteMiddleware.js +229 -0
  455. package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -0
  456. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js +49 -0
  457. package/build/src/start/server/metro/debugging/AtlasPrerequisite.js.map +1 -0
  458. package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
  459. package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
  460. package/build/src/start/server/metro/debugging/attachAtlas.js +103 -0
  461. package/build/src/start/server/metro/debugging/attachAtlas.js.map +1 -0
  462. package/build/src/start/server/metro/debugging/createDebugMiddleware.js +127 -0
  463. package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -0
  464. package/build/src/start/server/metro/debugging/createHandlersFactory.js +58 -0
  465. package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
  466. package/build/src/start/server/metro/debugging/getDebuggerType.js +20 -0
  467. package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
  468. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js +44 -0
  469. package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
  470. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +30 -0
  471. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
  472. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +27 -0
  473. package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
  474. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +33 -0
  475. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
  476. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js +56 -0
  477. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeEvaluate.js.map +1 -0
  478. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js +49 -0
  479. package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
  480. package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
  481. package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
  482. package/build/src/start/server/metro/debugging/types.js +6 -0
  483. package/build/src/start/server/metro/debugging/types.js.map +1 -0
  484. package/build/src/start/server/metro/dev-server/compression.js +45 -0
  485. package/build/src/start/server/metro/dev-server/compression.js.map +1 -0
  486. package/build/src/start/server/metro/dev-server/createEventSocket.js +103 -0
  487. package/build/src/start/server/metro/dev-server/createEventSocket.js.map +1 -0
  488. package/build/src/start/server/metro/dev-server/createMessageSocket.js +129 -0
  489. package/build/src/start/server/metro/dev-server/createMessageSocket.js.map +1 -0
  490. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js +82 -0
  491. package/build/src/start/server/metro/dev-server/createMetroMiddleware.js.map +1 -0
  492. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js +27 -0
  493. package/build/src/start/server/metro/dev-server/utils/createSocketBroadcaster.js.map +1 -0
  494. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js +43 -0
  495. package/build/src/start/server/metro/dev-server/utils/createSocketMap.js.map +1 -0
  496. package/build/src/start/server/metro/dev-server/utils/socketMessages.js +41 -0
  497. package/build/src/start/server/metro/dev-server/utils/socketMessages.js.map +1 -0
  498. package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js +17 -0
  499. package/build/src/start/server/metro/errors/FailedToResolveNativeOnlyModuleError.js.map +1 -0
  500. package/build/src/start/server/metro/externals.js +89 -0
  501. package/build/src/start/server/metro/externals.js.map +1 -0
  502. package/build/src/start/server/metro/fetchRouterManifest.js +83 -0
  503. package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -0
  504. package/build/src/start/server/metro/getCssModulesFromBundler.js +114 -0
  505. package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -0
  506. package/build/src/start/server/metro/instantiateMetro.js +492 -0
  507. package/build/src/start/server/metro/instantiateMetro.js.map +1 -0
  508. package/build/src/start/server/metro/log-box/LogBoxLog.js +211 -0
  509. package/build/src/start/server/metro/log-box/LogBoxLog.js.map +1 -0
  510. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js +124 -0
  511. package/build/src/start/server/metro/log-box/LogBoxSymbolication.js.map +1 -0
  512. package/build/src/start/server/metro/log-box/formatProjectFilePath.js +46 -0
  513. package/build/src/start/server/metro/log-box/formatProjectFilePath.js.map +1 -0
  514. package/build/src/start/server/metro/metroErrorInterface.js +403 -0
  515. package/build/src/start/server/metro/metroErrorInterface.js.map +1 -0
  516. package/build/src/start/server/metro/metroErrors.js +27 -0
  517. package/build/src/start/server/metro/metroErrors.js.map +1 -0
  518. package/build/src/start/server/metro/metroVirtualModules.js +92 -0
  519. package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
  520. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +62 -0
  521. package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -0
  522. package/build/src/start/server/metro/resolveLoader.js +68 -0
  523. package/build/src/start/server/metro/resolveLoader.js.map +1 -0
  524. package/build/src/start/server/metro/router.js +218 -0
  525. package/build/src/start/server/metro/router.js.map +1 -0
  526. package/build/src/start/server/metro/runServer-fork.js +179 -0
  527. package/build/src/start/server/metro/runServer-fork.js.map +1 -0
  528. package/build/src/start/server/metro/serializeHtml.js +138 -0
  529. package/build/src/start/server/metro/serializeHtml.js.map +1 -0
  530. package/build/src/start/server/metro/symbolicate.js +6 -0
  531. package/build/src/start/server/metro/symbolicate.js.map +1 -0
  532. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +103 -0
  533. package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -0
  534. package/build/src/start/server/metro/withMetroErrorReportingResolver.js +266 -0
  535. package/build/src/start/server/metro/withMetroErrorReportingResolver.js.map +1 -0
  536. package/build/src/start/server/metro/withMetroMultiPlatform.js +748 -0
  537. package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -0
  538. package/build/src/start/server/metro/withMetroResolvers.js +110 -0
  539. package/build/src/start/server/metro/withMetroResolvers.js.map +1 -0
  540. package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js +63 -0
  541. package/build/src/start/server/metro/withMetroSupervisingTransformWorker.js.map +1 -0
  542. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +32 -0
  543. package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -0
  544. package/build/src/start/server/middleware/CorsMiddleware.js +92 -0
  545. package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -0
  546. package/build/src/start/server/middleware/CreateFileMiddleware.js +166 -0
  547. package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -0
  548. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +78 -0
  549. package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -0
  550. package/build/src/start/server/middleware/DomComponentsMiddleware.js +138 -0
  551. package/build/src/start/server/middleware/DomComponentsMiddleware.js.map +1 -0
  552. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +288 -0
  553. package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -0
  554. package/build/src/start/server/middleware/ExpoMiddleware.js +121 -0
  555. package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -0
  556. package/build/src/start/server/middleware/FaviconMiddleware.js +52 -0
  557. package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -0
  558. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +29 -0
  559. package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -0
  560. package/build/src/start/server/middleware/InterstitialPageMiddleware.js +116 -0
  561. package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -0
  562. package/build/src/start/server/middleware/ManifestMiddleware.js +362 -0
  563. package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -0
  564. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +103 -0
  565. package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -0
  566. package/build/src/start/server/middleware/ServeStaticMiddleware.js +85 -0
  567. package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -0
  568. package/build/src/start/server/middleware/inspector/CdpClient.js +81 -0
  569. package/build/src/start/server/middleware/inspector/CdpClient.js.map +1 -0
  570. package/build/src/start/server/middleware/inspector/JsInspector.js +123 -0
  571. package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -0
  572. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +91 -0
  573. package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -0
  574. package/build/src/start/server/middleware/inspector/middlwareMutations.js +30 -0
  575. package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -0
  576. package/build/src/start/server/middleware/metroOptions.js +367 -0
  577. package/build/src/start/server/middleware/metroOptions.js.map +1 -0
  578. package/build/src/start/server/middleware/mutations.js +33 -0
  579. package/build/src/start/server/middleware/mutations.js.map +1 -0
  580. package/build/src/start/server/middleware/resolveAssets.js +154 -0
  581. package/build/src/start/server/middleware/resolveAssets.js.map +1 -0
  582. package/build/src/start/server/middleware/resolvePlatform.js +71 -0
  583. package/build/src/start/server/middleware/resolvePlatform.js.map +1 -0
  584. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js +38 -0
  585. package/build/src/start/server/middleware/resolveRuntimeVersionWithExpoUpdatesAsync.js.map +1 -0
  586. package/build/src/start/server/middleware/server.types.js +6 -0
  587. package/build/src/start/server/middleware/server.types.js.map +1 -0
  588. package/build/src/start/server/openPlatforms.js +33 -0
  589. package/build/src/start/server/openPlatforms.js.map +1 -0
  590. package/build/src/start/server/platformBundlers.js +39 -0
  591. package/build/src/start/server/platformBundlers.js.map +1 -0
  592. package/build/src/start/server/serverLogLikeMetro.js +309 -0
  593. package/build/src/start/server/serverLogLikeMetro.js.map +1 -0
  594. package/build/src/start/server/type-generation/expo-env.js +51 -0
  595. package/build/src/start/server/type-generation/expo-env.js.map +1 -0
  596. package/build/src/start/server/type-generation/routes.js +510 -0
  597. package/build/src/start/server/type-generation/routes.js.map +1 -0
  598. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +79 -0
  599. package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -0
  600. package/build/src/start/server/type-generation/tsconfig.js +122 -0
  601. package/build/src/start/server/type-generation/tsconfig.js.map +1 -0
  602. package/build/src/start/server/webTemplate.js +111 -0
  603. package/build/src/start/server/webTemplate.js.map +1 -0
  604. package/build/src/start/server/webpack/WebpackBundlerDevServer.js +316 -0
  605. package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -0
  606. package/build/src/start/server/webpack/compile.js +101 -0
  607. package/build/src/start/server/webpack/compile.js.map +1 -0
  608. package/build/src/start/server/webpack/formatWebpackMessages.js +106 -0
  609. package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -0
  610. package/build/src/start/server/webpack/resolveFromProject.js +63 -0
  611. package/build/src/start/server/webpack/resolveFromProject.js.map +1 -0
  612. package/build/src/start/server/webpack/tls.js +128 -0
  613. package/build/src/start/server/webpack/tls.js.map +1 -0
  614. package/build/src/start/startAsync.js +204 -0
  615. package/build/src/start/startAsync.js.map +1 -0
  616. package/build/src/types.d.ts +2 -0
  617. package/build/src/utils/FileNotifier.js +138 -0
  618. package/build/src/utils/FileNotifier.js.map +1 -0
  619. package/build/src/utils/ansi.js +22 -0
  620. package/build/src/utils/ansi.js.map +1 -0
  621. package/build/src/utils/args.js +141 -0
  622. package/build/src/utils/args.js.map +1 -0
  623. package/build/src/utils/array.js +92 -0
  624. package/build/src/utils/array.js.map +1 -0
  625. package/build/src/utils/build-cache-providers/helpers.js +61 -0
  626. package/build/src/utils/build-cache-providers/helpers.js.map +1 -0
  627. package/build/src/utils/build-cache-providers/index.js +283 -0
  628. package/build/src/utils/build-cache-providers/index.js.map +1 -0
  629. package/build/src/utils/cocoapods.js +258 -0
  630. package/build/src/utils/cocoapods.js.map +1 -0
  631. package/build/src/utils/codesigning.js +395 -0
  632. package/build/src/utils/codesigning.js.map +1 -0
  633. package/build/src/utils/createFileTransform.js +34 -0
  634. package/build/src/utils/createFileTransform.js.map +1 -0
  635. package/build/src/utils/createTempPath.js +68 -0
  636. package/build/src/utils/createTempPath.js.map +1 -0
  637. package/build/src/utils/delay.js +58 -0
  638. package/build/src/utils/delay.js.map +1 -0
  639. package/build/src/utils/dir.js +121 -0
  640. package/build/src/utils/dir.js.map +1 -0
  641. package/build/src/utils/downloadAppAsync.js +98 -0
  642. package/build/src/utils/downloadAppAsync.js.map +1 -0
  643. package/build/src/utils/downloadExpoGoAsync.js +170 -0
  644. package/build/src/utils/downloadExpoGoAsync.js.map +1 -0
  645. package/build/src/utils/editor.js +527 -0
  646. package/build/src/utils/editor.js.map +1 -0
  647. package/build/src/utils/env.js +266 -0
  648. package/build/src/utils/env.js.map +1 -0
  649. package/build/src/utils/errors.js +134 -0
  650. package/build/src/utils/errors.js.map +1 -0
  651. package/build/src/utils/exit.js +210 -0
  652. package/build/src/utils/exit.js.map +1 -0
  653. package/build/src/utils/expoUpdatesCli.js +120 -0
  654. package/build/src/utils/expoUpdatesCli.js.map +1 -0
  655. package/build/src/utils/fetch.js +41 -0
  656. package/build/src/utils/fetch.js.map +1 -0
  657. package/build/src/utils/filePath.js +42 -0
  658. package/build/src/utils/filePath.js.map +1 -0
  659. package/build/src/utils/findUp.js +61 -0
  660. package/build/src/utils/findUp.js.map +1 -0
  661. package/build/src/utils/fn.js +44 -0
  662. package/build/src/utils/fn.js.map +1 -0
  663. package/build/src/utils/freeport.js +70 -0
  664. package/build/src/utils/freeport.js.map +1 -0
  665. package/build/src/utils/getOrPromptApplicationId.js +259 -0
  666. package/build/src/utils/getOrPromptApplicationId.js.map +1 -0
  667. package/build/src/utils/getRunningProcess.js +181 -0
  668. package/build/src/utils/getRunningProcess.js.map +1 -0
  669. package/build/src/utils/git.js +132 -0
  670. package/build/src/utils/git.js.map +1 -0
  671. package/build/src/utils/glob.js +46 -0
  672. package/build/src/utils/glob.js.map +1 -0
  673. package/build/src/utils/interactive.js +17 -0
  674. package/build/src/utils/interactive.js.map +1 -0
  675. package/build/src/utils/ip.js +63 -0
  676. package/build/src/utils/ip.js.map +1 -0
  677. package/build/src/utils/isModuleSymlinked.js +54 -0
  678. package/build/src/utils/isModuleSymlinked.js.map +1 -0
  679. package/build/src/utils/link.js +55 -0
  680. package/build/src/utils/link.js.map +1 -0
  681. package/build/src/utils/mergeGitIgnorePaths.js +189 -0
  682. package/build/src/utils/mergeGitIgnorePaths.js.map +1 -0
  683. package/build/src/utils/modifyConfigAsync.js +106 -0
  684. package/build/src/utils/modifyConfigAsync.js.map +1 -0
  685. package/build/src/utils/modifyConfigPlugins.js +79 -0
  686. package/build/src/utils/modifyConfigPlugins.js.map +1 -0
  687. package/build/src/utils/net.js +43 -0
  688. package/build/src/utils/net.js.map +1 -0
  689. package/build/src/utils/nodeEnv.js +168 -0
  690. package/build/src/utils/nodeEnv.js.map +1 -0
  691. package/build/src/utils/nodeModules.js +52 -0
  692. package/build/src/utils/nodeModules.js.map +1 -0
  693. package/build/src/utils/npm.js +222 -0
  694. package/build/src/utils/npm.js.map +1 -0
  695. package/build/src/utils/obj.js +59 -0
  696. package/build/src/utils/obj.js.map +1 -0
  697. package/build/src/utils/open.js +36 -0
  698. package/build/src/utils/open.js.map +1 -0
  699. package/build/src/utils/ora.js +113 -0
  700. package/build/src/utils/ora.js.map +1 -0
  701. package/build/src/utils/plist.js +108 -0
  702. package/build/src/utils/plist.js.map +1 -0
  703. package/build/src/utils/port.js +196 -0
  704. package/build/src/utils/port.js.map +1 -0
  705. package/build/src/utils/profile.js +94 -0
  706. package/build/src/utils/profile.js.map +1 -0
  707. package/build/src/utils/progress.js +76 -0
  708. package/build/src/utils/progress.js.map +1 -0
  709. package/build/src/utils/prompts.js +151 -0
  710. package/build/src/utils/prompts.js.map +1 -0
  711. package/build/src/utils/qr.js +186 -0
  712. package/build/src/utils/qr.js.map +1 -0
  713. package/build/src/utils/resolveArgs.js +236 -0
  714. package/build/src/utils/resolveArgs.js.map +1 -0
  715. package/build/src/utils/resolveGlobal.js +195 -0
  716. package/build/src/utils/resolveGlobal.js.map +1 -0
  717. package/build/src/utils/scheme.js +212 -0
  718. package/build/src/utils/scheme.js.map +1 -0
  719. package/build/src/utils/stream.js +31 -0
  720. package/build/src/utils/stream.js.map +1 -0
  721. package/build/src/utils/strings.js +33 -0
  722. package/build/src/utils/strings.js.map +1 -0
  723. package/build/src/utils/tar.js +168 -0
  724. package/build/src/utils/tar.js.map +1 -0
  725. package/build/src/utils/telemetry/Telemetry.js +131 -0
  726. package/build/src/utils/telemetry/Telemetry.js.map +1 -0
  727. package/build/src/utils/telemetry/clients/FetchClient.js +91 -0
  728. package/build/src/utils/telemetry/clients/FetchClient.js.map +1 -0
  729. package/build/src/utils/telemetry/clients/FetchDetachedClient.js +86 -0
  730. package/build/src/utils/telemetry/clients/FetchDetachedClient.js.map +1 -0
  731. package/build/src/utils/telemetry/clients/flushFetchDetached.js +39 -0
  732. package/build/src/utils/telemetry/clients/flushFetchDetached.js.map +1 -0
  733. package/build/src/utils/telemetry/events.js +20 -0
  734. package/build/src/utils/telemetry/events.js.map +1 -0
  735. package/build/src/utils/telemetry/index.js +72 -0
  736. package/build/src/utils/telemetry/index.js.map +1 -0
  737. package/build/src/utils/telemetry/types.js +6 -0
  738. package/build/src/utils/telemetry/types.js.map +1 -0
  739. package/build/src/utils/telemetry/utils/constants.js +23 -0
  740. package/build/src/utils/telemetry/utils/constants.js.map +1 -0
  741. package/build/src/utils/telemetry/utils/context.js +115 -0
  742. package/build/src/utils/telemetry/utils/context.js.map +1 -0
  743. package/build/src/utils/template.js +48 -0
  744. package/build/src/utils/template.js.map +1 -0
  745. package/build/src/utils/terminal.js +15 -0
  746. package/build/src/utils/terminal.js.map +1 -0
  747. package/build/src/utils/tsconfig/evaluateTsConfig.js +87 -0
  748. package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -0
  749. package/build/src/utils/tsconfig/loadTsConfigPaths.js +84 -0
  750. package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -0
  751. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +94 -0
  752. package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -0
  753. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +62 -0
  754. package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -0
  755. package/build/src/utils/url.js +92 -0
  756. package/build/src/utils/url.js.map +1 -0
  757. package/build/src/utils/validateApplicationId.js +255 -0
  758. package/build/src/utils/validateApplicationId.js.map +1 -0
  759. package/build/src/utils/variadic.js +132 -0
  760. package/build/src/utils/variadic.js.map +1 -0
  761. package/build/src/whoami/index.js +69 -0
  762. package/build/src/whoami/index.js.map +1 -0
  763. package/build/src/whoami/whoamiAsync.js +75 -0
  764. package/build/src/whoami/whoamiAsync.js.map +1 -0
  765. package/changes.json +106 -0
  766. package/internal/unstable-expo-updates-exports.d.ts +31 -0
  767. package/internal/unstable-expo-updates-exports.js +3 -0
  768. package/package.json +275 -0
  769. package/static/loading-page/index.html +363 -0
  770. package/static/shims/react-native-web/dist/cjs/exports/AppRegistry/AppContainer.js +13 -0
  771. package/static/shims/react-native-web/dist/cjs/exports/BackHandler/index.js +10 -0
  772. package/static/shims/react-native-web/dist/exports/AppRegistry/AppContainer.js +12 -0
  773. package/static/shims/react-native-web/dist/exports/BackHandler/index.js +7 -0
  774. package/static/template/+html.tsx +28 -0
  775. package/static/template/+native-intent.ts +9 -0
  776. package/static/template/.eslintrc.js +5 -0
  777. package/static/template/[...rsc]+api.ts +16 -0
  778. package/static/template/babel.config.js +6 -0
  779. package/static/template/eslint.config.js +10 -0
  780. package/static/template/index.html +36 -0
  781. package/static/template/metro.config.js +7 -0
  782. package/static/template/webpack.config.js +7 -0
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
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
+ addInteractionListener: function() {
13
+ return addInteractionListener;
14
+ },
15
+ confirmAsync: function() {
16
+ return confirmAsync;
17
+ },
18
+ createSelectionFilter: function() {
19
+ return createSelectionFilter;
20
+ },
21
+ default: function() {
22
+ return prompt;
23
+ },
24
+ pauseInteractions: function() {
25
+ return pauseInteractions;
26
+ },
27
+ promptAsync: function() {
28
+ return promptAsync;
29
+ },
30
+ removeInteractionListener: function() {
31
+ return removeInteractionListener;
32
+ },
33
+ resumeInteractions: function() {
34
+ return resumeInteractions;
35
+ },
36
+ selectAsync: function() {
37
+ return selectAsync;
38
+ }
39
+ });
40
+ function _assert() {
41
+ const data = /*#__PURE__*/ _interop_require_default(require("assert"));
42
+ _assert = function() {
43
+ return data;
44
+ };
45
+ return data;
46
+ }
47
+ function _prompts() {
48
+ const data = /*#__PURE__*/ _interop_require_default(require("prompts"));
49
+ _prompts = function() {
50
+ return data;
51
+ };
52
+ return data;
53
+ }
54
+ const _errors = require("./errors");
55
+ const _interactive = require("./interactive");
56
+ function _interop_require_default(obj) {
57
+ return obj && obj.__esModule ? obj : {
58
+ default: obj
59
+ };
60
+ }
61
+ const debug = require('debug')('expo:utils:prompts');
62
+ /** Interaction observers for detecting when keystroke tracking should pause/resume. */ const listeners = [];
63
+ async function prompt(questions, { nonInteractiveHelp, ...options } = {}) {
64
+ questions = Array.isArray(questions) ? questions : [
65
+ questions
66
+ ];
67
+ if (!(0, _interactive.isInteractive)() && questions.length !== 0) {
68
+ let message = `Input is required, but 'npx expo' is in non-interactive mode.\n`;
69
+ if (nonInteractiveHelp) {
70
+ message += nonInteractiveHelp;
71
+ } else {
72
+ const question = questions[0];
73
+ const questionMessage = typeof question.message === 'function' ? question.message(undefined, {}, question) : question.message;
74
+ message += `Required input:\n${(questionMessage || '').trim().replace(/^/gm, '> ')}`;
75
+ }
76
+ throw new _errors.CommandError('NON_INTERACTIVE', message);
77
+ }
78
+ pauseInteractions();
79
+ try {
80
+ const results = await (0, _prompts().default)(questions, {
81
+ onCancel () {
82
+ throw new _errors.AbortCommandError();
83
+ },
84
+ ...options
85
+ });
86
+ return results;
87
+ } finally{
88
+ resumeInteractions();
89
+ }
90
+ }
91
+ async function confirmAsync(questions, options) {
92
+ const { value } = await prompt({
93
+ initial: true,
94
+ ...questions,
95
+ name: 'value',
96
+ type: 'confirm'
97
+ }, options);
98
+ return value ?? null;
99
+ }
100
+ async function selectAsync(message, choices, options) {
101
+ const { value } = await prompt({
102
+ message,
103
+ choices,
104
+ name: 'value',
105
+ type: 'select'
106
+ }, options);
107
+ return value ?? null;
108
+ }
109
+ const promptAsync = prompt;
110
+ function addInteractionListener(callback) {
111
+ listeners.push(callback);
112
+ }
113
+ function removeInteractionListener(callback) {
114
+ const listenerIndex = listeners.findIndex((_callback)=>_callback === callback);
115
+ (0, _assert().default)(listenerIndex >= 0, 'removeInteractionListener(): cannot remove an unregistered event listener.');
116
+ listeners.splice(listenerIndex, 1);
117
+ }
118
+ function pauseInteractions(options = {}) {
119
+ debug('Interaction observers paused');
120
+ for (const listener of listeners){
121
+ listener({
122
+ pause: true,
123
+ ...options
124
+ });
125
+ }
126
+ }
127
+ function resumeInteractions(options = {}) {
128
+ debug('Interaction observers resumed');
129
+ for (const listener of listeners){
130
+ listener({
131
+ pause: false,
132
+ ...options
133
+ });
134
+ }
135
+ }
136
+ function createSelectionFilter() {
137
+ function escapeRegex(string) {
138
+ return string.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
139
+ }
140
+ return async (input, choices)=>{
141
+ try {
142
+ const regex = new RegExp(escapeRegex(input), 'i');
143
+ return choices.filter((choice)=>regex.test(choice.title));
144
+ } catch (error) {
145
+ debug('Error filtering choices', error);
146
+ return [];
147
+ }
148
+ };
149
+ }
150
+
151
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/prompts.ts"],"sourcesContent":["import assert from 'assert';\nimport prompts, { Choice, Options, PromptObject } from 'prompts';\n\nimport { AbortCommandError, CommandError } from './errors';\nimport { isInteractive } from './interactive';\n\nconst debug = require('debug')('expo:utils:prompts') as typeof console.log;\n\nexport type Question<V extends string = string> = PromptObject<V> & {\n optionsPerPage?: number;\n};\n\nexport interface ExpoChoice<T> extends Choice {\n value: T;\n}\n\ntype PromptOptions = { nonInteractiveHelp?: string } & Options;\n\nexport type NamelessQuestion = Omit<Question<'value'>, 'name' | 'type'>;\n\ntype InteractionOptions = { pause: boolean; canEscape?: boolean };\n\ntype InteractionCallback = (options: InteractionOptions) => void;\n\n/** Interaction observers for detecting when keystroke tracking should pause/resume. */\nconst listeners: InteractionCallback[] = [];\n\nexport default async function prompt(\n questions: Question | Question[],\n { nonInteractiveHelp, ...options }: PromptOptions = {}\n) {\n questions = Array.isArray(questions) ? questions : [questions];\n if (!isInteractive() && questions.length !== 0) {\n let message = `Input is required, but 'npx expo' is in non-interactive mode.\\n`;\n if (nonInteractiveHelp) {\n message += nonInteractiveHelp;\n } else {\n const question = questions[0];\n const questionMessage =\n typeof question.message === 'function'\n ? question.message(undefined, {}, question)\n : question.message;\n\n message += `Required input:\\n${(questionMessage || '').trim().replace(/^/gm, '> ')}`;\n }\n throw new CommandError('NON_INTERACTIVE', message);\n }\n\n pauseInteractions();\n try {\n const results = await prompts(questions, {\n onCancel() {\n throw new AbortCommandError();\n },\n ...options,\n });\n\n return results;\n } finally {\n resumeInteractions();\n }\n}\n\n/**\n * Create a standard yes/no confirmation that can be cancelled.\n *\n * @param questions\n * @param options\n */\nexport async function confirmAsync(\n questions: NamelessQuestion,\n options?: PromptOptions\n): Promise<boolean> {\n const { value } = await prompt(\n {\n initial: true,\n ...questions,\n name: 'value',\n type: 'confirm',\n },\n options\n );\n return value ?? null;\n}\n\n/** Select an option from a list of options. */\nexport async function selectAsync<T>(\n message: string,\n choices: ExpoChoice<T>[],\n options?: PromptOptions\n): Promise<T> {\n const { value } = await prompt(\n {\n message,\n choices,\n name: 'value',\n type: 'select',\n },\n options\n );\n return value ?? null;\n}\n\nexport const promptAsync = prompt;\n\n/** Used to pause/resume interaction observers while prompting (made for TerminalUI). */\nexport function addInteractionListener(callback: InteractionCallback) {\n listeners.push(callback);\n}\n\nexport function removeInteractionListener(callback: InteractionCallback) {\n const listenerIndex = listeners.findIndex((_callback) => _callback === callback);\n assert(\n listenerIndex >= 0,\n 'removeInteractionListener(): cannot remove an unregistered event listener.'\n );\n listeners.splice(listenerIndex, 1);\n}\n\n/** Notify all listeners that keypress observations must pause. */\nexport function pauseInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers paused');\n for (const listener of listeners) {\n listener({ pause: true, ...options });\n }\n}\n\n/** Notify all listeners that keypress observations can start.. */\nexport function resumeInteractions(options: Omit<InteractionOptions, 'pause'> = {}) {\n debug('Interaction observers resumed');\n for (const listener of listeners) {\n listener({ pause: false, ...options });\n }\n}\n\nexport function createSelectionFilter(): (input: any, choices: Choice[]) => Promise<any> {\n function escapeRegex(string: string) {\n return string.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n return async (input: any, choices: Choice[]) => {\n try {\n const regex = new RegExp(escapeRegex(input), 'i');\n return choices.filter((choice: any) => regex.test(choice.title));\n } catch (error: any) {\n debug('Error filtering choices', error);\n return [];\n }\n };\n}\n"],"names":["addInteractionListener","confirmAsync","createSelectionFilter","prompt","pauseInteractions","promptAsync","removeInteractionListener","resumeInteractions","selectAsync","debug","require","listeners","questions","nonInteractiveHelp","options","Array","isArray","isInteractive","length","message","question","questionMessage","undefined","trim","replace","CommandError","results","prompts","onCancel","AbortCommandError","value","initial","name","type","choices","callback","push","listenerIndex","findIndex","_callback","assert","splice","listener","pause","escapeRegex","string","input","regex","RegExp","filter","choice","test","title","error"],"mappings":";;;;;;;;;;;IA0GgBA,sBAAsB;eAAtBA;;IArCMC,YAAY;eAAZA;;IAkENC,qBAAqB;eAArBA;;IA5GhB,OAkCC;eAlC6BC;;IA6FdC,iBAAiB;eAAjBA;;IAjBHC,WAAW;eAAXA;;IAOGC,yBAAyB;eAAzBA;;IAkBAC,kBAAkB;eAAlBA;;IA1CMC,WAAW;eAAXA;;;;gEAtFH;;;;;;;gEACoC;;;;;;wBAEP;6BAClB;;;;;;AAE9B,MAAMC,QAAQC,QAAQ,SAAS;AAkB/B,qFAAqF,GACrF,MAAMC,YAAmC,EAAE;AAE5B,eAAeR,OAC5BS,SAAgC,EAChC,EAAEC,kBAAkB,EAAE,GAAGC,SAAwB,GAAG,CAAC,CAAC;IAEtDF,YAAYG,MAAMC,OAAO,CAACJ,aAAaA,YAAY;QAACA;KAAU;IAC9D,IAAI,CAACK,IAAAA,0BAAa,OAAML,UAAUM,MAAM,KAAK,GAAG;QAC9C,IAAIC,UAAU,CAAC,+DAA+D,CAAC;QAC/E,IAAIN,oBAAoB;YACtBM,WAAWN;QACb,OAAO;YACL,MAAMO,WAAWR,SAAS,CAAC,EAAE;YAC7B,MAAMS,kBACJ,OAAOD,SAASD,OAAO,KAAK,aACxBC,SAASD,OAAO,CAACG,WAAW,CAAC,GAAGF,YAChCA,SAASD,OAAO;YAEtBA,WAAW,CAAC,iBAAiB,EAAE,AAACE,CAAAA,mBAAmB,EAAC,EAAGE,IAAI,GAAGC,OAAO,CAAC,OAAO,OAAO;QACtF;QACA,MAAM,IAAIC,oBAAY,CAAC,mBAAmBN;IAC5C;IAEAf;IACA,IAAI;QACF,MAAMsB,UAAU,MAAMC,IAAAA,kBAAO,EAACf,WAAW;YACvCgB;gBACE,MAAM,IAAIC,yBAAiB;YAC7B;YACA,GAAGf,OAAO;QACZ;QAEA,OAAOY;IACT,SAAU;QACRnB;IACF;AACF;AAQO,eAAeN,aACpBW,SAA2B,EAC3BE,OAAuB;IAEvB,MAAM,EAAEgB,KAAK,EAAE,GAAG,MAAM3B,OACtB;QACE4B,SAAS;QACT,GAAGnB,SAAS;QACZoB,MAAM;QACNC,MAAM;IACR,GACAnB;IAEF,OAAOgB,SAAS;AAClB;AAGO,eAAetB,YACpBW,OAAe,EACfe,OAAwB,EACxBpB,OAAuB;IAEvB,MAAM,EAAEgB,KAAK,EAAE,GAAG,MAAM3B,OACtB;QACEgB;QACAe;QACAF,MAAM;QACNC,MAAM;IACR,GACAnB;IAEF,OAAOgB,SAAS;AAClB;AAEO,MAAMzB,cAAcF;AAGpB,SAASH,uBAAuBmC,QAA6B;IAClExB,UAAUyB,IAAI,CAACD;AACjB;AAEO,SAAS7B,0BAA0B6B,QAA6B;IACrE,MAAME,gBAAgB1B,UAAU2B,SAAS,CAAC,CAACC,YAAcA,cAAcJ;IACvEK,IAAAA,iBAAM,EACJH,iBAAiB,GACjB;IAEF1B,UAAU8B,MAAM,CAACJ,eAAe;AAClC;AAGO,SAASjC,kBAAkBU,UAA6C,CAAC,CAAC;IAC/EL,MAAM;IACN,KAAK,MAAMiC,YAAY/B,UAAW;QAChC+B,SAAS;YAAEC,OAAO;YAAM,GAAG7B,OAAO;QAAC;IACrC;AACF;AAGO,SAASP,mBAAmBO,UAA6C,CAAC,CAAC;IAChFL,MAAM;IACN,KAAK,MAAMiC,YAAY/B,UAAW;QAChC+B,SAAS;YAAEC,OAAO;YAAO,GAAG7B,OAAO;QAAC;IACtC;AACF;AAEO,SAASZ;IACd,SAAS0C,YAAYC,MAAc;QACjC,OAAOA,OAAOrB,OAAO,CAAC,yBAAyB;IACjD;IAEA,OAAO,OAAOsB,OAAYZ;QACxB,IAAI;YACF,MAAMa,QAAQ,IAAIC,OAAOJ,YAAYE,QAAQ;YAC7C,OAAOZ,QAAQe,MAAM,CAAC,CAACC,SAAgBH,MAAMI,IAAI,CAACD,OAAOE,KAAK;QAChE,EAAE,OAAOC,OAAY;YACnB5C,MAAM,2BAA2B4C;YACjC,OAAO,EAAE;QACX;IACF;AACF"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "printQRCode", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return printQRCode;
9
+ }
10
+ });
11
+ function _nodetty() {
12
+ const data = /*#__PURE__*/ _interop_require_default(require("node:tty"));
13
+ _nodetty = function() {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _toqr() {
19
+ const data = require("toqr");
20
+ _toqr = function() {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
25
+ const _env = require("./env");
26
+ const _log = /*#__PURE__*/ _interop_require_wildcard(require("../log"));
27
+ function _interop_require_default(obj) {
28
+ return obj && obj.__esModule ? obj : {
29
+ default: obj
30
+ };
31
+ }
32
+ function _getRequireWildcardCache(nodeInterop) {
33
+ if (typeof WeakMap !== "function") return null;
34
+ var cacheBabelInterop = new WeakMap();
35
+ var cacheNodeInterop = new WeakMap();
36
+ return (_getRequireWildcardCache = function(nodeInterop) {
37
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
38
+ })(nodeInterop);
39
+ }
40
+ function _interop_require_wildcard(obj, nodeInterop) {
41
+ if (!nodeInterop && obj && obj.__esModule) {
42
+ return obj;
43
+ }
44
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
45
+ return {
46
+ default: obj
47
+ };
48
+ }
49
+ var cache = _getRequireWildcardCache(nodeInterop);
50
+ if (cache && cache.has(obj)) {
51
+ return cache.get(obj);
52
+ }
53
+ var newObj = {
54
+ __proto__: null
55
+ };
56
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
57
+ for(var key in obj){
58
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
59
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
60
+ if (desc && (desc.get || desc.set)) {
61
+ Object.defineProperty(newObj, key, desc);
62
+ } else {
63
+ newObj[key] = obj[key];
64
+ }
65
+ }
66
+ }
67
+ newObj.default = obj;
68
+ if (cache) {
69
+ cache.set(obj, newObj);
70
+ }
71
+ return newObj;
72
+ }
73
+ function printQRCode(url) {
74
+ const qr = (0, _toqr().toQR)(url);
75
+ const output = supportsSextants() ? createSextantOutput(qr) : createHalfblockOutput(qr);
76
+ return {
77
+ lines: output.split('\n').length,
78
+ print () {
79
+ _log.log(output);
80
+ }
81
+ };
82
+ }
83
+ /** On specific terminals we can print a smaller QR code */ function supportsSextants() {
84
+ var _process_env_WT_SESSION, _process_env_KITTY_WINDOW_ID, _process_env_ALACRITTY_WINDOW_ID;
85
+ if (_env.env.CI || !_nodetty().default.isatty(1) || !_nodetty().default.isatty(2)) {
86
+ return false;
87
+ } else if (process.env.COLOR === '0' || process.env.COLOR === 'false') {
88
+ return false;
89
+ }
90
+ const isWindowsTerminal = process.platform === 'win32' && !!((_process_env_WT_SESSION = process.env.WT_SESSION) == null ? void 0 : _process_env_WT_SESSION.length);
91
+ const isGhostty = process.env.TERM_PROGRAM === 'ghostty';
92
+ const isWezterm = process.env.TERM_PROGRAM === 'WezTerm';
93
+ const isKitty = !!((_process_env_KITTY_WINDOW_ID = process.env.KITTY_WINDOW_ID) == null ? void 0 : _process_env_KITTY_WINDOW_ID.length);
94
+ const isAlacritty = !!((_process_env_ALACRITTY_WINDOW_ID = process.env.ALACRITTY_WINDOW_ID) == null ? void 0 : _process_env_ALACRITTY_WINDOW_ID.length);
95
+ return isWindowsTerminal || isGhostty || isWezterm || isKitty || isAlacritty;
96
+ }
97
+ /** ANSI QR code output by using half-blocks (1x2-sized unicode blocks) */ function createHalfblockOutput(data) {
98
+ const extent = Math.sqrt(data.byteLength) | 0;
99
+ const CHAR_00 = '\u2588';
100
+ const CHAR_10 = '\u2584';
101
+ const CHAR_01 = '\u2580';
102
+ const CHAR_11 = ' ';
103
+ let output = '';
104
+ output += CHAR_10.repeat(extent + 2);
105
+ for(let row = 0; row < extent; row += 2){
106
+ output += '\n' + CHAR_00;
107
+ for(let col = 0; col < extent; col++){
108
+ const value = data[row * extent + col] << 1 | data[(row + 1) * extent + col];
109
+ switch(value){
110
+ case 0:
111
+ output += CHAR_00;
112
+ break;
113
+ case 1:
114
+ output += CHAR_01;
115
+ break;
116
+ case 2:
117
+ output += CHAR_10;
118
+ break;
119
+ case 3:
120
+ output += CHAR_11;
121
+ break;
122
+ }
123
+ }
124
+ output += CHAR_00;
125
+ }
126
+ if (extent % 2 === 0) {
127
+ output += '\n' + CHAR_01.repeat(extent + 2);
128
+ }
129
+ output += '\n';
130
+ return output;
131
+ }
132
+ /** ANSI QR code output by using sextant-blocks (2x3-sized unicode blocks) */ function createSextantOutput(data) {
133
+ const getChar = (p)=>{
134
+ // Invert then reverse
135
+ let char = p ^ 63;
136
+ char = (char & 0xaa) >> 1 | (char & 0x55) << 1;
137
+ char = (char & 0xcc) >> 2 | (char & 0x33) << 2;
138
+ char = char >> 4 | char << 4;
139
+ char = char >> 2 & 63;
140
+ switch(char){
141
+ case 0:
142
+ return ' ';
143
+ case 63:
144
+ return '\u2588';
145
+ case 21:
146
+ return '\u258C';
147
+ case 42:
148
+ return '\u2590';
149
+ default:
150
+ return String.fromCodePoint(0x1fb00 + char - 1 - (char > 21 ? 1 : 0) - (char > 42 ? 1 : 0));
151
+ }
152
+ };
153
+ const extent = Math.sqrt(data.byteLength) | 0;
154
+ const padded = extent + 2;
155
+ let output = '';
156
+ for(let baseRow = 0; baseRow < padded; baseRow += 3){
157
+ if (baseRow) output += '\n';
158
+ for(let baseCol = 0; baseCol < padded; baseCol += 2){
159
+ let p = 0;
160
+ for(let dr = 0; dr < 3; dr++){
161
+ for(let dc = 0; dc < 2; dc++){
162
+ const r = baseRow + dr;
163
+ const c = baseCol + dc;
164
+ const bit = 5 - (dr * 2 + dc);
165
+ let cell = 1; // default empty (out of bounds)
166
+ if (r < padded && c < padded) {
167
+ if (r === 0 || c === 0 || r === padded - 1 || c === padded - 1) {
168
+ cell = 0; // border is filled
169
+ } else if (r <= extent && c <= extent) {
170
+ cell = data[(r - 1) * extent + (c - 1)];
171
+ }
172
+ }
173
+ p |= (cell & 1) << bit;
174
+ }
175
+ }
176
+ output += getChar(p);
177
+ }
178
+ }
179
+ if (padded % 3 === 0) {
180
+ // Only add newline if the padded output lines up with a newline exactly
181
+ output += '\n';
182
+ }
183
+ return output;
184
+ }
185
+
186
+ //# sourceMappingURL=qr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/qr.ts"],"sourcesContent":["import tty from 'node:tty';\nimport { toQR } from 'toqr';\n\nimport { env } from './env';\nimport * as Log from '../log';\n\nexport interface QROutput {\n lines: number;\n print(): void;\n}\n\n/** Print the world famous 'Expo QR Code'. */\nexport function printQRCode(url: string): QROutput {\n const qr = toQR(url);\n const output = supportsSextants() ? createSextantOutput(qr) : createHalfblockOutput(qr);\n return {\n lines: output.split('\\n').length,\n print() {\n Log.log(output);\n },\n };\n}\n\n/** On specific terminals we can print a smaller QR code */\nfunction supportsSextants() {\n if (env.CI || !tty.isatty(1) || !tty.isatty(2)) {\n return false;\n } else if (process.env.COLOR === '0' || process.env.COLOR === 'false') {\n return false;\n }\n const isWindowsTerminal = process.platform === 'win32' && !!process.env.WT_SESSION?.length;\n const isGhostty = process.env.TERM_PROGRAM === 'ghostty';\n const isWezterm = process.env.TERM_PROGRAM === 'WezTerm';\n const isKitty = !!process.env.KITTY_WINDOW_ID?.length;\n const isAlacritty = !!process.env.ALACRITTY_WINDOW_ID?.length;\n return isWindowsTerminal || isGhostty || isWezterm || isKitty || isAlacritty;\n}\n\n/** ANSI QR code output by using half-blocks (1x2-sized unicode blocks) */\nfunction createHalfblockOutput(data: Uint8Array): string {\n const extent = Math.sqrt(data.byteLength) | 0;\n const CHAR_00 = '\\u2588';\n const CHAR_10 = '\\u2584';\n const CHAR_01 = '\\u2580';\n const CHAR_11 = ' ';\n let output = '';\n output += CHAR_10.repeat(extent + 2);\n for (let row = 0; row < extent; row += 2) {\n output += '\\n' + CHAR_00;\n for (let col = 0; col < extent; col++) {\n const value = (data[row * extent + col] << 1) | data[(row + 1) * extent + col];\n switch (value) {\n case 0b00:\n output += CHAR_00;\n break;\n case 0b01:\n output += CHAR_01;\n break;\n case 0b10:\n output += CHAR_10;\n break;\n case 0b11:\n output += CHAR_11;\n break;\n }\n }\n output += CHAR_00;\n }\n if (extent % 2 === 0) {\n output += '\\n' + CHAR_01.repeat(extent + 2);\n }\n output += '\\n';\n return output;\n}\n\n/** ANSI QR code output by using sextant-blocks (2x3-sized unicode blocks) */\nfunction createSextantOutput(data: Uint8Array): string {\n const getChar = (p: number): string => {\n // Invert then reverse\n let char = p ^ 0b111111;\n char = ((char & 0xaa) >> 1) | ((char & 0x55) << 1);\n char = ((char & 0xcc) >> 2) | ((char & 0x33) << 2);\n char = (char >> 4) | (char << 4);\n char = (char >> 2) & 63;\n switch (char) {\n case 0:\n return ' ';\n case 63:\n return '\\u2588';\n case 21:\n return '\\u258C';\n case 42:\n return '\\u2590';\n default:\n return String.fromCodePoint(0x1fb00 + char - 1 - (char > 21 ? 1 : 0) - (char > 42 ? 1 : 0));\n }\n };\n const extent = Math.sqrt(data.byteLength) | 0;\n const padded = extent + 2;\n let output = '';\n for (let baseRow = 0; baseRow < padded; baseRow += 3) {\n if (baseRow) output += '\\n';\n for (let baseCol = 0; baseCol < padded; baseCol += 2) {\n let p = 0;\n for (let dr = 0; dr < 3; dr++) {\n for (let dc = 0; dc < 2; dc++) {\n const r = baseRow + dr;\n const c = baseCol + dc;\n const bit = 5 - (dr * 2 + dc);\n let cell = 1; // default empty (out of bounds)\n if (r < padded && c < padded) {\n if (r === 0 || c === 0 || r === padded - 1 || c === padded - 1) {\n cell = 0; // border is filled\n } else if (r <= extent && c <= extent) {\n cell = data[(r - 1) * extent + (c - 1)];\n }\n }\n p |= (cell & 1) << bit;\n }\n }\n output += getChar(p);\n }\n }\n if (padded % 3 === 0) {\n // Only add newline if the padded output lines up with a newline exactly\n output += '\\n';\n }\n return output;\n}\n"],"names":["printQRCode","url","qr","toQR","output","supportsSextants","createSextantOutput","createHalfblockOutput","lines","split","length","print","Log","log","process","env","CI","tty","isatty","COLOR","isWindowsTerminal","platform","WT_SESSION","isGhostty","TERM_PROGRAM","isWezterm","isKitty","KITTY_WINDOW_ID","isAlacritty","ALACRITTY_WINDOW_ID","data","extent","Math","sqrt","byteLength","CHAR_00","CHAR_10","CHAR_01","CHAR_11","repeat","row","col","value","getChar","p","char","String","fromCodePoint","padded","baseRow","baseCol","dr","dc","r","c","bit","cell"],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
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
+ _resolveStringOrBooleanArgs: function() {
13
+ return _resolveStringOrBooleanArgs;
14
+ },
15
+ assertDuplicateArgs: function() {
16
+ return assertDuplicateArgs;
17
+ },
18
+ assertNonBooleanArg: function() {
19
+ return assertNonBooleanArg;
20
+ },
21
+ assertUnknownArgs: function() {
22
+ return assertUnknownArgs;
23
+ },
24
+ collapseAliases: function() {
25
+ return collapseAliases;
26
+ },
27
+ resolveCustomBooleanArgsAsync: function() {
28
+ return resolveCustomBooleanArgsAsync;
29
+ },
30
+ resolveStringOrBooleanArgsAsync: function() {
31
+ return resolveStringOrBooleanArgsAsync;
32
+ }
33
+ });
34
+ const _array = require("./array");
35
+ const _errors = require("./errors");
36
+ /** Convert ExtraArgsSpec to arg.Spec (for validation) and extract allowedValues */ function parseExtraArgMap(extraArgMap) {
37
+ const spec = {};
38
+ const allowedValues = {};
39
+ for (const [key, value] of Object.entries(extraArgMap)){
40
+ if (typeof value === 'string') {
41
+ // Alias (e.g. '-f': '--flag')
42
+ spec[key] = value;
43
+ } else if (Array.isArray(value)) {
44
+ // Tuple [Boolean, ...strings] - Boolean is enforced by the type, but check at runtime too
45
+ const [first, ...stringValues] = value;
46
+ if (first !== Boolean) {
47
+ throw new _errors.CommandError('BAD_ARGS', `Invalid extraArgMap spec for ${key}: first element must be Boolean`);
48
+ }
49
+ spec[key] = Boolean;
50
+ allowedValues[key] = [
51
+ 'true',
52
+ 'false',
53
+ ...stringValues
54
+ ];
55
+ } else {
56
+ // Boolean - any value allowed
57
+ spec[key] = Boolean;
58
+ }
59
+ }
60
+ return {
61
+ spec,
62
+ allowedValues
63
+ };
64
+ }
65
+ /** Split up arguments that are formatted like `--foo=bar` or `-f="bar"` to `['--foo', 'bar']` */ function splitArgs(args) {
66
+ const result = [];
67
+ for (const arg of args){
68
+ if (arg.startsWith('-')) {
69
+ const [key, ...props] = arg.split('=');
70
+ result.push(key);
71
+ if (props.length) {
72
+ result.push(props.join('='));
73
+ }
74
+ } else {
75
+ result.push(arg);
76
+ }
77
+ }
78
+ return result;
79
+ }
80
+ async function resolveStringOrBooleanArgsAsync(argv, rawArgMap, extraArgMap) {
81
+ let args = splitArgs(argv);
82
+ const { spec: extraArgSpec, allowedValues } = parseExtraArgMap(extraArgMap);
83
+ const combinedSpec = {
84
+ ...rawArgMap,
85
+ ...extraArgSpec
86
+ };
87
+ // Assert any missing arguments
88
+ assertUnknownArgs(combinedSpec, args);
89
+ // Collapse aliases into fully qualified arguments.
90
+ args = collapseAliases(combinedSpec, args);
91
+ // Filter out array-type arguments so _resolveStringOrBooleanArgs can process the rest.
92
+ // This is necessary because _resolveStringOrBooleanArgs can't handle array-type args like --platform.
93
+ const filteredArgs = filterOutArrayArgs(args, combinedSpec);
94
+ // Resolve all of the string or boolean arguments and the project root.
95
+ return _resolveStringOrBooleanArgs(combinedSpec, filteredArgs, allowedValues);
96
+ }
97
+ async function resolveCustomBooleanArgsAsync(argv, rawArgMap, extraArgMap) {
98
+ const results = await resolveStringOrBooleanArgsAsync(argv, rawArgMap, extraArgMap);
99
+ return {
100
+ ...results,
101
+ args: Object.fromEntries(Object.entries(results.args).map(([key, value])=>{
102
+ // Skip aliases (e.g. '-f': '--flag') - only process actual flags
103
+ const extraArgValue = extraArgMap[key];
104
+ if (extraArgValue && typeof extraArgValue !== 'string') {
105
+ if (typeof value === 'string') {
106
+ if (![
107
+ 'true',
108
+ 'false'
109
+ ].includes(value)) {
110
+ throw new _errors.CommandError('BAD_ARGS', `Invalid boolean argument: ${key}=${value}. Expected one of: true, false`);
111
+ }
112
+ return [
113
+ key,
114
+ value === 'true'
115
+ ];
116
+ }
117
+ }
118
+ return [
119
+ key,
120
+ value
121
+ ];
122
+ }))
123
+ };
124
+ }
125
+ function _resolveStringOrBooleanArgs(arg, args, allowedValues) {
126
+ // Default project root, if a custom one is defined then it will overwrite this.
127
+ let projectRoot = '.';
128
+ // The resolved arguments.
129
+ const settings = {};
130
+ // Create a list of possible arguments, this will filter out aliases.
131
+ const possibleArgs = Object.entries(arg).filter(([, value])=>typeof value !== 'string').map(([key])=>key);
132
+ // Check if a value is allowed for a given flag
133
+ const isAllowedValue = (flag, value)=>{
134
+ if (!allowedValues || !allowedValues[flag]) {
135
+ return true; // No restrictions, allow any value
136
+ }
137
+ return allowedValues[flag].includes(value);
138
+ };
139
+ // Loop over arguments in reverse order so we can resolve if a value belongs to a flag.
140
+ for(let i = args.length - 1; i > -1; i--){
141
+ const value = args[i];
142
+ // At this point we should have converted all aliases to fully qualified arguments.
143
+ if (value.startsWith('--')) {
144
+ // If we ever find an argument then it must be a boolean because we are checking in reverse
145
+ // and removing arguments from the array if we find a string.
146
+ // We don't override arguments that are already set
147
+ if (!(value in settings)) {
148
+ settings[value] = true;
149
+ }
150
+ } else {
151
+ // Get the previous argument in the array.
152
+ const nextValue = i > 0 ? args[i - 1] : null;
153
+ if (nextValue && possibleArgs.includes(nextValue) && isAllowedValue(nextValue, value)) {
154
+ // We don't override arguments that are already set
155
+ if (!(nextValue in settings)) {
156
+ settings[nextValue] = value;
157
+ }
158
+ i--;
159
+ } else if (// If the last value is not a flag and it doesn't have a recognized flag before it (instead having a string value or nothing)
160
+ // then it must be the project root.
161
+ i === args.length - 1) {
162
+ projectRoot = value;
163
+ } else {
164
+ // This will asserts if two strings are passed in a row and not at the end of the line.
165
+ throw new _errors.CommandError('BAD_ARGS', `Unknown argument: ${value}`);
166
+ }
167
+ }
168
+ }
169
+ return {
170
+ args: settings,
171
+ projectRoot
172
+ };
173
+ }
174
+ function collapseAliases(arg, args) {
175
+ const aliasMap = getAliasTuples(arg);
176
+ for (const [arg, alias] of aliasMap){
177
+ args = (0, _array.replaceAllValues)(args, arg, alias);
178
+ }
179
+ // Assert if there are duplicate flags after we collapse the aliases.
180
+ // Skip array-type arguments (like --platform) which can have multiple values.
181
+ assertDuplicateArgs(args, aliasMap, arg);
182
+ return args;
183
+ }
184
+ function assertUnknownArgs(arg, args) {
185
+ const allowedArgs = Object.keys(arg);
186
+ const unknownArgs = args.filter((arg)=>!allowedArgs.includes(arg) && arg.startsWith('-'));
187
+ if (unknownArgs.length > 0) {
188
+ throw new _errors.CommandError(`Unknown arguments: ${unknownArgs.join(', ')}`);
189
+ }
190
+ }
191
+ function getAliasTuples(arg) {
192
+ return Object.entries(arg).filter(([, value])=>typeof value === 'string');
193
+ }
194
+ /** Filter out array-type arguments from the spec (and their values).
195
+ * This is needed because _resolveStringOrBooleanArgs can't handle array args like --platform.
196
+ */ function filterOutArrayArgs(args, spec) {
197
+ // Get the set of flag names that are array types
198
+ const arrayFlags = new Set(Object.entries(spec).filter(([, value])=>Array.isArray(value)).map(([key])=>key));
199
+ if (arrayFlags.size === 0) {
200
+ return args;
201
+ }
202
+ const result = [];
203
+ for(let i = 0; i < args.length; i++){
204
+ const arg = args[i];
205
+ if (arrayFlags.has(arg)) {
206
+ // Skip this flag and its value if it has one
207
+ if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
208
+ i++;
209
+ }
210
+ } else {
211
+ result.push(arg);
212
+ }
213
+ }
214
+ return result;
215
+ }
216
+ function assertDuplicateArgs(args, argNameAliasTuple, spec) {
217
+ for (const [argName, argNameAlias] of argNameAliasTuple){
218
+ // Skip array-type arguments (like --platform) which can have multiple values
219
+ if (spec && Array.isArray(spec[argNameAlias])) {
220
+ continue;
221
+ }
222
+ if (args.filter((a)=>[
223
+ argName,
224
+ argNameAlias
225
+ ].includes(a)).length > 1) {
226
+ throw new _errors.CommandError('BAD_ARGS', `Can only provide one instance of ${argName} or ${argNameAlias}`);
227
+ }
228
+ }
229
+ }
230
+ function assertNonBooleanArg(argName, arg) {
231
+ if (arg == null || typeof arg === 'boolean') {
232
+ throw new _errors.CommandError('BAD_ARGS', `Expected input for arg ${argName}`);
233
+ }
234
+ }
235
+
236
+ //# sourceMappingURL=resolveArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/resolveArgs.ts"],"sourcesContent":["import arg, { Spec } from 'arg';\n\nimport { replaceAllValues } from './array';\nimport { CommandError } from './errors';\n\n/**\n * Spec for extra arguments that can be string or boolean.\n * - `'--flag': Boolean` → accepts any value\n * - `'--flag': [Boolean, 'a', 'b']` → restricted to 'true', 'false', 'a', 'b'\n * - `'-f': '--flag'` → alias\n */\nexport type ExtraArgsSpec = Record<string, typeof Boolean | string | [typeof Boolean, ...string[]]>;\n\n/** Convert ExtraArgsSpec to arg.Spec (for validation) and extract allowedValues */\nfunction parseExtraArgMap(extraArgMap: ExtraArgsSpec): {\n spec: arg.Spec;\n allowedValues: Record<string, string[]>;\n} {\n const spec: arg.Spec = {};\n const allowedValues: Record<string, string[]> = {};\n\n for (const [key, value] of Object.entries(extraArgMap)) {\n if (typeof value === 'string') {\n // Alias (e.g. '-f': '--flag')\n spec[key] = value;\n } else if (Array.isArray(value)) {\n // Tuple [Boolean, ...strings] - Boolean is enforced by the type, but check at runtime too\n const [first, ...stringValues] = value;\n if (first !== Boolean) {\n throw new CommandError(\n 'BAD_ARGS',\n `Invalid extraArgMap spec for ${key}: first element must be Boolean`\n );\n }\n spec[key] = Boolean;\n allowedValues[key] = ['true', 'false', ...stringValues];\n } else {\n // Boolean - any value allowed\n spec[key] = Boolean;\n }\n }\n\n return { spec, allowedValues };\n}\n\n/** Split up arguments that are formatted like `--foo=bar` or `-f=\"bar\"` to `['--foo', 'bar']` */\nfunction splitArgs(args: string[]): string[] {\n const result: string[] = [];\n\n for (const arg of args) {\n if (arg.startsWith('-')) {\n const [key, ...props] = arg.split('=');\n result.push(key);\n if (props.length) {\n result.push(props.join('='));\n }\n } else {\n result.push(arg);\n }\n }\n\n return result;\n}\n\n/**\n * Enables the resolution of arguments that can either be a string or a boolean.\n *\n * @param argv arguments that were passed to the command.\n * @param rawArgMap base argument spec defining valid arguments and their types.\n * @param extraArgMap extra arguments and aliases that should be resolved as string or boolean.\n * - `'--flag': Boolean` → accepts any value\n * - `'--flag': [Boolean, 'a', 'b']` → restricted to 'true', 'false', 'a', 'b'\n * - `'-f': '--flag'` → alias\n * @returns parsed arguments and project root.\n */\nexport async function resolveStringOrBooleanArgsAsync(\n argv: string[],\n rawArgMap: arg.Spec,\n extraArgMap: ExtraArgsSpec\n) {\n let args = splitArgs(argv);\n\n const { spec: extraArgSpec, allowedValues } = parseExtraArgMap(extraArgMap);\n const combinedSpec = { ...rawArgMap, ...extraArgSpec };\n\n // Assert any missing arguments\n assertUnknownArgs(combinedSpec, args);\n\n // Collapse aliases into fully qualified arguments.\n args = collapseAliases(combinedSpec, args);\n\n // Filter out array-type arguments so _resolveStringOrBooleanArgs can process the rest.\n // This is necessary because _resolveStringOrBooleanArgs can't handle array-type args like --platform.\n const filteredArgs = filterOutArrayArgs(args, combinedSpec);\n\n // Resolve all of the string or boolean arguments and the project root.\n return _resolveStringOrBooleanArgs(combinedSpec, filteredArgs, allowedValues);\n}\n\n/**\n * Enables the resolution of boolean arguments that can be formatted like `--foo=true` or `--foo false`\n *\n * @param argv arguments that were passed to the command.\n * @param rawArgMap base argument spec defining valid arguments and their types.\n * @param extraArgMap extra arguments and aliases that should be resolved as string or boolean.\n * @returns parsed arguments and project root.\n */\nexport async function resolveCustomBooleanArgsAsync(\n argv: string[],\n rawArgMap: arg.Spec,\n extraArgMap: ExtraArgsSpec\n) {\n const results = await resolveStringOrBooleanArgsAsync(argv, rawArgMap, extraArgMap);\n\n return {\n ...results,\n args: Object.fromEntries(\n Object.entries(results.args).map(([key, value]) => {\n // Skip aliases (e.g. '-f': '--flag') - only process actual flags\n const extraArgValue = extraArgMap[key];\n if (extraArgValue && typeof extraArgValue !== 'string') {\n if (typeof value === 'string') {\n if (!['true', 'false'].includes(value)) {\n throw new CommandError(\n 'BAD_ARGS',\n `Invalid boolean argument: ${key}=${value}. Expected one of: true, false`\n );\n }\n return [key, value === 'true'];\n }\n }\n return [key, value];\n })\n ),\n };\n}\n\nexport function _resolveStringOrBooleanArgs(\n arg: Spec,\n args: string[],\n allowedValues?: Record<string, string[]>\n) {\n // Default project root, if a custom one is defined then it will overwrite this.\n let projectRoot: string = '.';\n // The resolved arguments.\n const settings: Record<string, string | boolean | undefined> = {};\n\n // Create a list of possible arguments, this will filter out aliases.\n const possibleArgs = Object.entries(arg)\n .filter(([, value]) => typeof value !== 'string')\n .map(([key]) => key);\n\n // Check if a value is allowed for a given flag\n const isAllowedValue = (flag: string, value: string): boolean => {\n if (!allowedValues || !allowedValues[flag]) {\n return true; // No restrictions, allow any value\n }\n return allowedValues[flag].includes(value);\n };\n\n // Loop over arguments in reverse order so we can resolve if a value belongs to a flag.\n for (let i = args.length - 1; i > -1; i--) {\n const value = args[i];\n // At this point we should have converted all aliases to fully qualified arguments.\n if (value.startsWith('--')) {\n // If we ever find an argument then it must be a boolean because we are checking in reverse\n // and removing arguments from the array if we find a string.\n // We don't override arguments that are already set\n if (!(value in settings)) {\n settings[value] = true;\n }\n } else {\n // Get the previous argument in the array.\n const nextValue = i > 0 ? args[i - 1] : null;\n if (nextValue && possibleArgs.includes(nextValue) && isAllowedValue(nextValue, value)) {\n // We don't override arguments that are already set\n if (!(nextValue in settings)) {\n settings[nextValue] = value;\n }\n i--;\n } else if (\n // If the last value is not a flag and it doesn't have a recognized flag before it (instead having a string value or nothing)\n // then it must be the project root.\n i ===\n args.length - 1\n ) {\n projectRoot = value;\n } else {\n // This will asserts if two strings are passed in a row and not at the end of the line.\n throw new CommandError('BAD_ARGS', `Unknown argument: ${value}`);\n }\n }\n }\n\n return {\n args: settings,\n projectRoot,\n };\n}\n\n/** Convert all aliases to fully qualified flag names. */\nexport function collapseAliases(arg: Spec, args: string[]): string[] {\n const aliasMap = getAliasTuples(arg);\n\n for (const [arg, alias] of aliasMap) {\n args = replaceAllValues(args, arg, alias);\n }\n\n // Assert if there are duplicate flags after we collapse the aliases.\n // Skip array-type arguments (like --platform) which can have multiple values.\n assertDuplicateArgs(args, aliasMap, arg);\n return args;\n}\n\n/** Assert that the spec has unknown arguments. */\nexport function assertUnknownArgs(arg: Spec, args: string[]) {\n const allowedArgs = Object.keys(arg);\n const unknownArgs = args.filter((arg) => !allowedArgs.includes(arg) && arg.startsWith('-'));\n if (unknownArgs.length > 0) {\n throw new CommandError(`Unknown arguments: ${unknownArgs.join(', ')}`);\n }\n}\n\nfunction getAliasTuples(arg: Spec): [string, string][] {\n return Object.entries(arg).filter(([, value]) => typeof value === 'string') as [string, string][];\n}\n\n/** Filter out array-type arguments from the spec (and their values).\n * This is needed because _resolveStringOrBooleanArgs can't handle array args like --platform.\n */\nfunction filterOutArrayArgs(args: string[], spec: Spec): string[] {\n // Get the set of flag names that are array types\n const arrayFlags = new Set(\n Object.entries(spec)\n .filter(([, value]) => Array.isArray(value))\n .map(([key]) => key)\n );\n\n if (arrayFlags.size === 0) {\n return args;\n }\n\n const result: string[] = [];\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arrayFlags.has(arg)) {\n // Skip this flag and its value if it has one\n if (i + 1 < args.length && !args[i + 1].startsWith('-')) {\n i++;\n }\n } else {\n result.push(arg);\n }\n }\n return result;\n}\n\n/** Asserts that a duplicate flag has been used, this naively throws without knowing if an alias or flag were used as the duplicate. */\nexport function assertDuplicateArgs(\n args: string[],\n argNameAliasTuple: [string, string][],\n spec?: Spec\n) {\n for (const [argName, argNameAlias] of argNameAliasTuple) {\n // Skip array-type arguments (like --platform) which can have multiple values\n if (spec && Array.isArray(spec[argNameAlias])) {\n continue;\n }\n if (args.filter((a) => [argName, argNameAlias].includes(a)).length > 1) {\n throw new CommandError(\n 'BAD_ARGS',\n `Can only provide one instance of ${argName} or ${argNameAlias}`\n );\n }\n }\n}\n\nexport function assertNonBooleanArg(argName: string, arg: any): asserts arg is string | string[] {\n if (arg == null || typeof arg === 'boolean') {\n throw new CommandError('BAD_ARGS', `Expected input for arg ${argName}`);\n }\n}\n"],"names":["_resolveStringOrBooleanArgs","assertDuplicateArgs","assertNonBooleanArg","assertUnknownArgs","collapseAliases","resolveCustomBooleanArgsAsync","resolveStringOrBooleanArgsAsync","parseExtraArgMap","extraArgMap","spec","allowedValues","key","value","Object","entries","Array","isArray","first","stringValues","Boolean","CommandError","splitArgs","args","result","arg","startsWith","props","split","push","length","join","argv","rawArgMap","extraArgSpec","combinedSpec","filteredArgs","filterOutArrayArgs","results","fromEntries","map","extraArgValue","includes","projectRoot","settings","possibleArgs","filter","isAllowedValue","flag","i","nextValue","aliasMap","getAliasTuples","alias","replaceAllValues","allowedArgs","keys","unknownArgs","arrayFlags","Set","size","has","argNameAliasTuple","argName","argNameAlias","a"],"mappings":"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"}