@expo/cli 0.17.10 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/bin/cli +98 -118
- package/build/bin/cli.map +1 -1
- package/build/src/api/endpoint.js +11 -3
- package/build/src/api/endpoint.js.map +1 -1
- package/build/src/api/getExpoGoIntermediateCertificate.js +7 -4
- package/build/src/api/getExpoGoIntermediateCertificate.js.map +1 -1
- package/build/src/api/getExpoSchema.js +32 -12
- package/build/src/api/getExpoSchema.js.map +1 -1
- package/build/src/api/getNativeModuleVersions.js +7 -4
- package/build/src/api/getNativeModuleVersions.js.map +1 -1
- package/build/src/api/getProjectDevelopmentCertificate.js +7 -4
- package/build/src/api/getProjectDevelopmentCertificate.js.map +1 -1
- package/build/src/api/getVersions.js +7 -4
- package/build/src/api/getVersions.js.map +1 -1
- package/build/src/api/graphql/client.js +78 -40
- package/build/src/api/graphql/client.js.map +1 -1
- package/build/src/api/graphql/queries/AppQuery.js +22 -8
- package/build/src/api/graphql/queries/AppQuery.js.map +1 -1
- package/build/src/api/graphql/queries/UserQuery.js +13 -5
- package/build/src/api/graphql/queries/UserQuery.js.map +1 -1
- package/build/src/api/graphql/types/App.js +12 -4
- package/build/src/api/graphql/types/App.js.map +1 -1
- package/build/src/api/rest/cache/FileSystemCache.js +25 -11
- package/build/src/api/rest/cache/FileSystemCache.js.map +1 -1
- package/build/src/api/rest/cache/response.js +13 -4
- package/build/src/api/rest/cache/response.js.map +1 -1
- package/build/src/api/rest/cache/wrapFetchWithCache.js +51 -18
- package/build/src/api/rest/cache/wrapFetchWithCache.js.map +1 -1
- package/build/src/api/rest/client.js +55 -30
- package/build/src/api/rest/client.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithBaseUrl.js +13 -5
- package/build/src/api/rest/wrapFetchWithBaseUrl.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithOffline.js +5 -2
- package/build/src/api/rest/wrapFetchWithOffline.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProgress.js +40 -19
- package/build/src/api/rest/wrapFetchWithProgress.js.map +1 -1
- package/build/src/api/rest/wrapFetchWithProxy.js +13 -4
- package/build/src/api/rest/wrapFetchWithProxy.js.map +1 -1
- package/build/src/api/settings.js +16 -5
- package/build/src/api/settings.js.map +1 -1
- package/build/src/api/updateDevelopmentSession.js +33 -13
- package/build/src/api/updateDevelopmentSession.js.map +1 -1
- package/build/src/api/user/UserSettings.js +31 -11
- package/build/src/api/user/UserSettings.js.map +1 -1
- package/build/src/api/user/actions.js +78 -41
- package/build/src/api/user/actions.js.map +1 -1
- package/build/src/api/user/expoSsoLauncher.js +72 -27
- package/build/src/api/user/expoSsoLauncher.js.map +1 -1
- package/build/src/api/user/otp.js +82 -50
- package/build/src/api/user/otp.js.map +1 -1
- package/build/src/api/user/user.js +80 -48
- package/build/src/api/user/user.js.map +1 -1
- package/build/src/config/configAsync.js +82 -45
- package/build/src/config/configAsync.js.map +1 -1
- package/build/src/config/index.js +52 -30
- package/build/src/config/index.js.map +1 -1
- package/build/src/customize/customizeAsync.js +21 -12
- package/build/src/customize/customizeAsync.js.map +1 -1
- package/build/src/customize/generate.js +74 -47
- package/build/src/customize/generate.js.map +1 -1
- package/build/src/customize/index.js +16 -8
- package/build/src/customize/index.js.map +1 -1
- package/build/src/customize/resolveOptions.js +7 -4
- package/build/src/customize/resolveOptions.js.map +1 -1
- package/build/src/customize/templates.js +58 -37
- package/build/src/customize/templates.js.map +1 -1
- package/build/src/customize/typescript.js +50 -29
- package/build/src/customize/typescript.js.map +1 -1
- package/build/src/export/createMetadataJson.js +14 -7
- package/build/src/export/createMetadataJson.js.map +1 -1
- package/build/src/export/embed/exportEmbedAsync.js +103 -50
- package/build/src/export/embed/exportEmbedAsync.js.map +1 -1
- package/build/src/export/embed/index.js +61 -37
- package/build/src/export/embed/index.js.map +1 -1
- package/build/src/export/embed/resolveOptions.js +14 -5
- package/build/src/export/embed/resolveOptions.js.map +1 -1
- package/build/src/export/embed/xcodeCompilerLogger.js +33 -9
- package/build/src/export/embed/xcodeCompilerLogger.js.map +1 -1
- package/build/src/export/exportApp.js +110 -73
- package/build/src/export/exportApp.js.map +1 -1
- package/build/src/export/exportAssets.js +84 -47
- package/build/src/export/exportAssets.js.map +1 -1
- package/build/src/export/exportAsync.js +56 -27
- package/build/src/export/exportAsync.js.map +1 -1
- package/build/src/export/exportHermes.js +46 -26
- package/build/src/export/exportHermes.js.map +1 -1
- package/build/src/export/exportStaticAsync.js +109 -66
- package/build/src/export/exportStaticAsync.js.map +1 -1
- package/build/src/export/favicon.js +47 -15
- package/build/src/export/favicon.js.map +1 -1
- package/build/src/export/fork-bundleAsync.js +92 -44
- package/build/src/export/fork-bundleAsync.js.map +1 -1
- package/build/src/export/getPublicExpoManifest.js +16 -7
- package/build/src/export/getPublicExpoManifest.js.map +1 -1
- package/build/src/export/getResolvedLocales.js +20 -5
- package/build/src/export/getResolvedLocales.js.map +1 -1
- package/build/src/export/html.js +12 -4
- package/build/src/export/html.js.map +1 -1
- package/build/src/export/index.js +55 -33
- package/build/src/export/index.js.map +1 -1
- package/build/src/export/metroAssetLocalPath.js +30 -8
- package/build/src/export/metroAssetLocalPath.js.map +1 -1
- package/build/src/export/persistMetroAssets.js +59 -33
- package/build/src/export/persistMetroAssets.js.map +1 -1
- package/build/src/export/publicFolder.js +31 -11
- package/build/src/export/publicFolder.js.map +1 -1
- package/build/src/export/resolveOptions.js +26 -16
- package/build/src/export/resolveOptions.js.map +1 -1
- package/build/src/export/saveAssets.js +77 -49
- package/build/src/export/saveAssets.js.map +1 -1
- package/build/src/export/web/exportWebAsync.js +28 -13
- package/build/src/export/web/exportWebAsync.js.map +1 -1
- package/build/src/export/web/index.js +53 -31
- package/build/src/export/web/index.js.map +1 -1
- package/build/src/export/web/resolveOptions.js +4 -1
- package/build/src/export/web/resolveOptions.js.map +1 -1
- package/build/src/export/writeContents.js +12 -7
- package/build/src/export/writeContents.js.map +1 -1
- package/build/src/graphql/generated.js +141 -128
- package/build/src/graphql/generated.js.map +1 -1
- package/build/src/install/applyPlugins.js +50 -26
- package/build/src/install/applyPlugins.js.map +1 -1
- package/build/src/install/checkPackages.js +68 -36
- package/build/src/install/checkPackages.js.map +1 -1
- package/build/src/install/fixPackages.js +58 -35
- package/build/src/install/fixPackages.js.map +1 -1
- package/build/src/install/index.js +21 -13
- package/build/src/install/index.js.map +1 -1
- package/build/src/install/installAsync.js +107 -64
- package/build/src/install/installAsync.js.map +1 -1
- package/build/src/install/installExpoPackage.js +60 -27
- package/build/src/install/installExpoPackage.js.map +1 -1
- package/build/src/install/resolveOptions.js +8 -5
- package/build/src/install/resolveOptions.js.map +1 -1
- package/build/src/install/utils/autoAddConfigPlugins.js +29 -9
- package/build/src/install/utils/autoAddConfigPlugins.js.map +1 -1
- package/build/src/lint/ESlintPrerequisite.js +174 -0
- package/build/src/lint/ESlintPrerequisite.js.map +1 -0
- package/build/src/lint/index.js +66 -0
- package/build/src/lint/index.js.map +1 -0
- package/build/src/lint/lintAsync.js +33 -0
- package/build/src/lint/lintAsync.js.map +1 -0
- package/build/src/log.js +27 -15
- package/build/src/log.js.map +1 -1
- package/build/src/login/index.js +43 -25
- package/build/src/login/index.js.map +1 -1
- package/build/src/logout/index.js +43 -25
- package/build/src/logout/index.js.map +1 -1
- package/build/src/prebuild/clearNativeFolder.js +97 -50
- package/build/src/prebuild/clearNativeFolder.js.map +1 -1
- package/build/src/prebuild/configureProjectAsync.js +64 -31
- package/build/src/prebuild/configureProjectAsync.js.map +1 -1
- package/build/src/prebuild/copyTemplateFiles.js +41 -17
- package/build/src/prebuild/copyTemplateFiles.js.map +1 -1
- package/build/src/prebuild/ensureConfigAsync.js +74 -30
- package/build/src/prebuild/ensureConfigAsync.js.map +1 -1
- package/build/src/prebuild/index.js +58 -38
- package/build/src/prebuild/index.js.map +1 -1
- package/build/src/prebuild/prebuildAsync.js +75 -52
- package/build/src/prebuild/prebuildAsync.js.map +1 -1
- package/build/src/prebuild/renameTemplateAppName.js +124 -0
- package/build/src/prebuild/renameTemplateAppName.js.map +1 -0
- package/build/src/prebuild/resolveOptions.js +85 -36
- package/build/src/prebuild/resolveOptions.js.map +1 -1
- package/build/src/prebuild/resolveTemplate.js +102 -46
- package/build/src/prebuild/resolveTemplate.js.map +1 -1
- package/build/src/prebuild/updateFromTemplate.js +80 -41
- package/build/src/prebuild/updateFromTemplate.js.map +1 -1
- package/build/src/prebuild/updatePackageJson.js +111 -54
- package/build/src/prebuild/updatePackageJson.js.map +1 -1
- package/build/src/prebuild/validateTemplatePlatforms.js +56 -23
- package/build/src/prebuild/validateTemplatePlatforms.js.map +1 -1
- package/build/src/register/index.js +43 -25
- package/build/src/register/index.js.map +1 -1
- package/build/src/register/registerAsync.js +14 -11
- package/build/src/register/registerAsync.js.map +1 -1
- package/build/src/run/android/index.js +64 -32
- package/build/src/run/android/index.js.map +1 -1
- package/build/src/run/android/resolveDevice.js +9 -6
- package/build/src/run/android/resolveDevice.js.map +1 -1
- package/build/src/run/android/resolveGradlePropsAsync.js +56 -0
- package/build/src/run/android/resolveGradlePropsAsync.js.map +1 -0
- package/build/src/run/android/resolveInstallApkName.js +28 -14
- package/build/src/run/android/resolveInstallApkName.js.map +1 -1
- package/build/src/run/android/resolveLaunchProps.js +16 -7
- package/build/src/run/android/resolveLaunchProps.js.map +1 -1
- package/build/src/run/android/resolveOptions.js +14 -9
- package/build/src/run/android/resolveOptions.js.map +1 -1
- package/build/src/run/android/runAndroidAsync.js +39 -27
- package/build/src/run/android/runAndroidAsync.js.map +1 -1
- package/build/src/run/ensureNativeProject.js +24 -9
- package/build/src/run/ensureNativeProject.js.map +1 -1
- package/build/src/run/hints.js +23 -9
- package/build/src/run/hints.js.map +1 -1
- package/build/src/run/index.js +55 -35
- package/build/src/run/index.js.map +1 -1
- package/build/src/run/ios/XcodeBuild.js +126 -66
- package/build/src/run/ios/XcodeBuild.js.map +1 -1
- package/build/src/run/ios/appleDevice/AppleDevice.js +52 -27
- package/build/src/run/ios/appleDevice/AppleDevice.js.map +1 -1
- package/build/src/run/ios/appleDevice/ClientManager.js +70 -31
- package/build/src/run/ios/appleDevice/ClientManager.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/AFCClient.js +94 -44
- package/build/src/run/ios/appleDevice/client/AFCClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js +63 -24
- package/build/src/run/ios/appleDevice/client/DebugserverClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js +21 -6
- package/build/src/run/ios/appleDevice/client/InstallationProxyClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js +64 -25
- package/build/src/run/ios/appleDevice/client/LockdowndClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js +66 -28
- package/build/src/run/ios/appleDevice/client/MobileImageMounterClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/ServiceClient.js +18 -4
- package/build/src/run/ios/appleDevice/client/ServiceClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js +42 -15
- package/build/src/run/ios/appleDevice/client/UsbmuxdClient.js.map +1 -1
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js +78 -34
- package/build/src/run/ios/appleDevice/installOnDeviceAsync.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js +85 -66
- package/build/src/run/ios/appleDevice/protocol/AFCProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js +41 -15
- package/build/src/run/ios/appleDevice/protocol/AbstractProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js +30 -11
- package/build/src/run/ios/appleDevice/protocol/GDBProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js +39 -14
- package/build/src/run/ios/appleDevice/protocol/LockdownProtocol.js.map +1 -1
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js +36 -11
- package/build/src/run/ios/appleDevice/protocol/UsbmuxProtocol.js.map +1 -1
- package/build/src/run/ios/codeSigning/Security.js +40 -21
- package/build/src/run/ios/codeSigning/Security.js.map +1 -1
- package/build/src/run/ios/codeSigning/configureCodeSigning.js +55 -28
- package/build/src/run/ios/codeSigning/configureCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js +67 -36
- package/build/src/run/ios/codeSigning/resolveCertificateSigningIdentity.js.map +1 -1
- package/build/src/run/ios/codeSigning/settings.js +11 -3
- package/build/src/run/ios/codeSigning/settings.js.map +1 -1
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js +30 -10
- package/build/src/run/ios/codeSigning/simulatorCodeSigning.js.map +1 -1
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js +33 -15
- package/build/src/run/ios/codeSigning/xcodeCodeSigning.js.map +1 -1
- package/build/src/run/ios/index.js +63 -35
- package/build/src/run/ios/index.js.map +1 -1
- package/build/src/run/ios/launchApp.js +65 -32
- package/build/src/run/ios/launchApp.js.map +1 -1
- package/build/src/run/ios/options/promptDevice.js +24 -14
- package/build/src/run/ios/options/promptDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveDevice.js +64 -41
- package/build/src/run/ios/options/resolveDevice.js.map +1 -1
- package/build/src/run/ios/options/resolveNativeScheme.js +80 -39
- package/build/src/run/ios/options/resolveNativeScheme.js.map +1 -1
- package/build/src/run/ios/options/resolveOptions.js +15 -12
- package/build/src/run/ios/options/resolveOptions.js.map +1 -1
- package/build/src/run/ios/options/resolveXcodeProject.js +13 -4
- package/build/src/run/ios/options/resolveXcodeProject.js.map +1 -1
- package/build/src/run/ios/runIosAsync.js +71 -42
- package/build/src/run/ios/runIosAsync.js.map +1 -1
- package/build/src/run/resolveBundlerProps.js +8 -5
- package/build/src/run/resolveBundlerProps.js.map +1 -1
- package/build/src/run/startBundler.js +60 -27
- package/build/src/run/startBundler.js.map +1 -1
- package/build/src/start/detectDevClient.js +32 -0
- package/build/src/start/detectDevClient.js.map +1 -0
- package/build/src/start/doctor/Prerequisite.js +15 -7
- package/build/src/start/doctor/Prerequisite.js.map +1 -1
- package/build/src/start/doctor/SecurityBinPrerequisite.js +13 -4
- package/build/src/start/doctor/SecurityBinPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js +57 -24
- package/build/src/start/doctor/apple/SimulatorAppPrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js +57 -24
- package/build/src/start/doctor/apple/XcodeDeveloperDiskImagePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcodePrerequisite.js +132 -57
- package/build/src/start/doctor/apple/XcodePrerequisite.js.map +1 -1
- package/build/src/start/doctor/apple/XcrunPrerequisite.js +34 -13
- package/build/src/start/doctor/apple/XcrunPrerequisite.js.map +1 -1
- package/build/src/start/doctor/dependencies/bundledNativeModules.js +69 -30
- package/build/src/start/doctor/dependencies/bundledNativeModules.js.map +1 -1
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js +120 -57
- package/build/src/start/doctor/dependencies/ensureDependenciesAsync.js.map +1 -1
- package/build/src/start/doctor/dependencies/getMissingPackages.js +38 -12
- package/build/src/start/doctor/dependencies/getMissingPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/getVersionedPackages.js +29 -15
- package/build/src/start/doctor/dependencies/getVersionedPackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/resolvePackages.js +39 -15
- package/build/src/start/doctor/dependencies/resolvePackages.js.map +1 -1
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js +88 -55
- package/build/src/start/doctor/dependencies/validateDependenciesVersions.js.map +1 -1
- package/build/src/start/doctor/ngrok/ExternalModule.js +88 -39
- package/build/src/start/doctor/ngrok/ExternalModule.js.map +1 -1
- package/build/src/start/doctor/ngrok/NgrokResolver.js +12 -5
- package/build/src/start/doctor/ngrok/NgrokResolver.js.map +1 -1
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js +75 -45
- package/build/src/start/doctor/typescript/TypeScriptProjectPrerequisite.js.map +1 -1
- package/build/src/start/doctor/typescript/updateTSConfig.js +81 -40
- package/build/src/start/doctor/typescript/updateTSConfig.js.map +1 -1
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js +70 -32
- package/build/src/start/doctor/web/WebSupportProjectPrerequisite.js.map +1 -1
- package/build/src/start/index.js +62 -42
- package/build/src/start/index.js.map +1 -1
- package/build/src/start/interface/KeyPressHandler.js +43 -22
- package/build/src/start/interface/KeyPressHandler.js.map +1 -1
- package/build/src/start/interface/commandsTable.js +81 -41
- package/build/src/start/interface/commandsTable.js.map +1 -1
- package/build/src/start/interface/interactiveActions.js +91 -68
- package/build/src/start/interface/interactiveActions.js.map +1 -1
- package/build/src/start/interface/startInterface.js +84 -57
- package/build/src/start/interface/startInterface.js.map +1 -1
- package/build/src/start/platforms/AppIdResolver.js +16 -7
- package/build/src/start/platforms/AppIdResolver.js.map +1 -1
- package/build/src/start/platforms/DeviceManager.js +47 -20
- package/build/src/start/platforms/DeviceManager.js.map +1 -1
- package/build/src/start/platforms/ExpoGoInstaller.js +81 -45
- package/build/src/start/platforms/ExpoGoInstaller.js.map +1 -1
- package/build/src/start/platforms/PlatformManager.js +42 -20
- package/build/src/start/platforms/PlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/ADBServer.js +28 -13
- package/build/src/start/platforms/android/ADBServer.js.map +1 -1
- package/build/src/start/platforms/android/AndroidAppIdResolver.js +18 -10
- package/build/src/start/platforms/android/AndroidAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/android/AndroidDeviceManager.js +86 -54
- package/build/src/start/platforms/android/AndroidDeviceManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidPlatformManager.js +9 -6
- package/build/src/start/platforms/android/AndroidPlatformManager.js.map +1 -1
- package/build/src/start/platforms/android/AndroidSdk.js +38 -11
- package/build/src/start/platforms/android/AndroidSdk.js.map +1 -1
- package/build/src/start/platforms/android/activateWindow.js +54 -21
- package/build/src/start/platforms/android/activateWindow.js.map +1 -1
- package/build/src/start/platforms/android/adb.js +89 -51
- package/build/src/start/platforms/android/adb.js.map +1 -1
- package/build/src/start/platforms/android/adbReverse.js +57 -31
- package/build/src/start/platforms/android/adbReverse.js.map +1 -1
- package/build/src/start/platforms/android/emulator.js +89 -44
- package/build/src/start/platforms/android/emulator.js.map +1 -1
- package/build/src/start/platforms/android/getDevices.js +11 -10
- package/build/src/start/platforms/android/getDevices.js.map +1 -1
- package/build/src/start/platforms/android/gradle.js +38 -14
- package/build/src/start/platforms/android/gradle.js.map +1 -1
- package/build/src/start/platforms/android/promptAndroidDevice.js +22 -16
- package/build/src/start/platforms/android/promptAndroidDevice.js.map +1 -1
- package/build/src/start/platforms/ios/AppleAppIdResolver.js +31 -10
- package/build/src/start/platforms/ios/AppleAppIdResolver.js.map +1 -1
- package/build/src/start/platforms/ios/AppleDeviceManager.js +120 -62
- package/build/src/start/platforms/ios/AppleDeviceManager.js.map +1 -1
- package/build/src/start/platforms/ios/ApplePlatformManager.js +7 -4
- package/build/src/start/platforms/ios/ApplePlatformManager.js.map +1 -1
- package/build/src/start/platforms/ios/assertSystemRequirements.js +11 -7
- package/build/src/start/platforms/ios/assertSystemRequirements.js.map +1 -1
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js +60 -27
- package/build/src/start/platforms/ios/ensureSimulatorAppRunning.js.map +1 -1
- package/build/src/start/platforms/ios/getBestSimulator.js +60 -30
- package/build/src/start/platforms/ios/getBestSimulator.js.map +1 -1
- package/build/src/start/platforms/ios/promptAppleDevice.js +25 -13
- package/build/src/start/platforms/ios/promptAppleDevice.js.map +1 -1
- package/build/src/start/platforms/ios/simctl.js +75 -46
- package/build/src/start/platforms/ios/simctl.js.map +1 -1
- package/build/src/start/platforms/ios/simctlLogging.js +100 -47
- package/build/src/start/platforms/ios/simctlLogging.js.map +1 -1
- package/build/src/start/platforms/ios/xcrun.js +21 -6
- package/build/src/start/platforms/ios/xcrun.js.map +1 -1
- package/build/src/start/project/devices.js +19 -16
- package/build/src/start/project/devices.js.map +1 -1
- package/build/src/start/project/dotExpo.js +37 -11
- package/build/src/start/project/dotExpo.js.map +1 -1
- package/build/src/start/project/settings.js +6 -4
- package/build/src/start/project/settings.js.map +1 -1
- package/build/src/start/resolveOptions.js +52 -27
- package/build/src/start/resolveOptions.js.map +1 -1
- package/build/src/start/server/AsyncNgrok.js +91 -47
- package/build/src/start/server/AsyncNgrok.js.map +1 -1
- package/build/src/start/server/BundlerDevServer.js +77 -45
- package/build/src/start/server/BundlerDevServer.js.map +1 -1
- package/build/src/start/server/DevServerManager.js +100 -70
- package/build/src/start/server/DevServerManager.js.map +1 -1
- package/build/src/start/server/DevToolsPluginManager.js +35 -18
- package/build/src/start/server/DevToolsPluginManager.js.map +1 -1
- package/build/src/start/server/DevelopmentSession.js +57 -33
- package/build/src/start/server/DevelopmentSession.js.map +1 -1
- package/build/src/start/server/ReactDevToolsProxy.js +37 -11
- package/build/src/start/server/ReactDevToolsProxy.js.map +1 -1
- package/build/src/start/server/UrlCreator.js +61 -27
- package/build/src/start/server/UrlCreator.js.map +1 -1
- package/build/src/start/server/getStaticRenderFunctions.js +125 -77
- package/build/src/start/server/getStaticRenderFunctions.js.map +1 -1
- package/build/src/start/server/metro/MetroBundlerDevServer.js +333 -158
- package/build/src/start/server/metro/MetroBundlerDevServer.js.map +1 -1
- package/build/src/start/server/metro/MetroTerminalReporter.js +50 -28
- package/build/src/start/server/metro/MetroTerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.js +40 -12
- package/build/src/start/server/metro/TerminalReporter.js.map +1 -1
- package/build/src/start/server/metro/TerminalReporter.types.js.map +1 -1
- package/build/src/start/server/metro/createExpoMetroResolver.js +82 -35
- package/build/src/start/server/metro/createExpoMetroResolver.js.map +1 -1
- package/build/src/start/server/metro/createJResolver.js +143 -73
- package/build/src/start/server/metro/createJResolver.js.map +1 -1
- package/build/src/start/server/metro/createServerRouteMiddleware.js +47 -38
- package/build/src/start/server/metro/createServerRouteMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/MessageHandler.js +30 -0
- package/build/src/start/server/metro/debugging/MessageHandler.js.map +1 -0
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js +18 -14
- package/build/src/start/server/metro/debugging/createDebugMiddleware.js.map +1 -1
- package/build/src/start/server/metro/debugging/createHandlersFactory.js +64 -0
- package/build/src/start/server/metro/debugging/createHandlersFactory.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers/utils.js → getDebuggerType.js} +6 -8
- package/build/src/start/server/metro/debugging/getDebuggerType.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/NetworkResponse.js +12 -6
- package/build/src/start/server/metro/debugging/messageHandlers/NetworkResponse.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js +26 -0
- package/build/src/start/server/metro/debugging/messageHandlers/PageReload.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js +28 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js +25 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +1 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js +31 -0
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeCallFunctionOn.js.map +1 -0
- package/build/src/start/server/metro/debugging/{inspectorHandlers → messageHandlers}/VscodeRuntimeGetProperties.js +14 -7
- package/build/src/start/server/metro/debugging/messageHandlers/VscodeRuntimeGetProperties.js.map +1 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js +17 -0
- package/build/src/start/server/metro/debugging/pageIsSupported.js.map +1 -0
- package/build/src/start/server/metro/debugging/types.js.map +1 -0
- package/build/src/start/server/metro/externals.js +67 -69
- package/build/src/start/server/metro/externals.js.map +1 -1
- package/build/src/start/server/metro/fetchRouterManifest.js +26 -7
- package/build/src/start/server/metro/fetchRouterManifest.js.map +1 -1
- package/build/src/start/server/metro/formatFileCandidates.js +28 -18
- package/build/src/start/server/metro/formatFileCandidates.js.map +1 -1
- package/build/src/start/server/metro/getCssModulesFromBundler.js +44 -12
- package/build/src/start/server/metro/getCssModulesFromBundler.js.map +1 -1
- package/build/src/start/server/metro/instantiateMetro.js +141 -62
- package/build/src/start/server/metro/instantiateMetro.js.map +1 -1
- package/build/src/start/server/metro/metroErrorInterface.js +75 -47
- package/build/src/start/server/metro/metroErrorInterface.js.map +1 -1
- package/build/src/start/server/metro/metroErrors.js +11 -2
- package/build/src/start/server/metro/metroErrors.js.map +1 -1
- package/build/src/start/server/metro/metroVirtualModules.js +90 -0
- package/build/src/start/server/metro/metroVirtualModules.js.map +1 -0
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js +12 -3
- package/build/src/start/server/metro/metroWatchTypeScriptFiles.js.map +1 -1
- package/build/src/start/server/metro/router.js +64 -30
- package/build/src/start/server/metro/router.js.map +1 -1
- package/build/src/start/server/metro/runServer-fork.js +68 -19
- package/build/src/start/server/metro/runServer-fork.js.map +1 -1
- package/build/src/start/server/metro/serializeHtml.js +32 -19
- package/build/src/start/server/metro/serializeHtml.js.map +1 -1
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js +19 -5
- package/build/src/start/server/metro/waitForMetroToObserveTypeScriptFile.js.map +1 -1
- package/build/src/start/server/metro/withMetroMultiPlatform.js +232 -104
- package/build/src/start/server/metro/withMetroMultiPlatform.js.map +1 -1
- package/build/src/start/server/metro/withMetroResolvers.js +95 -47
- package/build/src/start/server/metro/withMetroResolvers.js.map +1 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js +4 -1
- package/build/src/start/server/middleware/ContextModuleSourceMapsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CorsMiddleware.js +4 -1
- package/build/src/start/server/middleware/CorsMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/CreateFileMiddleware.js +33 -13
- package/build/src/start/server/middleware/CreateFileMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js +27 -12
- package/build/src/start/server/middleware/DevToolsPluginMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js +65 -28
- package/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ExpoMiddleware.js +54 -22
- package/build/src/start/server/middleware/ExpoMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/FaviconMiddleware.js +8 -5
- package/build/src/start/server/middleware/FaviconMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js +6 -3
- package/build/src/start/server/middleware/HistoryFallbackMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js +58 -21
- package/build/src/start/server/middleware/InterstitialPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ManifestMiddleware.js +117 -63
- package/build/src/start/server/middleware/ManifestMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js +35 -10
- package/build/src/start/server/middleware/ReactDevToolsPageMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js +54 -27
- package/build/src/start/server/middleware/RuntimeRedirectMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/ServeStaticMiddleware.js +31 -10
- package/build/src/start/server/middleware/ServeStaticMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/JsInspector.js +45 -22
- package/build/src/start/server/middleware/inspector/JsInspector.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js +25 -11
- package/build/src/start/server/middleware/inspector/LaunchBrowser.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js +4 -2
- package/build/src/start/server/middleware/inspector/LaunchBrowser.types.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js +36 -14
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplLinux.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js +84 -38
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplMacOS.js.map +1 -1
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js +42 -20
- package/build/src/start/server/middleware/inspector/LaunchBrowserImplWindows.js.map +1 -1
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js +40 -13
- package/build/src/start/server/middleware/inspector/createJsInspectorMiddleware.js.map +1 -1
- package/build/src/start/server/middleware/inspector/middlwareMutations.js +11 -4
- package/build/src/start/server/middleware/inspector/middlwareMutations.js.map +1 -1
- package/build/src/start/server/middleware/metroOptions.js +36 -18
- package/build/src/start/server/middleware/metroOptions.js.map +1 -1
- package/build/src/start/server/middleware/mutations.js +11 -4
- package/build/src/start/server/middleware/mutations.js.map +1 -1
- package/build/src/start/server/middleware/resolveAssets.js +78 -42
- package/build/src/start/server/middleware/resolveAssets.js.map +1 -1
- package/build/src/start/server/middleware/resolvePlatform.js +21 -7
- package/build/src/start/server/middleware/resolvePlatform.js.map +1 -1
- package/build/src/start/server/middleware/suppressErrorMiddleware.js +4 -1
- package/build/src/start/server/middleware/suppressErrorMiddleware.js.map +1 -1
- package/build/src/start/server/openPlatforms.js +7 -6
- package/build/src/start/server/openPlatforms.js.map +1 -1
- package/build/src/start/server/platformBundlers.js +12 -3
- package/build/src/start/server/platformBundlers.js.map +1 -1
- package/build/src/start/server/serverLogLikeMetro.js +93 -40
- package/build/src/start/server/serverLogLikeMetro.js.map +1 -1
- package/build/src/start/server/type-generation/expo-env.js +26 -6
- package/build/src/start/server/type-generation/expo-env.js.map +1 -1
- package/build/src/start/server/type-generation/routes.js +137 -82
- package/build/src/start/server/type-generation/routes.js.map +1 -1
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js +44 -23
- package/build/src/start/server/type-generation/startTypescriptTypeGeneration.js.map +1 -1
- package/build/src/start/server/type-generation/tsconfig.js +41 -16
- package/build/src/start/server/type-generation/tsconfig.js.map +1 -1
- package/build/src/start/server/webTemplate.js +43 -19
- package/build/src/start/server/webTemplate.js.map +1 -1
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js +105 -56
- package/build/src/start/server/webpack/WebpackBundlerDevServer.js.map +1 -1
- package/build/src/start/server/webpack/compile.js +60 -27
- package/build/src/start/server/webpack/compile.js.map +1 -1
- package/build/src/start/server/webpack/formatWebpackMessages.js +35 -25
- package/build/src/start/server/webpack/formatWebpackMessages.js.map +1 -1
- package/build/src/start/server/webpack/resolveFromProject.js +20 -6
- package/build/src/start/server/webpack/resolveFromProject.js.map +1 -1
- package/build/src/start/server/webpack/tls.js +84 -34
- package/build/src/start/server/webpack/tls.js.map +1 -1
- package/build/src/start/startAsync.js +98 -52
- package/build/src/start/startAsync.js.map +1 -1
- package/build/src/utils/FileNotifier.js +73 -28
- package/build/src/utils/FileNotifier.js.map +1 -1
- package/build/src/utils/analytics/getDevClientProperties.js +48 -22
- package/build/src/utils/analytics/getDevClientProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js +4 -1
- package/build/src/utils/analytics/getMetroDebugProperties.js.map +1 -1
- package/build/src/utils/analytics/getMetroProperties.js +4 -1
- package/build/src/utils/analytics/getMetroProperties.js.map +1 -1
- package/build/src/utils/analytics/metroDebuggerMiddleware.js +14 -6
- package/build/src/utils/analytics/metroDebuggerMiddleware.js.map +1 -1
- package/build/src/utils/ansi.js +5 -2
- package/build/src/utils/ansi.js.map +1 -1
- package/build/src/utils/args.js +83 -31
- package/build/src/utils/args.js.map +1 -1
- package/build/src/utils/array.js +16 -9
- package/build/src/utils/array.js.map +1 -1
- package/build/src/utils/cocoapods.js +127 -67
- package/build/src/utils/cocoapods.js.map +1 -1
- package/build/src/utils/codesigning.js +144 -72
- package/build/src/utils/codesigning.js.map +1 -1
- package/build/src/utils/createFileTransform.js +34 -71
- package/build/src/utils/createFileTransform.js.map +1 -1
- package/build/src/utils/delay.js +13 -6
- package/build/src/utils/delay.js.map +1 -1
- package/build/src/utils/dir.js +50 -40
- package/build/src/utils/dir.js.map +1 -1
- package/build/src/utils/downloadAppAsync.js +51 -18
- package/build/src/utils/downloadAppAsync.js.map +1 -1
- package/build/src/utils/downloadExpoGoAsync.js +47 -26
- package/build/src/utils/downloadExpoGoAsync.js.map +1 -1
- package/build/src/utils/editor.js +65 -27
- package/build/src/utils/editor.js.map +1 -1
- package/build/src/utils/env.js +44 -33
- package/build/src/utils/env.js.map +1 -1
- package/build/src/utils/errors.js +35 -12
- package/build/src/utils/errors.js.map +1 -1
- package/build/src/utils/exit.js +10 -7
- package/build/src/utils/exit.js.map +1 -1
- package/build/src/utils/findUp.js +38 -8
- package/build/src/utils/findUp.js.map +1 -1
- package/build/src/utils/fn.js +11 -3
- package/build/src/utils/fn.js.map +1 -1
- package/build/src/utils/getOrPromptApplicationId.js +84 -46
- package/build/src/utils/getOrPromptApplicationId.js.map +1 -1
- package/build/src/utils/getRunningProcess.js +63 -25
- package/build/src/utils/getRunningProcess.js.map +1 -1
- package/build/src/utils/git.js +76 -38
- package/build/src/utils/git.js.map +1 -1
- package/build/src/utils/glob.js +23 -12
- package/build/src/utils/glob.js.map +1 -1
- package/build/src/utils/interactive.js +5 -2
- package/build/src/utils/interactive.js.map +1 -1
- package/build/src/utils/ip.js +12 -3
- package/build/src/utils/ip.js.map +1 -1
- package/build/src/utils/isModuleSymlinked.js +20 -5
- package/build/src/utils/isModuleSymlinked.js.map +1 -1
- package/build/src/utils/link.js +28 -8
- package/build/src/utils/link.js.map +1 -1
- package/build/src/utils/mergeGitIgnorePaths.js +45 -28
- package/build/src/utils/mergeGitIgnorePaths.js.map +1 -1
- package/build/src/utils/modifyConfigAsync.js +69 -31
- package/build/src/utils/modifyConfigAsync.js.map +1 -1
- package/build/src/utils/modifyConfigPlugins.js +50 -23
- package/build/src/utils/modifyConfigPlugins.js.map +1 -1
- package/build/src/utils/nodeEnv.js +8 -1
- package/build/src/utils/nodeEnv.js.map +1 -1
- package/build/src/utils/nodeModules.js +29 -8
- package/build/src/utils/nodeModules.js.map +1 -1
- package/build/src/utils/npm.js +86 -31
- package/build/src/utils/npm.js.map +1 -1
- package/build/src/utils/obj.js +12 -4
- package/build/src/utils/obj.js.map +1 -1
- package/build/src/utils/open.js +13 -4
- package/build/src/utils/open.js.map +1 -1
- package/build/src/utils/ora.js +38 -22
- package/build/src/utils/ora.js.map +1 -1
- package/build/src/utils/plist.js +73 -29
- package/build/src/utils/plist.js.map +1 -1
- package/build/src/utils/port.js +74 -36
- package/build/src/utils/port.js.map +1 -1
- package/build/src/utils/profile.js +56 -29
- package/build/src/utils/profile.js.map +1 -1
- package/build/src/utils/progress.js +23 -13
- package/build/src/utils/progress.js.map +1 -1
- package/build/src/utils/prompts.js +45 -28
- package/build/src/utils/prompts.js.map +1 -1
- package/build/src/utils/resolveArgs.js +23 -20
- package/build/src/utils/resolveArgs.js.map +1 -1
- package/build/src/utils/scheme.js +128 -52
- package/build/src/utils/scheme.js.map +1 -1
- package/build/src/utils/strings.js +11 -4
- package/build/src/utils/strings.js.map +1 -1
- package/build/src/utils/tar.js +56 -23
- package/build/src/utils/tar.js.map +1 -1
- package/build/src/utils/telemetry/DetachedClient.js +90 -0
- package/build/src/utils/telemetry/DetachedClient.js.map +1 -0
- package/build/src/utils/telemetry/RudderClient.js +101 -0
- package/build/src/utils/telemetry/RudderClient.js.map +1 -0
- package/build/src/utils/telemetry/flushDetached.js +44 -0
- package/build/src/utils/telemetry/flushDetached.js.map +1 -0
- package/build/src/utils/telemetry/getContext.js +112 -0
- package/build/src/utils/telemetry/getContext.js.map +1 -0
- package/build/src/utils/telemetry/index.js +37 -0
- package/build/src/utils/telemetry/index.js.map +1 -0
- package/build/src/utils/telemetry/types.js +6 -0
- package/build/src/utils/telemetry/types.js.map +1 -0
- package/build/src/utils/template.js +27 -2
- package/build/src/utils/template.js.map +1 -1
- package/build/src/utils/terminal.js +5 -2
- package/build/src/utils/terminal.js.map +1 -1
- package/build/src/utils/tsconfig/evaluateTsConfig.js +32 -14
- package/build/src/utils/tsconfig/evaluateTsConfig.js.map +1 -1
- package/build/src/utils/tsconfig/loadTsConfigPaths.js +34 -14
- package/build/src/utils/tsconfig/loadTsConfigPaths.js.map +1 -1
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js +8 -4
- package/build/src/utils/tsconfig/matchTsConfigPathAlias.js.map +1 -1
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js +20 -11
- package/build/src/utils/tsconfig/resolveWithTsConfigPaths.js.map +1 -1
- package/build/src/utils/url.js +35 -19
- package/build/src/utils/url.js.map +1 -1
- package/build/src/utils/validateApplicationId.js +47 -28
- package/build/src/utils/validateApplicationId.js.map +1 -1
- package/build/src/utils/variadic.js +15 -11
- package/build/src/utils/variadic.js.map +1 -1
- package/build/src/whoami/index.js +43 -25
- package/build/src/whoami/index.js.map +1 -1
- package/build/src/whoami/whoamiAsync.js +50 -23
- package/build/src/whoami/whoamiAsync.js.map +1 -1
- package/package.json +16 -17
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js +27907 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js +9494 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js +10015 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +28375 -0
- package/static/canary/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +9714 -0
- package/build/src/run/android/resolveGradleProps.js +0 -37
- package/build/src/run/android/resolveGradleProps.js.map +0 -1
- package/build/src/start/server/metro/bundleApiRoutes.js +0 -52
- package/build/src/start/server/metro/bundleApiRoutes.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorDevice.js +0 -80
- package/build/src/start/server/metro/debugging/InspectorDevice.js.map +0 -1
- package/build/src/start/server/metro/debugging/InspectorProxy.js +0 -116
- package/build/src/start/server/metro/debugging/InspectorProxy.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/NetworkResponse.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js +0 -22
- package/build/src/start/server/metro/debugging/inspectorHandlers/PageReload.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js +0 -21
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerGetPossibleBreakpoints.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js +0 -56
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerScriptParsed.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js +0 -18
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeDebuggerSetBreakpointByUrl.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js +0 -24
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeCallFunctionOn.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/VscodeRuntimeGetProperties.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/types.js.map +0 -1
- package/build/src/start/server/metro/debugging/inspectorHandlers/utils.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/fixtures/basic.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js +0 -38
- package/build/src/start/server/type-generation/__typetests__/generateFixtures.js.map +0 -1
- package/build/src/start/server/type-generation/__typetests__/route.test.js +0 -184
- package/build/src/start/server/type-generation/__typetests__/route.test.js.map +0 -1
- package/build/src/utils/analytics/rudderstackClient.js +0 -147
- package/build/src/utils/analytics/rudderstackClient.js.map +0 -1
- /package/build/src/start/server/metro/debugging/{inspectorHandlers/types.js → types.js} +0 -0
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
// From TypeScript: https://github.com/microsoft/TypeScript/blob/5b1897969769449217237aecbe364f823096c63e/src/compiler/core.ts
|
|
2
|
+
// License: https://github.com/microsoft/TypeScript/blob/214df64/LICENSE.txt
|
|
1
3
|
"use strict";
|
|
2
4
|
Object.defineProperty(exports, "__esModule", {
|
|
3
5
|
value: true
|
|
4
6
|
});
|
|
5
|
-
exports
|
|
6
|
-
|
|
7
|
+
Object.defineProperty(exports, "matchTsConfigPathAlias", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: ()=>matchTsConfigPathAlias
|
|
10
|
+
});
|
|
11
|
+
const asterisk = 0x2a;
|
|
7
12
|
function hasZeroOrOneAsteriskCharacter(str) {
|
|
8
13
|
let seenAsterisk = false;
|
|
9
14
|
for(let i = 0; i < str.length; i++){
|
|
@@ -61,8 +66,7 @@ function isPatternMatch({ prefix , suffix }, candidate) {
|
|
|
61
66
|
return patternString;
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
return findBestPatternMatch(patterns, (_)=>_
|
|
65
|
-
, candidate);
|
|
69
|
+
return findBestPatternMatch(patterns, (_)=>_, candidate);
|
|
66
70
|
}
|
|
67
71
|
/**
|
|
68
72
|
* Given that candidate matches pattern, returns the text matching the '*'.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/tsconfig/matchTsConfigPathAlias.ts"],"sourcesContent":["// From TypeScript: https://github.com/microsoft/TypeScript/blob/5b1897969769449217237aecbe364f823096c63e/src/compiler/core.ts\n// License: https://github.com/microsoft/TypeScript/blob/214df64/LICENSE.txt\n\nexport interface Pattern {\n prefix: string;\n suffix: string;\n}\n\nconst asterisk = 0x2a;\n\nfunction hasZeroOrOneAsteriskCharacter(str: string): boolean {\n let seenAsterisk = false;\n for (let i = 0; i < str.length; i++) {\n if (str.charCodeAt(i) === asterisk) {\n if (!seenAsterisk) {\n seenAsterisk = true;\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction tryParsePattern(pattern: string): Pattern | undefined {\n // This should be verified outside of here and a proper error thrown.\n const indexOfStar = pattern.indexOf('*');\n return indexOfStar === -1\n ? undefined\n : {\n prefix: pattern.slice(0, indexOfStar),\n suffix: pattern.slice(indexOfStar + 1),\n };\n}\n\nfunction isPatternMatch({ prefix, suffix }: Pattern, candidate: string) {\n return (\n candidate.length >= prefix.length + suffix.length &&\n candidate.startsWith(prefix) &&\n candidate.endsWith(suffix)\n );\n}\n\n/**\n * Return the object corresponding to the best pattern to match `candidate`.\n *\n * @internal\n */\nfunction findBestPatternMatch<T>(\n values: readonly T[],\n getPattern: (value: T) => Pattern,\n candidate: string\n): T | undefined {\n let matchedValue: T | undefined;\n // use length of prefix as betterness criteria\n let longestMatchPrefixLength = -1;\n\n for (const v of values) {\n const pattern = getPattern(v);\n if (isPatternMatch(pattern, candidate) && pattern.prefix.length > longestMatchPrefixLength) {\n longestMatchPrefixLength = pattern.prefix.length;\n matchedValue = v;\n }\n }\n\n return matchedValue;\n}\n\n/**\n * patternStrings contains both pattern strings (containing \"*\") and regular strings.\n * Return an exact match if possible, or a pattern match, or undefined.\n * (These are verified by verifyCompilerOptions to have 0 or 1 \"*\" characters.)\n */\nfunction matchPatternOrExact(\n patternStrings: readonly string[],\n candidate: string\n): string | Pattern | undefined {\n const patterns: Pattern[] = [];\n for (const patternString of patternStrings) {\n if (!hasZeroOrOneAsteriskCharacter(patternString)) continue;\n const pattern = tryParsePattern(patternString);\n if (pattern) {\n patterns.push(pattern);\n } else if (patternString === candidate) {\n // pattern was matched as is - no need to search further\n return patternString;\n }\n }\n\n return findBestPatternMatch(patterns, (_) => _, candidate);\n}\n\n/**\n * Given that candidate matches pattern, returns the text matching the '*'.\n * E.g.: matchedText(tryParsePattern(\"foo*baz\"), \"foobarbaz\") === \"bar\"\n */\nfunction matchedText(pattern: Pattern, candidate: string): string {\n return candidate.substring(pattern.prefix.length, candidate.length - pattern.suffix.length);\n}\n\nfunction getStar(matchedPattern: string | Pattern, moduleName: string) {\n return typeof matchedPattern === 'string' ? undefined : matchedText(matchedPattern, moduleName);\n}\n\nexport function matchTsConfigPathAlias(pathsKeys: string[], moduleName: string) {\n // If the module name does not match any of the patterns in `paths` we hand off resolving to webpack\n const matchedPattern = matchPatternOrExact(pathsKeys, moduleName);\n if (!matchedPattern) {\n return null;\n }\n\n return {\n star: getStar(matchedPattern, moduleName),\n text:\n typeof matchedPattern === 'string'\n ? matchedPattern\n : `${matchedPattern.prefix}*${matchedPattern.suffix}`,\n };\n}\n"],"names":["matchTsConfigPathAlias","asterisk","hasZeroOrOneAsteriskCharacter","str","seenAsterisk","i","length","charCodeAt","tryParsePattern","pattern","indexOfStar","indexOf","undefined","prefix","slice","suffix","isPatternMatch","candidate","startsWith","endsWith","findBestPatternMatch","values","getPattern","matchedValue","longestMatchPrefixLength","v","matchPatternOrExact","patternStrings","patterns","patternString","push","_","matchedText","substring","getStar","matchedPattern","moduleName","pathsKeys","star","text"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/tsconfig/matchTsConfigPathAlias.ts"],"sourcesContent":["// From TypeScript: https://github.com/microsoft/TypeScript/blob/5b1897969769449217237aecbe364f823096c63e/src/compiler/core.ts\n// License: https://github.com/microsoft/TypeScript/blob/214df64/LICENSE.txt\n\nexport interface Pattern {\n prefix: string;\n suffix: string;\n}\n\nconst asterisk = 0x2a;\n\nfunction hasZeroOrOneAsteriskCharacter(str: string): boolean {\n let seenAsterisk = false;\n for (let i = 0; i < str.length; i++) {\n if (str.charCodeAt(i) === asterisk) {\n if (!seenAsterisk) {\n seenAsterisk = true;\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction tryParsePattern(pattern: string): Pattern | undefined {\n // This should be verified outside of here and a proper error thrown.\n const indexOfStar = pattern.indexOf('*');\n return indexOfStar === -1\n ? undefined\n : {\n prefix: pattern.slice(0, indexOfStar),\n suffix: pattern.slice(indexOfStar + 1),\n };\n}\n\nfunction isPatternMatch({ prefix, suffix }: Pattern, candidate: string) {\n return (\n candidate.length >= prefix.length + suffix.length &&\n candidate.startsWith(prefix) &&\n candidate.endsWith(suffix)\n );\n}\n\n/**\n * Return the object corresponding to the best pattern to match `candidate`.\n *\n * @internal\n */\nfunction findBestPatternMatch<T>(\n values: readonly T[],\n getPattern: (value: T) => Pattern,\n candidate: string\n): T | undefined {\n let matchedValue: T | undefined;\n // use length of prefix as betterness criteria\n let longestMatchPrefixLength = -1;\n\n for (const v of values) {\n const pattern = getPattern(v);\n if (isPatternMatch(pattern, candidate) && pattern.prefix.length > longestMatchPrefixLength) {\n longestMatchPrefixLength = pattern.prefix.length;\n matchedValue = v;\n }\n }\n\n return matchedValue;\n}\n\n/**\n * patternStrings contains both pattern strings (containing \"*\") and regular strings.\n * Return an exact match if possible, or a pattern match, or undefined.\n * (These are verified by verifyCompilerOptions to have 0 or 1 \"*\" characters.)\n */\nfunction matchPatternOrExact(\n patternStrings: readonly string[],\n candidate: string\n): string | Pattern | undefined {\n const patterns: Pattern[] = [];\n for (const patternString of patternStrings) {\n if (!hasZeroOrOneAsteriskCharacter(patternString)) continue;\n const pattern = tryParsePattern(patternString);\n if (pattern) {\n patterns.push(pattern);\n } else if (patternString === candidate) {\n // pattern was matched as is - no need to search further\n return patternString;\n }\n }\n\n return findBestPatternMatch(patterns, (_) => _, candidate);\n}\n\n/**\n * Given that candidate matches pattern, returns the text matching the '*'.\n * E.g.: matchedText(tryParsePattern(\"foo*baz\"), \"foobarbaz\") === \"bar\"\n */\nfunction matchedText(pattern: Pattern, candidate: string): string {\n return candidate.substring(pattern.prefix.length, candidate.length - pattern.suffix.length);\n}\n\nfunction getStar(matchedPattern: string | Pattern, moduleName: string) {\n return typeof matchedPattern === 'string' ? undefined : matchedText(matchedPattern, moduleName);\n}\n\nexport function matchTsConfigPathAlias(pathsKeys: string[], moduleName: string) {\n // If the module name does not match any of the patterns in `paths` we hand off resolving to webpack\n const matchedPattern = matchPatternOrExact(pathsKeys, moduleName);\n if (!matchedPattern) {\n return null;\n }\n\n return {\n star: getStar(matchedPattern, moduleName),\n text:\n typeof matchedPattern === 'string'\n ? matchedPattern\n : `${matchedPattern.prefix}*${matchedPattern.suffix}`,\n };\n}\n"],"names":["matchTsConfigPathAlias","asterisk","hasZeroOrOneAsteriskCharacter","str","seenAsterisk","i","length","charCodeAt","tryParsePattern","pattern","indexOfStar","indexOf","undefined","prefix","slice","suffix","isPatternMatch","candidate","startsWith","endsWith","findBestPatternMatch","values","getPattern","matchedValue","longestMatchPrefixLength","v","matchPatternOrExact","patternStrings","patterns","patternString","push","_","matchedText","substring","getStar","matchedPattern","moduleName","pathsKeys","star","text"],"mappings":"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"}
|
|
@@ -2,16 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
exports
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Object.defineProperty(exports, "resolveWithTsConfigPaths", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>resolveWithTsConfigPaths
|
|
8
|
+
});
|
|
9
|
+
function _path() {
|
|
10
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("path"));
|
|
11
|
+
_path = function() {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
const _matchTsConfigPathAlias = require("./matchTsConfigPathAlias");
|
|
8
17
|
function _interopRequireDefault(obj) {
|
|
9
18
|
return obj && obj.__esModule ? obj : {
|
|
10
19
|
default: obj
|
|
11
20
|
};
|
|
12
21
|
}
|
|
13
22
|
const debug = require("debug")("expo:metro:tsconfig-paths");
|
|
14
|
-
const isAbsolute = process.platform === "win32" ? _path.default.win32.isAbsolute : _path.default.posix.isAbsolute;
|
|
23
|
+
const isAbsolute = process.platform === "win32" ? _path().default.win32.isAbsolute : _path().default.posix.isAbsolute;
|
|
15
24
|
function resolveWithTsConfigPaths(config, request, resolve) {
|
|
16
25
|
const aliases = Object.keys(config.paths);
|
|
17
26
|
if (// If no aliases are added bail out
|
|
@@ -21,12 +30,12 @@ function resolveWithTsConfigPaths(config, request, resolve) {
|
|
|
21
30
|
/^\.\.?($|[\\/])/.test(request.moduleName)) {
|
|
22
31
|
return null;
|
|
23
32
|
}
|
|
24
|
-
const matched = (0, _matchTsConfigPathAlias
|
|
33
|
+
const matched = (0, _matchTsConfigPathAlias.matchTsConfigPathAlias)(aliases, request.moduleName);
|
|
25
34
|
if (matched) {
|
|
26
35
|
for (const alias of config.paths[matched.text]){
|
|
27
36
|
const nextModuleName = matched.star ? alias.replace("*", matched.star) : alias;
|
|
28
37
|
if (/\.d\.ts$/.test(nextModuleName)) continue;
|
|
29
|
-
const possibleResult = _path.default.join(config.baseUrl, nextModuleName);
|
|
38
|
+
const possibleResult = _path().default.join(config.baseUrl, nextModuleName);
|
|
30
39
|
const result = resolve(possibleResult);
|
|
31
40
|
if (result) {
|
|
32
41
|
debug(`${request.moduleName} -> ${possibleResult}`);
|
|
@@ -37,11 +46,11 @@ function resolveWithTsConfigPaths(config, request, resolve) {
|
|
|
37
46
|
// Only resolve against baseUrl if no `paths` groups were matched.
|
|
38
47
|
// Base URL is resolved after paths, and before node_modules.
|
|
39
48
|
if (config.hasBaseUrl) {
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
if (
|
|
43
|
-
debug(`baseUrl: ${request.moduleName} -> ${
|
|
44
|
-
return
|
|
49
|
+
const possibleResult1 = _path().default.join(config.baseUrl, request.moduleName);
|
|
50
|
+
const result1 = resolve(possibleResult1);
|
|
51
|
+
if (result1) {
|
|
52
|
+
debug(`baseUrl: ${request.moduleName} -> ${possibleResult1}`);
|
|
53
|
+
return result1;
|
|
45
54
|
}
|
|
46
55
|
}
|
|
47
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/tsconfig/resolveWithTsConfigPaths.ts"],"sourcesContent":["import { Resolution } from 'metro-resolver';\nimport path from 'path';\n\nimport { matchTsConfigPathAlias } from './matchTsConfigPathAlias';\n\ntype Paths = { [match: string]: string[] };\n\nconst debug = require('debug')('expo:metro:tsconfig-paths') as typeof console.log;\n\nconst isAbsolute = process.platform === 'win32' ? path.win32.isAbsolute : path.posix.isAbsolute;\n\nexport function resolveWithTsConfigPaths(\n config: { paths: Paths; baseUrl: string; hasBaseUrl: boolean },\n request: {\n /** Import request */\n moduleName: string;\n /** Originating file path */\n originModulePath: string;\n },\n resolve: (moduleName: string) => Resolution | null\n): Resolution | null {\n const aliases = Object.keys(config.paths);\n\n if (\n // If no aliases are added bail out\n (!aliases.length && !config.hasBaseUrl) ||\n // Library authors cannot utilize this feature in userspace.\n /node_modules/.test(request.originModulePath) ||\n // Absolute paths are not supported\n isAbsolute(request.moduleName) ||\n // Relative paths are not supported\n /^\\.\\.?($|[\\\\/])/.test(request.moduleName)\n ) {\n return null;\n }\n\n const matched = matchTsConfigPathAlias(aliases, request.moduleName);\n if (matched) {\n for (const alias of config.paths[matched.text]) {\n const nextModuleName = matched.star ? alias.replace('*', matched.star) : alias;\n\n if (/\\.d\\.ts$/.test(nextModuleName)) continue;\n\n const possibleResult = path.join(config.baseUrl, nextModuleName);\n\n const result = resolve(possibleResult);\n if (result) {\n debug(`${request.moduleName} -> ${possibleResult}`);\n return result;\n }\n }\n } else {\n // Only resolve against baseUrl if no `paths` groups were matched.\n // Base URL is resolved after paths, and before node_modules.\n if (config.hasBaseUrl) {\n const possibleResult = path.join(config.baseUrl, request.moduleName);\n const result = resolve(possibleResult);\n if (result) {\n debug(`baseUrl: ${request.moduleName} -> ${possibleResult}`);\n return result;\n }\n }\n }\n\n return null;\n}\n"],"names":["resolveWithTsConfigPaths","debug","require","isAbsolute","process","platform","path","win32","posix","config","request","resolve","aliases","Object","keys","paths","length","hasBaseUrl","test","originModulePath","moduleName","matched","matchTsConfigPathAlias","alias","text","nextModuleName","star","replace","possibleResult","join","baseUrl","result"],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/tsconfig/resolveWithTsConfigPaths.ts"],"sourcesContent":["import { Resolution } from 'metro-resolver';\nimport path from 'path';\n\nimport { matchTsConfigPathAlias } from './matchTsConfigPathAlias';\n\ntype Paths = { [match: string]: string[] };\n\nconst debug = require('debug')('expo:metro:tsconfig-paths') as typeof console.log;\n\nconst isAbsolute = process.platform === 'win32' ? path.win32.isAbsolute : path.posix.isAbsolute;\n\nexport function resolveWithTsConfigPaths(\n config: { paths: Paths; baseUrl: string; hasBaseUrl: boolean },\n request: {\n /** Import request */\n moduleName: string;\n /** Originating file path */\n originModulePath: string;\n },\n resolve: (moduleName: string) => Resolution | null\n): Resolution | null {\n const aliases = Object.keys(config.paths);\n\n if (\n // If no aliases are added bail out\n (!aliases.length && !config.hasBaseUrl) ||\n // Library authors cannot utilize this feature in userspace.\n /node_modules/.test(request.originModulePath) ||\n // Absolute paths are not supported\n isAbsolute(request.moduleName) ||\n // Relative paths are not supported\n /^\\.\\.?($|[\\\\/])/.test(request.moduleName)\n ) {\n return null;\n }\n\n const matched = matchTsConfigPathAlias(aliases, request.moduleName);\n if (matched) {\n for (const alias of config.paths[matched.text]) {\n const nextModuleName = matched.star ? alias.replace('*', matched.star) : alias;\n\n if (/\\.d\\.ts$/.test(nextModuleName)) continue;\n\n const possibleResult = path.join(config.baseUrl, nextModuleName);\n\n const result = resolve(possibleResult);\n if (result) {\n debug(`${request.moduleName} -> ${possibleResult}`);\n return result;\n }\n }\n } else {\n // Only resolve against baseUrl if no `paths` groups were matched.\n // Base URL is resolved after paths, and before node_modules.\n if (config.hasBaseUrl) {\n const possibleResult = path.join(config.baseUrl, request.moduleName);\n const result = resolve(possibleResult);\n if (result) {\n debug(`baseUrl: ${request.moduleName} -> ${possibleResult}`);\n return result;\n }\n }\n }\n\n return null;\n}\n"],"names":["resolveWithTsConfigPaths","debug","require","isAbsolute","process","platform","path","win32","posix","config","request","resolve","aliases","Object","keys","paths","length","hasBaseUrl","test","originModulePath","moduleName","matched","matchTsConfigPathAlias","alias","text","nextModuleName","star","replace","possibleResult","join","baseUrl","result"],"mappings":"AAAA;;;;+BAWgBA,0BAAwB;;aAAxBA,wBAAwB;;;8DAVvB,MAAM;;;;;;wCAEgB,0BAA0B;;;;;;AAIjE,MAAMC,KAAK,GAAGC,OAAO,CAAC,OAAO,CAAC,CAAC,2BAA2B,CAAC,AAAsB,AAAC;AAElF,MAAMC,UAAU,GAAGC,OAAO,CAACC,QAAQ,KAAK,OAAO,GAAGC,KAAI,EAAA,QAAA,CAACC,KAAK,CAACJ,UAAU,GAAGG,KAAI,EAAA,QAAA,CAACE,KAAK,CAACL,UAAU,AAAC;AAEzF,SAASH,wBAAwB,CACtCS,MAA8D,EAC9DC,OAKC,EACDC,OAAkD,EAC/B;IACnB,MAAMC,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACL,MAAM,CAACM,KAAK,CAAC,AAAC;IAE1C,IACE,mCAAmC;IACnC,CAAC,CAACH,OAAO,CAACI,MAAM,IAAI,CAACP,MAAM,CAACQ,UAAU,CAAC,IACvC,4DAA4D;IAC5D,eAAeC,IAAI,CAACR,OAAO,CAACS,gBAAgB,CAAC,IAC7C,mCAAmC;IACnChB,UAAU,CAACO,OAAO,CAACU,UAAU,CAAC,IAC9B,mCAAmC;IACnC,kBAAkBF,IAAI,CAACR,OAAO,CAACU,UAAU,CAAC,EAC1C;QACA,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAMC,OAAO,GAAGC,IAAAA,uBAAsB,uBAAA,EAACV,OAAO,EAAEF,OAAO,CAACU,UAAU,CAAC,AAAC;IACpE,IAAIC,OAAO,EAAE;QACX,KAAK,MAAME,KAAK,IAAId,MAAM,CAACM,KAAK,CAACM,OAAO,CAACG,IAAI,CAAC,CAAE;YAC9C,MAAMC,cAAc,GAAGJ,OAAO,CAACK,IAAI,GAAGH,KAAK,CAACI,OAAO,CAAC,GAAG,EAAEN,OAAO,CAACK,IAAI,CAAC,GAAGH,KAAK,AAAC;YAE/E,IAAI,WAAWL,IAAI,CAACO,cAAc,CAAC,EAAE,SAAS;YAE9C,MAAMG,cAAc,GAAGtB,KAAI,EAAA,QAAA,CAACuB,IAAI,CAACpB,MAAM,CAACqB,OAAO,EAAEL,cAAc,CAAC,AAAC;YAEjE,MAAMM,MAAM,GAAGpB,OAAO,CAACiB,cAAc,CAAC,AAAC;YACvC,IAAIG,MAAM,EAAE;gBACV9B,KAAK,CAAC,CAAC,EAAES,OAAO,CAACU,UAAU,CAAC,IAAI,EAAEQ,cAAc,CAAC,CAAC,CAAC,CAAC;gBACpD,OAAOG,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,OAAO;QACL,kEAAkE;QAClE,6DAA6D;QAC7D,IAAItB,MAAM,CAACQ,UAAU,EAAE;YACrB,MAAMW,eAAc,GAAGtB,KAAI,EAAA,QAAA,CAACuB,IAAI,CAACpB,MAAM,CAACqB,OAAO,EAAEpB,OAAO,CAACU,UAAU,CAAC,AAAC;YACrE,MAAMW,OAAM,GAAGpB,OAAO,CAACiB,eAAc,CAAC,AAAC;YACvC,IAAIG,OAAM,EAAE;gBACV9B,KAAK,CAAC,CAAC,SAAS,EAAES,OAAO,CAACU,UAAU,CAAC,IAAI,EAAEQ,eAAc,CAAC,CAAC,CAAC,CAAC;gBAC7D,OAAOG,OAAM,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/build/src/utils/url.js
CHANGED
|
@@ -2,14 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
+
isUrlAvailableAsync: ()=>isUrlAvailableAsync,
|
|
13
|
+
isUrlOk: ()=>isUrlOk,
|
|
14
|
+
validateUrl: ()=>validateUrl,
|
|
15
|
+
stripPort: ()=>stripPort,
|
|
16
|
+
stripExtension: ()=>stripExtension
|
|
17
|
+
});
|
|
18
|
+
function _dns() {
|
|
19
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("dns"));
|
|
20
|
+
_dns = function() {
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
function _url() {
|
|
26
|
+
const data = require("url");
|
|
27
|
+
_url = function() {
|
|
28
|
+
return data;
|
|
29
|
+
};
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
const _client = require("../api/rest/client");
|
|
13
33
|
function _interopRequireDefault(obj) {
|
|
14
34
|
return obj && obj.__esModule ? obj : {
|
|
15
35
|
default: obj
|
|
@@ -17,14 +37,14 @@ function _interopRequireDefault(obj) {
|
|
|
17
37
|
}
|
|
18
38
|
function isUrlAvailableAsync(url) {
|
|
19
39
|
return new Promise((resolve)=>{
|
|
20
|
-
_dns.default.lookup(url, (err)=>{
|
|
40
|
+
_dns().default.lookup(url, (err)=>{
|
|
21
41
|
resolve(!err);
|
|
22
42
|
});
|
|
23
43
|
});
|
|
24
44
|
}
|
|
25
45
|
async function isUrlOk(url) {
|
|
26
46
|
try {
|
|
27
|
-
const res = await (0, _client
|
|
47
|
+
const res = await (0, _client.fetchAsync)(url);
|
|
28
48
|
return res.ok;
|
|
29
49
|
} catch {
|
|
30
50
|
return false;
|
|
@@ -32,12 +52,11 @@ async function isUrlOk(url) {
|
|
|
32
52
|
}
|
|
33
53
|
function validateUrl(urlString, { protocols , requireProtocol } = {}) {
|
|
34
54
|
try {
|
|
35
|
-
const results = new _url.URL(urlString);
|
|
55
|
+
const results = new (_url()).URL(urlString);
|
|
36
56
|
if (!results.protocol && !requireProtocol) {
|
|
37
57
|
return true;
|
|
38
58
|
}
|
|
39
|
-
return protocols ? results.protocol ? protocols.map((x)=>`${x.toLowerCase()}:`
|
|
40
|
-
).includes(results.protocol) : false : true;
|
|
59
|
+
return protocols ? results.protocol ? protocols.map((x)=>`${x.toLowerCase()}:`).includes(results.protocol) : false : true;
|
|
41
60
|
} catch {
|
|
42
61
|
return false;
|
|
43
62
|
}
|
|
@@ -52,12 +71,9 @@ function coerceUrl(urlString) {
|
|
|
52
71
|
return null;
|
|
53
72
|
}
|
|
54
73
|
try {
|
|
55
|
-
return new _url.URL("/", urlString);
|
|
56
|
-
} catch
|
|
57
|
-
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
return new _url.URL("/", `http://${urlString}`);
|
|
74
|
+
return new (_url()).URL("/", urlString);
|
|
75
|
+
} catch {
|
|
76
|
+
return new (_url()).URL("/", `http://${urlString}`);
|
|
61
77
|
}
|
|
62
78
|
}
|
|
63
79
|
function stripExtension(url, extension) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/url.ts"],"sourcesContent":["import dns from 'dns';\nimport { URL } from 'url';\n\nimport { fetchAsync } from '../api/rest/client';\n\n/** Check if a server is available based on the URL. */\nexport function isUrlAvailableAsync(url: string): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n dns.lookup(url, (err) => {\n resolve(!err);\n });\n });\n}\n\n/** Check if a request to the given URL is `ok` (status 200). */\nexport async function isUrlOk(url: string): Promise<boolean> {\n try {\n const res = await fetchAsync(url);\n return res.ok;\n } catch {\n return false;\n }\n}\n\n/** Determine if a string is a valid URL, can optionally ensure certain protocols (like `https` or `exp`) are adhered to. */\nexport function validateUrl(\n urlString: string,\n {\n protocols,\n requireProtocol,\n }: {\n /** Set of allowed protocols for the string to adhere to. @example ['exp', 'https'] */\n protocols?: string[];\n /** Ensure the URL has a protocol component (prefix before `://`). */\n requireProtocol?: boolean;\n } = {}\n) {\n try {\n const results = new URL(urlString);\n if (!results.protocol && !requireProtocol) {\n return true;\n }\n return protocols\n ? results.protocol\n ? protocols.map((x) => `${x.toLowerCase()}:`).includes(results.protocol)\n : false\n : true;\n } catch {\n return false;\n }\n}\n\n/** Remove the port from a given `host` URL string. */\nexport function stripPort(host?: string): string | null {\n return coerceUrl(host)?.hostname ?? null;\n}\n\nfunction coerceUrl(urlString?: string): URL | null {\n if (!urlString) {\n return null;\n }\n try {\n return new URL('/', urlString);\n } catch
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/url.ts"],"sourcesContent":["import dns from 'dns';\nimport { URL } from 'url';\n\nimport { fetchAsync } from '../api/rest/client';\n\n/** Check if a server is available based on the URL. */\nexport function isUrlAvailableAsync(url: string): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n dns.lookup(url, (err) => {\n resolve(!err);\n });\n });\n}\n\n/** Check if a request to the given URL is `ok` (status 200). */\nexport async function isUrlOk(url: string): Promise<boolean> {\n try {\n const res = await fetchAsync(url);\n return res.ok;\n } catch {\n return false;\n }\n}\n\n/** Determine if a string is a valid URL, can optionally ensure certain protocols (like `https` or `exp`) are adhered to. */\nexport function validateUrl(\n urlString: string,\n {\n protocols,\n requireProtocol,\n }: {\n /** Set of allowed protocols for the string to adhere to. @example ['exp', 'https'] */\n protocols?: string[];\n /** Ensure the URL has a protocol component (prefix before `://`). */\n requireProtocol?: boolean;\n } = {}\n) {\n try {\n const results = new URL(urlString);\n if (!results.protocol && !requireProtocol) {\n return true;\n }\n return protocols\n ? results.protocol\n ? protocols.map((x) => `${x.toLowerCase()}:`).includes(results.protocol)\n : false\n : true;\n } catch {\n return false;\n }\n}\n\n/** Remove the port from a given `host` URL string. */\nexport function stripPort(host?: string): string | null {\n return coerceUrl(host)?.hostname ?? null;\n}\n\nfunction coerceUrl(urlString?: string): URL | null {\n if (!urlString) {\n return null;\n }\n try {\n return new URL('/', urlString);\n } catch {\n return new URL('/', `http://${urlString}`);\n }\n}\n\n/** Strip a given extension from a URL string. */\nexport function stripExtension(url: string, extension: string): string {\n return url.replace(new RegExp(`.${extension}$`), '');\n}\n"],"names":["isUrlAvailableAsync","isUrlOk","validateUrl","stripPort","stripExtension","url","Promise","resolve","dns","lookup","err","res","fetchAsync","ok","urlString","protocols","requireProtocol","results","URL","protocol","map","x","toLowerCase","includes","host","coerceUrl","hostname","extension","replace","RegExp"],"mappings":"AAAA;;;;;;;;;;;IAMgBA,mBAAmB,MAAnBA,mBAAmB;IASbC,OAAO,MAAPA,OAAO;IAUbC,WAAW,MAAXA,WAAW;IA4BXC,SAAS,MAATA,SAAS;IAgBTC,cAAc,MAAdA,cAAc;;;8DArEd,KAAK;;;;;;;yBACD,KAAK;;;;;;wBAEE,oBAAoB;;;;;;AAGxC,SAASJ,mBAAmB,CAACK,GAAW,EAAoB;IACjE,OAAO,IAAIC,OAAO,CAAU,CAACC,OAAO,GAAK;QACvCC,IAAG,EAAA,QAAA,CAACC,MAAM,CAACJ,GAAG,EAAE,CAACK,GAAG,GAAK;YACvBH,OAAO,CAAC,CAACG,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAGM,eAAeT,OAAO,CAACI,GAAW,EAAoB;IAC3D,IAAI;QACF,MAAMM,GAAG,GAAG,MAAMC,IAAAA,OAAU,WAAA,EAACP,GAAG,CAAC,AAAC;QAClC,OAAOM,GAAG,CAACE,EAAE,CAAC;IAChB,EAAE,OAAM;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGM,SAASX,WAAW,CACzBY,SAAiB,EACjB,EACEC,SAAS,CAAA,EACTC,eAAe,CAAA,EAMhB,GAAG,EAAE,EACN;IACA,IAAI;QACF,MAAMC,OAAO,GAAG,IAAIC,CAAAA,IAAG,EAAA,CAAA,IAAA,CAACJ,SAAS,CAAC,AAAC;QACnC,IAAI,CAACG,OAAO,CAACE,QAAQ,IAAI,CAACH,eAAe,EAAE;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAOD,SAAS,GACZE,OAAO,CAACE,QAAQ,GACdJ,SAAS,CAACK,GAAG,CAAC,CAACC,CAAC,GAAK,CAAC,EAAEA,CAAC,CAACC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAACC,QAAQ,CAACN,OAAO,CAACE,QAAQ,CAAC,GACtE,KAAK,GACP,IAAI,CAAC;IACX,EAAE,OAAM;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGM,SAAShB,SAAS,CAACqB,IAAa,EAAiB;QAC/CC,GAAe;QAAfA,IAAyB;IAAhC,OAAOA,CAAAA,IAAyB,GAAzBA,CAAAA,GAAe,GAAfA,SAAS,CAACD,IAAI,CAAC,SAAU,GAAzBC,KAAAA,CAAyB,GAAzBA,GAAe,CAAEC,QAAQ,YAAzBD,IAAyB,GAAI,IAAI,CAAC;AAC3C,CAAC;AAED,SAASA,SAAS,CAACX,SAAkB,EAAc;IACjD,IAAI,CAACA,SAAS,EAAE;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI;QACF,OAAO,IAAII,CAAAA,IAAG,EAAA,CAAA,IAAA,CAAC,GAAG,EAAEJ,SAAS,CAAC,CAAC;IACjC,EAAE,OAAM;QACN,OAAO,IAAII,CAAAA,IAAG,EAAA,CAAA,IAAA,CAAC,GAAG,EAAE,CAAC,OAAO,EAAEJ,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAGM,SAASV,cAAc,CAACC,GAAW,EAAEsB,SAAiB,EAAU;IACrE,OAAOtB,GAAG,CAACuB,OAAO,CAAC,IAAIC,MAAM,CAAC,CAAC,CAAC,EAAEF,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -2,22 +2,43 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
exports
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
+
validateBundleId: ()=>validateBundleId,
|
|
13
|
+
validatePackage: ()=>validatePackage,
|
|
14
|
+
validatePackageWithWarning: ()=>validatePackageWithWarning,
|
|
15
|
+
assertValidBundleId: ()=>assertValidBundleId,
|
|
16
|
+
assertValidPackage: ()=>assertValidPackage,
|
|
17
|
+
getBundleIdWarningInternalAsync: ()=>getBundleIdWarningInternalAsync,
|
|
18
|
+
getBundleIdWarningAsync: ()=>getBundleIdWarningAsync,
|
|
19
|
+
getPackageNameWarningInternalAsync: ()=>getPackageNameWarningInternalAsync,
|
|
20
|
+
getPackageNameWarningAsync: ()=>getPackageNameWarningAsync
|
|
21
|
+
});
|
|
22
|
+
function _assert() {
|
|
23
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("assert"));
|
|
24
|
+
_assert = function() {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
function _chalk() {
|
|
30
|
+
const data = /*#__PURE__*/ _interopRequireDefault(require("chalk"));
|
|
31
|
+
_chalk = function() {
|
|
32
|
+
return data;
|
|
33
|
+
};
|
|
34
|
+
return data;
|
|
35
|
+
}
|
|
36
|
+
const _env = require("./env");
|
|
37
|
+
const _fn = require("./fn");
|
|
38
|
+
const _link = require("./link");
|
|
39
|
+
const _url = require("./url");
|
|
40
|
+
const _client = require("../api/rest/client");
|
|
41
|
+
const _log = require("../log");
|
|
21
42
|
function _interopRequireDefault(obj) {
|
|
22
43
|
return obj && obj.__esModule ? obj : {
|
|
23
44
|
default: obj
|
|
@@ -112,17 +133,17 @@ const RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS = [
|
|
|
112
133
|
"strictfp",
|
|
113
134
|
];
|
|
114
135
|
function assertValidBundleId(value) {
|
|
115
|
-
_assert.default.match(value, IOS_BUNDLE_ID_REGEX, `The ios.bundleIdentifier defined in your Expo config is not formatted properly. Only alphanumeric characters, '.', '-', and '_' are allowed, and each '.' must be followed by a letter.`);
|
|
136
|
+
_assert().default.match(value, IOS_BUNDLE_ID_REGEX, `The ios.bundleIdentifier defined in your Expo config is not formatted properly. Only alphanumeric characters, '.', '-', and '_' are allowed, and each '.' must be followed by a letter.`);
|
|
116
137
|
}
|
|
117
138
|
function assertValidPackage(value) {
|
|
118
|
-
_assert.default.match(value, ANDROID_PACKAGE_REGEX, `Invalid format of Android package name. Only alphanumeric characters, '.' and '_' are allowed, and each '.' must be followed by a letter. The Java keyword 'native' is not allowed.`);
|
|
139
|
+
_assert().default.match(value, ANDROID_PACKAGE_REGEX, `Invalid format of Android package name. Only alphanumeric characters, '.' and '_' are allowed, and each '.' must be followed by a letter. The Java keyword 'native' is not allowed.`);
|
|
119
140
|
}
|
|
120
141
|
async function getBundleIdWarningInternalAsync(bundleId) {
|
|
121
142
|
if (_env.env.EXPO_OFFLINE) {
|
|
122
143
|
_log.Log.warn("Skipping Apple bundle identifier reservation validation in offline-mode.");
|
|
123
144
|
return null;
|
|
124
145
|
}
|
|
125
|
-
if (!await (0, _url
|
|
146
|
+
if (!await (0, _url.isUrlAvailableAsync)("itunes.apple.com")) {
|
|
126
147
|
debug(`Couldn't connect to iTunes Store to check bundle ID ${bundleId}. itunes.apple.com may be down.`);
|
|
127
148
|
// If no network, simply skip the warnings since they'll just lead to more confusion.
|
|
128
149
|
return null;
|
|
@@ -130,7 +151,7 @@ async function getBundleIdWarningInternalAsync(bundleId) {
|
|
|
130
151
|
const url = `http://itunes.apple.com/lookup?bundleId=${bundleId}`;
|
|
131
152
|
try {
|
|
132
153
|
debug(`Checking iOS bundle ID '${bundleId}' at: ${url}`);
|
|
133
|
-
const response = await (0, _client
|
|
154
|
+
const response = await (0, _client.fetchAsync)(url);
|
|
134
155
|
const json = await response.json();
|
|
135
156
|
if (json.resultCount > 0) {
|
|
136
157
|
const firstApp = json.results[0];
|
|
@@ -142,14 +163,13 @@ async function getBundleIdWarningInternalAsync(bundleId) {
|
|
|
142
163
|
}
|
|
143
164
|
return null;
|
|
144
165
|
}
|
|
145
|
-
const getBundleIdWarningAsync = (0, _fn
|
|
146
|
-
exports.getBundleIdWarningAsync = getBundleIdWarningAsync;
|
|
166
|
+
const getBundleIdWarningAsync = (0, _fn.memoize)(getBundleIdWarningInternalAsync);
|
|
147
167
|
async function getPackageNameWarningInternalAsync(packageName) {
|
|
148
168
|
if (_env.env.EXPO_OFFLINE) {
|
|
149
169
|
_log.Log.warn("Skipping Android package name reservation validation in offline-mode.");
|
|
150
170
|
return null;
|
|
151
171
|
}
|
|
152
|
-
if (!await (0, _url
|
|
172
|
+
if (!await (0, _url.isUrlAvailableAsync)("play.google.com")) {
|
|
153
173
|
debug(`Couldn't connect to Play Store to check package name ${packageName}. play.google.com may be down.`);
|
|
154
174
|
// If no network, simply skip the warnings since they'll just lead to more confusion.
|
|
155
175
|
return null;
|
|
@@ -157,12 +177,12 @@ async function getPackageNameWarningInternalAsync(packageName) {
|
|
|
157
177
|
const url = `https://play.google.com/store/apps/details?id=${packageName}`;
|
|
158
178
|
try {
|
|
159
179
|
debug(`Checking Android package name '${packageName}' at: ${url}`);
|
|
160
|
-
const response = await (0, _client
|
|
180
|
+
const response = await (0, _client.fetchAsync)(url);
|
|
161
181
|
// If the page exists, then warn the user.
|
|
162
182
|
if (response.status === 200) {
|
|
163
183
|
// There is no JSON API for the Play Store so we can't concisely
|
|
164
184
|
// locate the app name and developer to match the iOS warning.
|
|
165
|
-
return `⚠️ The package ${_chalk.default.bold(packageName)} is already in use. ${_chalk.default.dim((0, _link
|
|
185
|
+
return `⚠️ The package ${_chalk().default.bold(packageName)} is already in use. ${_chalk().default.dim((0, _link.learnMore)(url))}`;
|
|
166
186
|
}
|
|
167
187
|
} catch (error) {
|
|
168
188
|
// Error fetching play store data or the page doesn't exist.
|
|
@@ -171,9 +191,8 @@ async function getPackageNameWarningInternalAsync(packageName) {
|
|
|
171
191
|
return null;
|
|
172
192
|
}
|
|
173
193
|
function formatInUseWarning(appName, author, id) {
|
|
174
|
-
return `⚠️ The app ${_chalk.default.bold(appName)} by ${_chalk.default.italic(author)} is already using ${_chalk.default.bold(id)}`;
|
|
194
|
+
return `⚠️ The app ${_chalk().default.bold(appName)} by ${_chalk().default.italic(author)} is already using ${_chalk().default.bold(id)}`;
|
|
175
195
|
}
|
|
176
|
-
const getPackageNameWarningAsync = (0, _fn
|
|
177
|
-
exports.getPackageNameWarningAsync = getPackageNameWarningAsync;
|
|
196
|
+
const getPackageNameWarningAsync = (0, _fn.memoize)(getPackageNameWarningInternalAsync);
|
|
178
197
|
|
|
179
198
|
//# sourceMappingURL=validateApplicationId.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/validateApplicationId.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { env } from './env';\nimport { memoize } from './fn';\nimport { learnMore } from './link';\nimport { isUrlAvailableAsync } from './url';\nimport { fetchAsync } from '../api/rest/client';\nimport { Log } from '../log';\n\nconst debug = require('debug')('expo:utils:validateApplicationId') as typeof console.log;\n\nconst IOS_BUNDLE_ID_REGEX = /^[a-zA-Z0-9-.]+$/;\nconst ANDROID_PACKAGE_REGEX = /^(?!.*\\bnative\\b)[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)+$/;\n\n/** Validate an iOS bundle identifier. */\nexport function validateBundleId(value: string): boolean {\n return IOS_BUNDLE_ID_REGEX.test(value);\n}\n\n/** Validate an Android package name. */\nexport function validatePackage(value: string): boolean {\n return validatePackageWithWarning(value) === true;\n}\n\n/** Validate an Android package name and return the reason if invalid. */\nexport function validatePackageWithWarning(value: string): true | string {\n const parts = value.split('.');\n for (const segment of parts) {\n if (RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS.includes(segment)) {\n return `\"${segment}\" is a reserved Java keyword.`;\n }\n }\n if (parts.length < 2) {\n return `Package name must contain more than one segment, separated by \".\", e.g. com.${value}`;\n }\n if (!ANDROID_PACKAGE_REGEX.test(value)) {\n return 'Invalid characters in Android package name. Only alphanumeric characters, \".\" and \"_\" are allowed, and each \".\" must be followed by a letter or number.';\n }\n\n return true;\n}\n\n// https://en.wikipedia.org/wiki/List_of_Java_keywords\n// Running the following in the console and pruning the \"Reserved Identifiers\" section:\n// [...document.querySelectorAll('dl > dt > code')].map(node => node.innerText)\nconst RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS = [\n // List of Java keywords\n '_',\n 'abstract',\n 'assert',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'default',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'extends',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'try',\n 'void',\n 'volatile',\n 'while',\n // Reserved words for literal values\n 'true',\n 'false',\n 'null',\n // Unused\n 'const',\n 'goto',\n 'strictfp',\n];\n\nexport function assertValidBundleId(value: string) {\n assert.match(\n value,\n IOS_BUNDLE_ID_REGEX,\n `The ios.bundleIdentifier defined in your Expo config is not formatted properly. Only alphanumeric characters, '.', '-', and '_' are allowed, and each '.' must be followed by a letter.`\n );\n}\n\nexport function assertValidPackage(value: string) {\n assert.match(\n value,\n ANDROID_PACKAGE_REGEX,\n `Invalid format of Android package name. Only alphanumeric characters, '.' and '_' are allowed, and each '.' must be followed by a letter. The Java keyword 'native' is not allowed.`\n );\n}\n\n/** @private */\nexport async function getBundleIdWarningInternalAsync(bundleId: string): Promise<string | null> {\n if (env.EXPO_OFFLINE) {\n Log.warn('Skipping Apple bundle identifier reservation validation in offline-mode.');\n return null;\n }\n\n if (!(await isUrlAvailableAsync('itunes.apple.com'))) {\n debug(\n `Couldn't connect to iTunes Store to check bundle ID ${bundleId}. itunes.apple.com may be down.`\n );\n // If no network, simply skip the warnings since they'll just lead to more confusion.\n return null;\n }\n\n const url = `http://itunes.apple.com/lookup?bundleId=${bundleId}`;\n try {\n debug(`Checking iOS bundle ID '${bundleId}' at: ${url}`);\n const response = await fetchAsync(url);\n const json = await response.json();\n if (json.resultCount > 0) {\n const firstApp = json.results[0];\n return formatInUseWarning(firstApp.trackName, firstApp.sellerName, bundleId);\n }\n } catch (error: any) {\n debug(`Error checking bundle ID ${bundleId}: ${error.message}`);\n // Error fetching itunes data.\n }\n return null;\n}\n\n/** Returns a warning message if an iOS bundle identifier is potentially already in use. */\nexport const getBundleIdWarningAsync = memoize(getBundleIdWarningInternalAsync);\n\n/** @private */\nexport async function getPackageNameWarningInternalAsync(\n packageName: string\n): Promise<string | null> {\n if (env.EXPO_OFFLINE) {\n Log.warn('Skipping Android package name reservation validation in offline-mode.');\n return null;\n }\n\n if (!(await isUrlAvailableAsync('play.google.com'))) {\n debug(\n `Couldn't connect to Play Store to check package name ${packageName}. play.google.com may be down.`\n );\n // If no network, simply skip the warnings since they'll just lead to more confusion.\n return null;\n }\n\n const url = `https://play.google.com/store/apps/details?id=${packageName}`;\n try {\n debug(`Checking Android package name '${packageName}' at: ${url}`);\n const response = await fetchAsync(url);\n // If the page exists, then warn the user.\n if (response.status === 200) {\n // There is no JSON API for the Play Store so we can't concisely\n // locate the app name and developer to match the iOS warning.\n return `⚠️ The package ${chalk.bold(packageName)} is already in use. ${chalk.dim(\n learnMore(url)\n )}`;\n }\n } catch (error: any) {\n // Error fetching play store data or the page doesn't exist.\n debug(`Error checking package name ${packageName}: ${error.message}`);\n }\n return null;\n}\n\nfunction formatInUseWarning(appName: string, author: string, id: string): string {\n return `⚠️ The app ${chalk.bold(appName)} by ${chalk.italic(\n author\n )} is already using ${chalk.bold(id)}`;\n}\n\n/** Returns a warning message if an Android package name is potentially already in use. */\nexport const getPackageNameWarningAsync = memoize(getPackageNameWarningInternalAsync);\n"],"names":["validateBundleId","validatePackage","validatePackageWithWarning","assertValidBundleId","assertValidPackage","getBundleIdWarningInternalAsync","getPackageNameWarningInternalAsync","debug","require","IOS_BUNDLE_ID_REGEX","ANDROID_PACKAGE_REGEX","value","test","parts","split","segment","RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS","includes","length","assert","match","bundleId","env","EXPO_OFFLINE","Log","warn","isUrlAvailableAsync","url","response","fetchAsync","json","resultCount","firstApp","results","formatInUseWarning","trackName","sellerName","error","message","getBundleIdWarningAsync","memoize","packageName","status","chalk","bold","dim","learnMore","appName","author","id","italic","getPackageNameWarningAsync"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/validateApplicationId.ts"],"sourcesContent":["import assert from 'assert';\nimport chalk from 'chalk';\n\nimport { env } from './env';\nimport { memoize } from './fn';\nimport { learnMore } from './link';\nimport { isUrlAvailableAsync } from './url';\nimport { fetchAsync } from '../api/rest/client';\nimport { Log } from '../log';\n\nconst debug = require('debug')('expo:utils:validateApplicationId') as typeof console.log;\n\nconst IOS_BUNDLE_ID_REGEX = /^[a-zA-Z0-9-.]+$/;\nconst ANDROID_PACKAGE_REGEX = /^(?!.*\\bnative\\b)[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)+$/;\n\n/** Validate an iOS bundle identifier. */\nexport function validateBundleId(value: string): boolean {\n return IOS_BUNDLE_ID_REGEX.test(value);\n}\n\n/** Validate an Android package name. */\nexport function validatePackage(value: string): boolean {\n return validatePackageWithWarning(value) === true;\n}\n\n/** Validate an Android package name and return the reason if invalid. */\nexport function validatePackageWithWarning(value: string): true | string {\n const parts = value.split('.');\n for (const segment of parts) {\n if (RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS.includes(segment)) {\n return `\"${segment}\" is a reserved Java keyword.`;\n }\n }\n if (parts.length < 2) {\n return `Package name must contain more than one segment, separated by \".\", e.g. com.${value}`;\n }\n if (!ANDROID_PACKAGE_REGEX.test(value)) {\n return 'Invalid characters in Android package name. Only alphanumeric characters, \".\" and \"_\" are allowed, and each \".\" must be followed by a letter or number.';\n }\n\n return true;\n}\n\n// https://en.wikipedia.org/wiki/List_of_Java_keywords\n// Running the following in the console and pruning the \"Reserved Identifiers\" section:\n// [...document.querySelectorAll('dl > dt > code')].map(node => node.innerText)\nconst RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS = [\n // List of Java keywords\n '_',\n 'abstract',\n 'assert',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'default',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'extends',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'instanceof',\n 'int',\n 'interface',\n 'long',\n 'native',\n 'new',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'try',\n 'void',\n 'volatile',\n 'while',\n // Reserved words for literal values\n 'true',\n 'false',\n 'null',\n // Unused\n 'const',\n 'goto',\n 'strictfp',\n];\n\nexport function assertValidBundleId(value: string) {\n assert.match(\n value,\n IOS_BUNDLE_ID_REGEX,\n `The ios.bundleIdentifier defined in your Expo config is not formatted properly. Only alphanumeric characters, '.', '-', and '_' are allowed, and each '.' must be followed by a letter.`\n );\n}\n\nexport function assertValidPackage(value: string) {\n assert.match(\n value,\n ANDROID_PACKAGE_REGEX,\n `Invalid format of Android package name. Only alphanumeric characters, '.' and '_' are allowed, and each '.' must be followed by a letter. The Java keyword 'native' is not allowed.`\n );\n}\n\n/** @private */\nexport async function getBundleIdWarningInternalAsync(bundleId: string): Promise<string | null> {\n if (env.EXPO_OFFLINE) {\n Log.warn('Skipping Apple bundle identifier reservation validation in offline-mode.');\n return null;\n }\n\n if (!(await isUrlAvailableAsync('itunes.apple.com'))) {\n debug(\n `Couldn't connect to iTunes Store to check bundle ID ${bundleId}. itunes.apple.com may be down.`\n );\n // If no network, simply skip the warnings since they'll just lead to more confusion.\n return null;\n }\n\n const url = `http://itunes.apple.com/lookup?bundleId=${bundleId}`;\n try {\n debug(`Checking iOS bundle ID '${bundleId}' at: ${url}`);\n const response = await fetchAsync(url);\n const json = await response.json();\n if (json.resultCount > 0) {\n const firstApp = json.results[0];\n return formatInUseWarning(firstApp.trackName, firstApp.sellerName, bundleId);\n }\n } catch (error: any) {\n debug(`Error checking bundle ID ${bundleId}: ${error.message}`);\n // Error fetching itunes data.\n }\n return null;\n}\n\n/** Returns a warning message if an iOS bundle identifier is potentially already in use. */\nexport const getBundleIdWarningAsync = memoize(getBundleIdWarningInternalAsync);\n\n/** @private */\nexport async function getPackageNameWarningInternalAsync(\n packageName: string\n): Promise<string | null> {\n if (env.EXPO_OFFLINE) {\n Log.warn('Skipping Android package name reservation validation in offline-mode.');\n return null;\n }\n\n if (!(await isUrlAvailableAsync('play.google.com'))) {\n debug(\n `Couldn't connect to Play Store to check package name ${packageName}. play.google.com may be down.`\n );\n // If no network, simply skip the warnings since they'll just lead to more confusion.\n return null;\n }\n\n const url = `https://play.google.com/store/apps/details?id=${packageName}`;\n try {\n debug(`Checking Android package name '${packageName}' at: ${url}`);\n const response = await fetchAsync(url);\n // If the page exists, then warn the user.\n if (response.status === 200) {\n // There is no JSON API for the Play Store so we can't concisely\n // locate the app name and developer to match the iOS warning.\n return `⚠️ The package ${chalk.bold(packageName)} is already in use. ${chalk.dim(\n learnMore(url)\n )}`;\n }\n } catch (error: any) {\n // Error fetching play store data or the page doesn't exist.\n debug(`Error checking package name ${packageName}: ${error.message}`);\n }\n return null;\n}\n\nfunction formatInUseWarning(appName: string, author: string, id: string): string {\n return `⚠️ The app ${chalk.bold(appName)} by ${chalk.italic(\n author\n )} is already using ${chalk.bold(id)}`;\n}\n\n/** Returns a warning message if an Android package name is potentially already in use. */\nexport const getPackageNameWarningAsync = memoize(getPackageNameWarningInternalAsync);\n"],"names":["validateBundleId","validatePackage","validatePackageWithWarning","assertValidBundleId","assertValidPackage","getBundleIdWarningInternalAsync","getBundleIdWarningAsync","getPackageNameWarningInternalAsync","getPackageNameWarningAsync","debug","require","IOS_BUNDLE_ID_REGEX","ANDROID_PACKAGE_REGEX","value","test","parts","split","segment","RESERVED_ANDROID_PACKAGE_NAME_SEGMENTS","includes","length","assert","match","bundleId","env","EXPO_OFFLINE","Log","warn","isUrlAvailableAsync","url","response","fetchAsync","json","resultCount","firstApp","results","formatInUseWarning","trackName","sellerName","error","message","memoize","packageName","status","chalk","bold","dim","learnMore","appName","author","id","italic"],"mappings":"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"}
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
+
parseVariadicArguments: ()=>parseVariadicArguments,
|
|
13
|
+
assertUnexpectedObjectKeys: ()=>assertUnexpectedObjectKeys,
|
|
14
|
+
assertUnexpectedVariadicFlags: ()=>assertUnexpectedVariadicFlags
|
|
15
|
+
});
|
|
16
|
+
const _errors = require("../utils/errors");
|
|
9
17
|
const debug = require("debug")("expo:utils:variadic");
|
|
10
18
|
function parseVariadicArguments(argv) {
|
|
11
19
|
const variadic = [];
|
|
@@ -38,19 +46,15 @@ function parseVariadicArguments(argv) {
|
|
|
38
46
|
};
|
|
39
47
|
}
|
|
40
48
|
function assertUnexpectedObjectKeys(keys, obj) {
|
|
41
|
-
const unexpectedKeys = Object.keys(obj).filter((key)=>!keys.includes(key)
|
|
42
|
-
);
|
|
49
|
+
const unexpectedKeys = Object.keys(obj).filter((key)=>!keys.includes(key));
|
|
43
50
|
if (unexpectedKeys.length > 0) {
|
|
44
51
|
throw new _errors.CommandError("BAD_ARGS", `Unexpected: ${unexpectedKeys.join(", ")}`);
|
|
45
52
|
}
|
|
46
53
|
}
|
|
47
54
|
function assertUnexpectedVariadicFlags(expectedFlags, { extras , flags , variadic }, prefixCommand = "") {
|
|
48
|
-
const unexpectedFlags = Object.keys(flags).filter((key)=>!expectedFlags.includes(key)
|
|
49
|
-
);
|
|
55
|
+
const unexpectedFlags = Object.keys(flags).filter((key)=>!expectedFlags.includes(key));
|
|
50
56
|
if (unexpectedFlags.length > 0) {
|
|
51
|
-
const intendedFlags = Object.entries(flags).filter(([key])=>expectedFlags.includes(key)
|
|
52
|
-
).map(([key])=>key
|
|
53
|
-
);
|
|
57
|
+
const intendedFlags = Object.entries(flags).filter(([key])=>expectedFlags.includes(key)).map(([key])=>key);
|
|
54
58
|
const cmd = [
|
|
55
59
|
prefixCommand,
|
|
56
60
|
...variadic,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/variadic.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\n\nconst debug = require('debug')('expo:utils:variadic') as typeof console.log;\n\n/** Given a list of CLI args, return a sorted set of args based on categories used in a complex command. */\nexport function parseVariadicArguments(argv: string[]): {\n variadic: string[];\n extras: string[];\n flags: Record<string, boolean>;\n} {\n const variadic: string[] = [];\n const flags: Record<string, boolean> = {};\n\n for (const arg of argv) {\n if (!arg.startsWith('-')) {\n variadic.push(arg);\n } else if (arg === '--') {\n break;\n } else {\n flags[arg] = true;\n }\n }\n\n // Everything after `--` that is not an option is passed to the underlying install command.\n const extras: string[] = [];\n\n const extraOperator = argv.indexOf('--');\n if (extraOperator > -1 && argv.length > extraOperator + 1) {\n const extraArgs = argv.slice(extraOperator + 1);\n if (extraArgs.includes('--')) {\n throw new CommandError('BAD_ARGS', 'Unexpected multiple --');\n }\n extras.push(...extraArgs);\n debug('Extra arguments: ' + extras.join(', '));\n }\n\n debug(`Parsed arguments (variadic: %O, flags: %O, extra: %O)`, variadic, flags, extras);\n\n return {\n variadic,\n flags,\n extras,\n };\n}\n\nexport function assertUnexpectedObjectKeys(keys: string[], obj: Record<string, any>): void {\n const unexpectedKeys = Object.keys(obj).filter((key) => !keys.includes(key));\n if (unexpectedKeys.length > 0) {\n throw new CommandError('BAD_ARGS', `Unexpected: ${unexpectedKeys.join(', ')}`);\n }\n}\n\nexport function assertUnexpectedVariadicFlags(\n expectedFlags: string[],\n { extras, flags, variadic }: ReturnType<typeof parseVariadicArguments>,\n prefixCommand = ''\n) {\n const unexpectedFlags = Object.keys(flags).filter((key) => !expectedFlags.includes(key));\n\n if (unexpectedFlags.length > 0) {\n const intendedFlags = Object.entries(flags)\n .filter(([key]) => expectedFlags.includes(key))\n .map(([key]) => key);\n\n const cmd = [\n prefixCommand,\n ...variadic,\n ...intendedFlags,\n '--',\n ...extras.concat(unexpectedFlags),\n ].join(' ');\n\n throw new CommandError(\n 'BAD_ARGS',\n `Unexpected: ${unexpectedFlags.join(', ')}\\nDid you mean: ${cmd.trim()}`\n );\n }\n}\n"],"names":["parseVariadicArguments","assertUnexpectedObjectKeys","assertUnexpectedVariadicFlags","debug","require","argv","variadic","flags","arg","startsWith","push","extras","extraOperator","indexOf","length","extraArgs","slice","includes","CommandError","join","keys","obj","unexpectedKeys","Object","filter","key","expectedFlags","prefixCommand","unexpectedFlags","intendedFlags","entries","map","cmd","concat","trim"],"mappings":"AAAA
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/variadic.ts"],"sourcesContent":["import { CommandError } from '../utils/errors';\n\nconst debug = require('debug')('expo:utils:variadic') as typeof console.log;\n\n/** Given a list of CLI args, return a sorted set of args based on categories used in a complex command. */\nexport function parseVariadicArguments(argv: string[]): {\n variadic: string[];\n extras: string[];\n flags: Record<string, boolean>;\n} {\n const variadic: string[] = [];\n const flags: Record<string, boolean> = {};\n\n for (const arg of argv) {\n if (!arg.startsWith('-')) {\n variadic.push(arg);\n } else if (arg === '--') {\n break;\n } else {\n flags[arg] = true;\n }\n }\n\n // Everything after `--` that is not an option is passed to the underlying install command.\n const extras: string[] = [];\n\n const extraOperator = argv.indexOf('--');\n if (extraOperator > -1 && argv.length > extraOperator + 1) {\n const extraArgs = argv.slice(extraOperator + 1);\n if (extraArgs.includes('--')) {\n throw new CommandError('BAD_ARGS', 'Unexpected multiple --');\n }\n extras.push(...extraArgs);\n debug('Extra arguments: ' + extras.join(', '));\n }\n\n debug(`Parsed arguments (variadic: %O, flags: %O, extra: %O)`, variadic, flags, extras);\n\n return {\n variadic,\n flags,\n extras,\n };\n}\n\nexport function assertUnexpectedObjectKeys(keys: string[], obj: Record<string, any>): void {\n const unexpectedKeys = Object.keys(obj).filter((key) => !keys.includes(key));\n if (unexpectedKeys.length > 0) {\n throw new CommandError('BAD_ARGS', `Unexpected: ${unexpectedKeys.join(', ')}`);\n }\n}\n\nexport function assertUnexpectedVariadicFlags(\n expectedFlags: string[],\n { extras, flags, variadic }: ReturnType<typeof parseVariadicArguments>,\n prefixCommand = ''\n) {\n const unexpectedFlags = Object.keys(flags).filter((key) => !expectedFlags.includes(key));\n\n if (unexpectedFlags.length > 0) {\n const intendedFlags = Object.entries(flags)\n .filter(([key]) => expectedFlags.includes(key))\n .map(([key]) => key);\n\n const cmd = [\n prefixCommand,\n ...variadic,\n ...intendedFlags,\n '--',\n ...extras.concat(unexpectedFlags),\n ].join(' ');\n\n throw new CommandError(\n 'BAD_ARGS',\n `Unexpected: ${unexpectedFlags.join(', ')}\\nDid you mean: ${cmd.trim()}`\n );\n }\n}\n"],"names":["parseVariadicArguments","assertUnexpectedObjectKeys","assertUnexpectedVariadicFlags","debug","require","argv","variadic","flags","arg","startsWith","push","extras","extraOperator","indexOf","length","extraArgs","slice","includes","CommandError","join","keys","obj","unexpectedKeys","Object","filter","key","expectedFlags","prefixCommand","unexpectedFlags","intendedFlags","entries","map","cmd","concat","trim"],"mappings":"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"}
|