Full Code of ionic-team/capacitor for AI

main a9f218179b60 cached
458 files
2.1 MB
579.4k tokens
1413 symbols
1 requests
Download .txt
Showing preview only (2,308K chars total). Download the full file or copy to clipboard to get everything.
Repository: ionic-team/capacitor
Branch: main
Commit: a9f218179b60
Files: 458
Total size: 2.1 MB

Directory structure:
gitextract_psnkni0l/

├── .eslintignore
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.yml
│   │   ├── config.yml
│   │   └── feature-request.yml
│   ├── bot.yml
│   ├── ionic-issue-bot.yml
│   └── workflows/
│       ├── capacitor-bot.yml
│       ├── ci.yml
│       ├── needs-reply.yml
│       ├── publish-android.yml
│       ├── publish-ios.yml
│       ├── publish-latest.yml
│       ├── publish-npm-alpha.yml
│       ├── publish-npm-beta.yml
│       ├── publish-npm-dev.yml
│       ├── publish-npm-latest-from-pre.yml
│       ├── publish-npm-latest.yml
│       ├── publish-npm-nightly.yml
│       ├── publish-npm-rc.yml
│       └── publish-spm-release.yaml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .vscode/
│   └── launch.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── android/
│   ├── .gitignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── capacitor/
│   │   ├── .gitignore
│   │   ├── build.gradle
│   │   ├── gradle.properties
│   │   ├── lint-baseline.xml
│   │   ├── lint.xml
│   │   ├── proguard-rules.pro
│   │   ├── settings.gradle
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── getcapacitor/
│   │       │               └── android/
│   │       │                   └── ExampleInstrumentedTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── assets/
│   │       │   │   └── native-bridge.js
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── getcapacitor/
│   │       │   │           ├── AndroidProtocolHandler.java
│   │       │   │           ├── App.java
│   │       │   │           ├── AppUUID.java
│   │       │   │           ├── Bridge.java
│   │       │   │           ├── BridgeActivity.java
│   │       │   │           ├── BridgeWebChromeClient.java
│   │       │   │           ├── BridgeWebViewClient.java
│   │       │   │           ├── CapConfig.java
│   │       │   │           ├── CapacitorWebView.java
│   │       │   │           ├── FileUtils.java
│   │       │   │           ├── InvalidPluginException.java
│   │       │   │           ├── InvalidPluginMethodException.java
│   │       │   │           ├── JSArray.java
│   │       │   │           ├── JSExport.java
│   │       │   │           ├── JSExportException.java
│   │       │   │           ├── JSInjector.java
│   │       │   │           ├── JSObject.java
│   │       │   │           ├── JSValue.java
│   │       │   │           ├── Logger.java
│   │       │   │           ├── MessageHandler.java
│   │       │   │           ├── NativePlugin.java
│   │       │   │           ├── PermissionState.java
│   │       │   │           ├── Plugin.java
│   │       │   │           ├── PluginCall.java
│   │       │   │           ├── PluginConfig.java
│   │       │   │           ├── PluginHandle.java
│   │       │   │           ├── PluginInvocationException.java
│   │       │   │           ├── PluginLoadException.java
│   │       │   │           ├── PluginManager.java
│   │       │   │           ├── PluginMethod.java
│   │       │   │           ├── PluginMethodHandle.java
│   │       │   │           ├── PluginResult.java
│   │       │   │           ├── ProcessedRoute.java
│   │       │   │           ├── RouteProcessor.java
│   │       │   │           ├── ServerPath.java
│   │       │   │           ├── UriMatcher.java
│   │       │   │           ├── WebViewListener.java
│   │       │   │           ├── WebViewLocalServer.java
│   │       │   │           ├── annotation/
│   │       │   │           │   ├── ActivityCallback.java
│   │       │   │           │   ├── CapacitorPlugin.java
│   │       │   │           │   ├── Permission.java
│   │       │   │           │   └── PermissionCallback.java
│   │       │   │           ├── cordova/
│   │       │   │           │   ├── CapacitorCordovaCookieManager.java
│   │       │   │           │   ├── MockCordovaInterfaceImpl.java
│   │       │   │           │   └── MockCordovaWebViewImpl.java
│   │       │   │           ├── plugin/
│   │       │   │           │   ├── CapacitorCookieManager.java
│   │       │   │           │   ├── CapacitorCookies.java
│   │       │   │           │   ├── CapacitorHttp.java
│   │       │   │           │   ├── SystemBars.java
│   │       │   │           │   ├── WebView.java
│   │       │   │           │   └── util/
│   │       │   │           │       ├── AssetUtil.java
│   │       │   │           │       ├── CapacitorHttpUrlConnection.java
│   │       │   │           │       ├── HttpRequestHandler.java
│   │       │   │           │       ├── ICapacitorHttpUrlConnection.java
│   │       │   │           │       └── MimeType.java
│   │       │   │           └── util/
│   │       │   │               ├── HostMask.java
│   │       │   │               ├── InternalUtils.java
│   │       │   │               ├── JSONUtils.java
│   │       │   │               ├── PermissionHelper.java
│   │       │   │               └── WebColor.java
│   │       │   └── res/
│   │       │       ├── layout/
│   │       │       │   ├── capacitor_bridge_layout_main.xml
│   │       │       │   └── no_webview.xml
│   │       │       └── values/
│   │       │           ├── colors.xml
│   │       │           ├── strings.xml
│   │       │           └── styles.xml
│   │       └── test/
│   │           ├── java/
│   │           │   ├── android/
│   │           │   │   └── util/
│   │           │   │       └── Log.java
│   │           │   └── com/
│   │           │       └── getcapacitor/
│   │           │           ├── ConfigBuildingTest.java
│   │           │           ├── ConfigReadingTest.java
│   │           │           ├── ExampleUnitTest.java
│   │           │           ├── JSObjectTest.java
│   │           │           ├── PluginMethodHandleTest.java
│   │           │           ├── plugin/
│   │           │           │   └── util/
│   │           │           │       └── HttpRequestHandlerTest.java
│   │           │           └── util/
│   │           │               └── HostMaskTest.java
│   │           └── resources/
│   │               └── configs/
│   │                   ├── bad.json
│   │                   ├── flat.json
│   │                   ├── hierarchy.json
│   │                   ├── nonjson.json
│   │                   └── server.json
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── package.json
│   ├── scripts/
│   │   ├── publish-module.gradle
│   │   └── publish-root.gradle
│   └── settings.gradle
├── android-template/
│   ├── .gitignore
│   ├── app/
│   │   ├── .gitignore
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── getcapacitor/
│   │       │               └── myapp/
│   │       │                   └── ExampleInstrumentedTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── getcapacitor/
│   │       │   │           └── myapp/
│   │       │   │               └── MainActivity.java
│   │       │   └── res/
│   │       │       ├── drawable/
│   │       │       │   └── ic_launcher_background.xml
│   │       │       ├── drawable-v24/
│   │       │       │   └── ic_launcher_foreground.xml
│   │       │       ├── layout/
│   │       │       │   └── activity_main.xml
│   │       │       ├── mipmap-anydpi-v26/
│   │       │       │   ├── ic_launcher.xml
│   │       │       │   └── ic_launcher_round.xml
│   │       │       ├── values/
│   │       │       │   ├── ic_launcher_background.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── xml/
│   │       │           └── file_paths.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── getcapacitor/
│   │                       └── myapp/
│   │                           └── ExampleUnitTest.java
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── settings.gradle
│   └── variables.gradle
├── capacitor-cordova-android-plugins/
│   ├── build.gradle
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── .gitkeep
│           └── res/
│               └── .gitkeep
├── capacitor-cordova-ios-plugins/
│   ├── CordovaPluginsResources.podspec
│   ├── resources/
│   │   └── .gitkeep
│   └── sources/
│       └── .gitkeep
├── cli/
│   ├── .gitignore
│   ├── .npmignore
│   ├── .npmrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── bin/
│   │   └── capacitor
│   ├── package.json
│   ├── src/
│   │   ├── android/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── common.ts
│   │   │   ├── doctor.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   └── update.ts
│   │   ├── colors.ts
│   │   ├── common.ts
│   │   ├── config.ts
│   │   ├── cordova.ts
│   │   ├── declarations.ts
│   │   ├── definitions.ts
│   │   ├── errors.ts
│   │   ├── framework-configs.ts
│   │   ├── index.ts
│   │   ├── ios/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── common.ts
│   │   │   ├── doctor.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   └── update.ts
│   │   ├── ipc.ts
│   │   ├── log.ts
│   │   ├── plugin.ts
│   │   ├── sysconfig.ts
│   │   ├── tasks/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── config.ts
│   │   │   ├── copy.ts
│   │   │   ├── create.ts
│   │   │   ├── doctor.ts
│   │   │   ├── init.ts
│   │   │   ├── list.ts
│   │   │   ├── migrate-spm.ts
│   │   │   ├── migrate.ts
│   │   │   ├── new-plugin.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   ├── serve.ts
│   │   │   ├── sourcemaps.ts
│   │   │   ├── sync.ts
│   │   │   ├── telemetry.ts
│   │   │   └── update.ts
│   │   ├── telemetry.ts
│   │   └── util/
│   │       ├── cli.ts
│   │       ├── emoji.ts
│   │       ├── fn.ts
│   │       ├── fs.ts
│   │       ├── iosplugin.ts
│   │       ├── js.ts
│   │       ├── livereload.ts
│   │       ├── monorepotools.ts
│   │       ├── native-run.ts
│   │       ├── node.ts
│   │       ├── promise.ts
│   │       ├── spm.ts
│   │       ├── subprocess.ts
│   │       ├── template.ts
│   │       ├── term.ts
│   │       ├── uuid.ts
│   │       └── xml.ts
│   ├── test/
│   │   ├── add.android.spec.ts
│   │   ├── add.ios.spec.ts
│   │   ├── framework-detection.spec.ts
│   │   ├── init.spec.ts
│   │   ├── tsconfig.json
│   │   ├── update.android.spec.ts
│   │   ├── update.ios.spec.ts
│   │   └── util.ts
│   └── tsconfig.json
├── core/
│   ├── .npmrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── cookies.md
│   ├── cordova.js
│   ├── http.md
│   ├── native-bridge.ts
│   ├── package.json
│   ├── rollup.bridge.config.js
│   ├── rollup.config.js
│   ├── src/
│   │   ├── core-plugins.ts
│   │   ├── definitions-internal.ts
│   │   ├── definitions.ts
│   │   ├── global.ts
│   │   ├── index.ts
│   │   ├── runtime.ts
│   │   ├── tests/
│   │   │   ├── bridge.spec.ts
│   │   │   ├── build-treeshaking.js
│   │   │   ├── convert-file-src.spec.ts
│   │   │   ├── events.spec.ts
│   │   │   ├── plugin.spec.ts
│   │   │   ├── runtime.spec.ts
│   │   │   └── web-plugin.spec.ts
│   │   ├── util.ts
│   │   └── web-plugin.ts
│   ├── system-bars.md
│   └── tsconfig.json
├── ios/
│   ├── CHANGELOG.md
│   ├── Capacitor/
│   │   ├── Capacitor/
│   │   │   ├── AppUUID.swift
│   │   │   ├── Array+Capacitor.swift
│   │   │   ├── CAPApplicationDelegateProxy.swift
│   │   │   ├── CAPBridge.swift
│   │   │   ├── CAPBridgeDelegate.swift
│   │   │   ├── CAPBridgeProtocol.swift
│   │   │   ├── CAPBridgeViewController+CDVScreenOrientationDelegate.h
│   │   │   ├── CAPBridgeViewController+CDVScreenOrientationDelegate.m
│   │   │   ├── CAPBridgeViewController.swift
│   │   │   ├── CAPBridgedJSTypes.h
│   │   │   ├── CAPBridgedJSTypes.m
│   │   │   ├── CAPBridgedPlugin+getMethod.swift
│   │   │   ├── CAPBridgedPlugin.h
│   │   │   ├── CAPFile.swift
│   │   │   ├── CAPInstanceConfiguration.h
│   │   │   ├── CAPInstanceConfiguration.m
│   │   │   ├── CAPInstanceConfiguration.swift
│   │   │   ├── CAPInstanceDescriptor.h
│   │   │   ├── CAPInstanceDescriptor.m
│   │   │   ├── CAPInstanceDescriptor.swift
│   │   │   ├── CAPInstancePlugin.swift
│   │   │   ├── CAPLog.swift
│   │   │   ├── CAPNotifications.swift
│   │   │   ├── CAPPlugin+LoadInstance.swift
│   │   │   ├── CAPPlugin.h
│   │   │   ├── CAPPlugin.m
│   │   │   ├── CAPPluginCall.h
│   │   │   ├── CAPPluginCall.m
│   │   │   ├── CAPPluginCall.swift
│   │   │   ├── CAPPluginMethod.h
│   │   │   ├── CAPPluginMethod.m
│   │   │   ├── CAPPluginMethod.swift
│   │   │   ├── Capacitor.h
│   │   │   ├── Capacitor.modulemap
│   │   │   ├── CapacitorBridge.swift
│   │   │   ├── CapacitorExtension.swift
│   │   │   ├── Codable/
│   │   │   │   ├── JSValueDecoder.swift
│   │   │   │   └── JSValueEncoder.swift
│   │   │   ├── Data+Capacitor.swift
│   │   │   ├── DocLinks.swift
│   │   │   ├── Info.plist
│   │   │   ├── JS.swift
│   │   │   ├── JSExport.swift
│   │   │   ├── JSTypes.swift
│   │   │   ├── KeyPath.swift
│   │   │   ├── KeyValueStore.swift
│   │   │   ├── NotificationHandlerProtocol.swift
│   │   │   ├── NotificationRouter.swift
│   │   │   ├── PluginCallResult.swift
│   │   │   ├── PluginConfig.swift
│   │   │   ├── Plugins/
│   │   │   │   ├── CapacitorCookieManager.swift
│   │   │   │   ├── CapacitorCookies.swift
│   │   │   │   ├── CapacitorHttp.swift
│   │   │   │   ├── CapacitorUrlRequest.swift
│   │   │   │   ├── Console.swift
│   │   │   │   ├── HttpRequestHandler.swift
│   │   │   │   ├── SystemBars.swift
│   │   │   │   └── WebView.swift
│   │   │   ├── PrivacyInfo.xcprivacy
│   │   │   ├── Router.swift
│   │   │   ├── TmpViewController.swift
│   │   │   ├── UIColor.swift
│   │   │   ├── UIStatusBarManager+CAPHandleTapAction.m
│   │   │   ├── WKWebView+Capacitor.m
│   │   │   ├── WKWebView+Capacitor.swift
│   │   │   ├── WebViewAssetHandler.swift
│   │   │   ├── WebViewDelegationHandler.swift
│   │   │   └── assets/
│   │   │       └── native-bridge.js
│   │   ├── Capacitor.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Capacitor.xcscheme
│   │   ├── Capacitor.xcworkspace/
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   ├── CapacitorTests/
│   │   │   ├── BridgedTypesHelper.swift
│   │   │   ├── BridgedTypesTests.m
│   │   │   ├── BridgedTypesTests.swift
│   │   │   ├── CapacitorTests-Bridging-Header.h
│   │   │   ├── CapacitorTests.swift
│   │   │   ├── ConfigurationTests.swift
│   │   │   ├── Info.plist
│   │   │   ├── JSExportTests.swift
│   │   │   ├── JSONSerializationWrapper.h
│   │   │   ├── JSONSerializationWrapper.m
│   │   │   ├── PluginCallAccessorTests.m
│   │   │   └── RouterTests.swift
│   │   ├── CodableTests/
│   │   │   ├── CodableTests.swift
│   │   │   ├── DataCodableTests.swift
│   │   │   ├── DateCodableTests.swift
│   │   │   ├── NestedCodableTests.swift
│   │   │   ├── NonconformingFloatCodableTests.swift
│   │   │   ├── SuperCodableTests.swift
│   │   │   └── URLCodableTests.swift
│   │   └── TestsHostApp/
│   │       ├── AppDelegate.swift
│   │       ├── Assets.xcassets/
│   │       │   ├── AccentColor.colorset/
│   │       │   │   └── Contents.json
│   │       │   ├── AppIcon.appiconset/
│   │       │   │   └── Contents.json
│   │       │   └── Contents.json
│   │       ├── Base.lproj/
│   │       │   ├── LaunchScreen.storyboard
│   │       │   └── Main.storyboard
│   │       ├── Info.plist
│   │       ├── ViewController.swift
│   │       └── configurations/
│   │           ├── bad.json
│   │           ├── flat.json
│   │           ├── hidinglogs.json
│   │           ├── hierarchy.json
│   │           ├── nonjson.json
│   │           └── server.json
│   ├── Capacitor.podspec
│   ├── CapacitorCordova/
│   │   ├── CapacitorCordova/
│   │   │   ├── CapacitorCordova.h
│   │   │   ├── CapacitorCordova.modulemap
│   │   │   ├── Classes/
│   │   │   │   └── Public/
│   │   │   │       ├── AppDelegate.h
│   │   │   │       ├── AppDelegate.m
│   │   │   │       ├── CDV.h
│   │   │   │       ├── CDVAvailability.h
│   │   │   │       ├── CDVAvailabilityDeprecated.h
│   │   │   │       ├── CDVCommandDelegate.h
│   │   │   │       ├── CDVCommandDelegateImpl.h
│   │   │   │       ├── CDVCommandDelegateImpl.m
│   │   │   │       ├── CDVConfigParser.h
│   │   │   │       ├── CDVConfigParser.m
│   │   │   │       ├── CDVInvokedUrlCommand.h
│   │   │   │       ├── CDVInvokedUrlCommand.m
│   │   │   │       ├── CDVPlugin+Resources.h
│   │   │   │       ├── CDVPlugin+Resources.m
│   │   │   │       ├── CDVPlugin.h
│   │   │   │       ├── CDVPlugin.m
│   │   │   │       ├── CDVPluginManager.h
│   │   │   │       ├── CDVPluginManager.m
│   │   │   │       ├── CDVPluginResult.h
│   │   │   │       ├── CDVPluginResult.m
│   │   │   │       ├── CDVScreenOrientationDelegate.h
│   │   │   │       ├── CDVURLProtocol.h
│   │   │   │       ├── CDVURLProtocol.m
│   │   │   │       ├── CDVViewController.h
│   │   │   │       ├── CDVViewController.m
│   │   │   │       ├── CDVWebViewProcessPoolFactory.h
│   │   │   │       ├── CDVWebViewProcessPoolFactory.m
│   │   │   │       ├── NSDictionary+CordovaPreferences.h
│   │   │   │       └── NSDictionary+CordovaPreferences.m
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── CapacitorCordova.xcodeproj/
│   │       ├── project.pbxproj
│   │       └── project.xcworkspace/
│   │           └── xcshareddata/
│   │               └── IDEWorkspaceChecks.plist
│   ├── CapacitorCordova.podspec
│   ├── LICENSE
│   ├── package.json
│   └── scripts/
│       └── pods_helpers.rb
├── ios-pods-template/
│   ├── .gitignore
│   └── App/
│       ├── App/
│       │   ├── AppDelegate.swift
│       │   ├── Assets.xcassets/
│       │   │   ├── AppIcon.appiconset/
│       │   │   │   └── Contents.json
│       │   │   ├── Contents.json
│       │   │   └── Splash.imageset/
│       │   │       └── Contents.json
│       │   ├── Base.lproj/
│       │   │   ├── LaunchScreen.storyboard
│       │   │   └── Main.storyboard
│       │   └── Info.plist
│       ├── App.xcodeproj/
│       │   └── project.pbxproj
│       ├── App.xcworkspace/
│       │   └── xcshareddata/
│       │       └── IDEWorkspaceChecks.plist
│       └── Podfile
├── ios-spm-template/
│   ├── .gitignore
│   ├── App/
│   │   ├── App/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Splash.imageset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── Info.plist
│   │   ├── App.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace/
│   │   │       └── xcshareddata/
│   │   │           └── IDEWorkspaceChecks.plist
│   │   └── CapApp-SPM/
│   │       ├── .gitignore
│   │       ├── Package.swift
│   │       ├── README.md
│   │       └── Sources/
│   │           └── CapApp-SPM/
│   │               └── CapApp-SPM.swift
│   └── debug.xcconfig
├── lerna.json
├── nx.json
├── package.json
├── scripts/
│   ├── .gitignore
│   ├── lib/
│   │   ├── cli.mjs
│   │   ├── fn.mjs
│   │   ├── fs.mjs
│   │   ├── git.mjs
│   │   ├── lerna.mjs
│   │   ├── repo.mjs
│   │   ├── subprocess.mjs
│   │   └── version.mjs
│   ├── native-podspec.sh
│   ├── pack-cli-assets.mjs
│   ├── publish-android.sh
│   └── sync-peer-dependencies.mjs
└── swiftlint.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .eslintignore
================================================
build
cli/assets
dist
types
android/capacitor/src/main/assets/native-bridge.js
ios/Capacitor/Capacitor/assets/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64_x86_64-simulator/Capacitor.framework/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64/Capacitor.framework/native-bridge.js


================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.yml
================================================
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["triage"]
type: "bug"
body:
  - type: markdown
    attributes:
      value: |
        ## Thanks for taking the time to fill out this bug report!
  - type: textarea
    id: capacitor-version
    attributes:
      label: Capacitor Version
      description: "Paste the output from the `npx cap doctor` command into the box below"
      placeholder: "Paste the output from the `npx cap doctor` here"
    validations:
      required: true
  - type: textarea
    id: other-tech-details
    attributes:
      label: Other API Details
      description: "Please provide the following information with your request and any other relevant technical details (versions of IDEs, local environment info, plugin information or links, etc)."
      placeholder: |
          npm --version output:
          node --version output:
          pod --version output (iOS Cocoapods issues only):
      render: Shell
  - type: checkboxes
    id: platforms
    attributes:
      label: Platforms Affected
      description: "Check the platforms that this bug affects."
      options:
        - label: iOS
          required: false
        - label: Android
          required: false
        - label: Web
          required: false
  - type: textarea
    id: current-behavior
    attributes:
      label: Current Behavior
      description: "Describe the bug in detail. The more detail the better."
      placeholder: "Tell us what you see!"
    validations:
      required: true
  - type: textarea
    id: expected-behavior
    attributes:
      label: Expected Behavior
      description: "Describe what you expect to happen"
      placeholder: "Tell us what you expect!"
    validations:
      required: true
  - type: input
    id: reproduction
    attributes:
      label: Project Reproduction
      description: "Include a link to a repository we can access that reproduces the problem. Try to make it as simple as possible."
    validations:
      required: true
  - type: textarea
    id: additional-info
    attributes:
      label: Additional Information
      description: "Anything else we need to know to help? Include it here."
      placeholder: "Tell us anything!"


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: ⚙️ Request a new plugin
    url: https://github.com/capacitor-community/proposals
    about: Propose a new plugin or platform to the Capacitor community
  - name: Discuss issues on our forums
    url: https://forum.ionicframework.com/
    about: Ask questions and discuss with other community members
  - name: Chat on our Discord
    url: https://ionic.link/discord
    about: Ask questions and chat with other community members


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.yml
================================================
name: Feature Request
description: Request a new feature
title: "[Feature]: "
labels: ["triage"]
body:
  - type: markdown
    attributes:
      value: |
        ## Thanks for your input on enhancements to Capacitor!
  - type: input
    id: Description
    attributes:
      label: Description
      description: "A short description of your requested feature"
    validations:
      required: true
  - type: checkboxes
    id: platforms
    attributes:
      label: Platforms
      description: "Check the platforms that will need this feature"
      options:
        - label: iOS
          required: false
        - label: Android
          required: false
        - label: Web
          required: false
  - type: textarea
    id: requested-feature
    attributes:
      label: Request or proposed solution
      description: "Describe the feature you are looking for in detail and any Preferred Solution you have"
      placeholder: "This new thing would be great!"
    validations:
      required: true
  - type: textarea
    id: alternatives
    attributes:
      label: Alternatives
      description: "Describe some alternatives, if any"
      placeholder: "Some other ideas!"
    validations:
      required: false
  - type: textarea
    id: additional-info
    attributes:
      label: Additional Information
      description: "Anything else we need to know to help? Include it here."
      placeholder: "Tell us anything!"


================================================
FILE: .github/bot.yml
================================================
tasks:
  - name: add-label
    on:
      issues:
        types: [labeled]
    condition: 'payload.label.name == "needs reproduction"'
    config:
      label: 'needs reply'
  - name: remove-label
    on:
      issue_comment:
        types: [created]
    config:
      label: 'needs reply'
      exclude-labeler: true


================================================
FILE: .github/ionic-issue-bot.yml
================================================
triage:
  label: triage
  dryRun: false

lockClosed:
  days: 30
  maxIssuesPerRun: 100
  message: >
    Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue.
    If this is still an issue with the latest version of Capacitor, please create a new issue and ensure the template is fully filled out.
  dryRun: false

comment:
  labels:
    - label: "type: bug"
      message: >
        This issue has been labeled as `type: bug`. This label is added to issues
        that that have been reproduced and are being tracked in our internal issue tracker.
    - label: "needs reproduction"
      message: >
        This issue needs more information before it can be addressed.
        In particular, the reporter needs to provide a minimal sample app that demonstrates the issue.
        If no sample app is provided within 7 days, the issue will be closed.

        Please see the Contributing Guide for [how to create a Sample App](https://github.com/ionic-team/capacitor/blob/HEAD/CONTRIBUTING.md#creating-a-code-reproduction).

        Thanks!
        Ionitron 💙
  dryRun: false

closeAndLock:
  labels:
    - label: "support request"
      message: >
        Thanks for the issue! This issue appears to be a support request. We use this issue tracker exclusively for
        bug reports and feature requests. Please use our [forum](https://forum.ionicframework.com) or our community [Discord](https://ionic.link/discord) for questions about Capacitor.


        Thank you for using Capacitor!
  close: true
  lock: true
  dryRun: false



================================================
FILE: .github/workflows/capacitor-bot.yml
================================================
name: Capacitor Bot

on:
  push:
    branches: [main]
  issues:
    types: [opened, edited, labeled]
  pull_request:
    types: [opened]
  issue_comment:
    types: [created]

jobs:
  bot:
    name: ${{ github.event_name }}/${{ github.event.action }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: ionic-team/bot@main
        with:
          repo-token: ${{ secrets.BOT_TOKEN }}
        env:
          GIT_AUTHOR_NAME: Ionitron
          GIT_AUTHOR_EMAIL: hi@ionicframework.com
          GIT_COMMITTER_NAME: Ionitron
          GIT_COMMITTER_EMAIL: hi@ionicframework.com


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI

on:
  push:
    branches:
      - main
  pull_request:
    types:
      - 'synchronize'
      - 'opened'
    branches:
      - '**'

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
  setup:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    steps:
      - name: Get Latest
        uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
  lint:
    runs-on: macos-15
    timeout-minutes: 60
    steps:
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
      - run: npm install
      - run: brew install swiftlint
      - run: npm run lint
  test-cli:
    runs-on: macos-15
    timeout-minutes: 60
    needs:
      - setup
      - lint
    steps:
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
      - run: npm install
      - run: npm run build
        working-directory: ./cli
      - run: npm test
        working-directory: ./cli
  test-core:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    needs:
      - setup
      - lint
    steps:
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
      - run: npm install
      - run: npm run build
        working-directory: ./core
      - run: npm test
        working-directory: ./core
  test-ios:
    runs-on: macos-15
    timeout-minutes: 60
    needs:
      - setup
      - lint
    strategy:
      matrix:
        xcode:
          - /Applications/Xcode_26.0.app
    steps:
      - run: sudo xcode-select --switch ${{ matrix.xcode }}
      - run: xcrun simctl list > /dev/null
      - run: xcodebuild -downloadPlatform iOS
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
      - run: npm install
      - run: npm run verify
        working-directory: ./ios
      - name: Validate native podspec
        run: sh ./scripts/native-podspec.sh lint
  test-android:
    runs-on: ubuntu-latest
    timeout-minutes: 60
    needs:
      - setup
      - lint
    steps:
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - name: set up JDK 21
        uses: actions/setup-java@v5
        with:
          java-version: '21'
          distribution: 'zulu'
      - uses: actions/checkout@v5
      - name: Restore Dependency Cache
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
      - run: npm install
      - run: npm run verify
        working-directory: ./android


================================================
FILE: .github/workflows/needs-reply.yml
================================================
name: Close old issues that need reply

on:
  schedule:
    - cron: "0 0 * * *"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Close old issues that need reply
        uses: imhoffd/needs-reply@v2
        with:
          repo-token: ${{ secrets.BOT_TOKEN }}
          issue-label: 'needs reply'
          days-before-close: 7
          close-message: |
            It looks like this issue didn't get the information it needed, so I'll close it for now. If I made a mistake, sorry! I am just a bot.

            Have a great day!
            Ionitron 💙


================================================
FILE: .github/workflows/publish-android.yml
================================================
name: Publish Native Android Library

on: 
  workflow_call:
    secrets:
      ANDROID_OSSRH_USERNAME:
        required: true
      ANDROID_OSSRH_PASSWORD:
        required: true
      ANDROID_SIGNING_KEY_ID:
        required: true
      ANDROID_SIGNING_PASSWORD:
        required: true
      ANDROID_SIGNING_KEY:
        required: true
      ANDROID_SONATYPE_STAGING_PROFILE_ID:
        required: true
      CAP_GH_RELEASE_TOKEN:
        required: true
  workflow_dispatch:

jobs:
  publish-android:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          ref: 'main'
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - name: set up JDK 21
        uses: actions/setup-java@v5
        with:
          java-version: '21'
          distribution: 'zulu'
      - name: Grant execute permission for gradlew
        run: chmod +x ./android/gradlew
      - name: Grant execute permission for publishing script
        run: chmod +x ./scripts/publish-android.sh
      - name: Run publish script
        working-directory: ./scripts
        env:
          ANDROID_OSSRH_USERNAME: ${{ secrets.ANDROID_OSSRH_USERNAME }}
          ANDROID_OSSRH_PASSWORD: ${{ secrets.ANDROID_OSSRH_PASSWORD }}
          ANDROID_SIGNING_KEY_ID: ${{ secrets.ANDROID_SIGNING_KEY_ID }}
          ANDROID_SIGNING_PASSWORD: ${{ secrets.ANDROID_SIGNING_PASSWORD }}
          ANDROID_SIGNING_KEY: ${{ secrets.ANDROID_SIGNING_KEY }}
          ANDROID_SONATYPE_STAGING_PROFILE_ID: ${{ secrets.ANDROID_SONATYPE_STAGING_PROFILE_ID }}
        run: ./publish-android.sh


================================================
FILE: .github/workflows/publish-ios.yml
================================================
name: Publish Native iOS Library

on:
  workflow_call:
    secrets:
      COCOAPODS_TRUNK_TOKEN:
        required: true
  workflow_dispatch:

jobs:
  publish-ios:
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - run: sudo xcode-select --switch /Applications/Xcode_26.0.app
      - run: xcrun simctl list > /dev/null
      - run: xcodebuild -downloadPlatform iOS
      - uses: actions/setup-node@v6
        with:
          node-version: 22.x
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          ref: 'main'
      - name: Install Cocoapods
        run: gem install cocoapods
      - name: Deploy to Cocoapods
        run: sh ./scripts/native-podspec.sh publish
        env:
          COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}


================================================
FILE: .github/workflows/publish-latest.yml
================================================
name: Publish Latest

on: workflow_dispatch

permissions:
  contents: write
  id-token: write
  packages: write

jobs:
  publish-npm-latest:
    uses: ./.github/workflows/publish-npm-latest.yml
    secrets:
      CAP_GH_RELEASE_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
  publish-android:
    needs: publish-npm-latest
    uses: ./.github/workflows/publish-android.yml
    secrets:
      ANDROID_OSSRH_USERNAME: ${{ secrets.ANDROID_OSSRH_USERNAME }}
      ANDROID_OSSRH_PASSWORD: ${{ secrets.ANDROID_OSSRH_PASSWORD }}
      ANDROID_SIGNING_KEY_ID: ${{ secrets.ANDROID_SIGNING_KEY_ID }}
      ANDROID_SIGNING_PASSWORD: ${{ secrets.ANDROID_SIGNING_PASSWORD }}
      ANDROID_SIGNING_KEY: ${{ secrets.ANDROID_SIGNING_KEY }}
      ANDROID_SONATYPE_STAGING_PROFILE_ID: ${{ secrets.ANDROID_SONATYPE_STAGING_PROFILE_ID }}
      CAP_GH_RELEASE_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
  publish-ios:
    needs: publish-npm-latest
    uses: ./.github/workflows/publish-ios.yml
    secrets:
      COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}


================================================
FILE: .github/workflows/publish-npm-alpha.yml
================================================
name: Publish NPM Alpha

on: workflow_dispatch

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-alpha:
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install --force
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:alpha


================================================
FILE: .github/workflows/publish-npm-beta.yml
================================================
name: Publish NPM Beta

on: workflow_dispatch

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-beta:
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:beta


================================================
FILE: .github/workflows/publish-npm-dev.yml
================================================
name: Publish NPM Dev

on: workflow_dispatch

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-dev:
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - name: NPM Install
        run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          echo $GITHUB_REF_NAME
          npm whoami
          npx lerna version prerelease --conventional-commits --conventional-prerelease --preid dev-$(date +"%Y%m%dT%H%M%S") --allow-branch $GITHUB_REF_NAME --force-publish --no-changelog --no-git-tag-version --no-push --yes
          npx lerna exec -- npm publish --tag dev --provenance


================================================
FILE: .github/workflows/publish-npm-latest-from-pre.yml
================================================
name: Publish NPM Latest From Prerelease

on:
  workflow_call:
    secrets:
      CAP_GH_RELEASE_TOKEN:
        required: true
      NPM_TOKEN:
        required: true
  workflow_dispatch:

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-latest:
    if: github.ref == 'refs/heads/main'
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:latest-from-pre


================================================
FILE: .github/workflows/publish-npm-latest.yml
================================================
name: Publish NPM Latest

on:
  workflow_call:
    secrets:
      CAP_GH_RELEASE_TOKEN:
        required: true
      NPM_TOKEN:
        required: true
  workflow_dispatch:

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-latest:
    if: github.ref == 'refs/heads/main'
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:latest


================================================
FILE: .github/workflows/publish-npm-nightly.yml
================================================
name: Publish NPM Nightly

on:
 schedule:
   - cron: '0 15 * * 1-5'

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-nightly:
    if: github.ref == 'refs/heads/main'
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:nightly


================================================
FILE: .github/workflows/publish-npm-rc.yml
================================================
name: Publish NPM RC

on: workflow_dispatch

permissions:
  contents: write
  id-token: write

jobs:
  deploy-npm-rc:
    runs-on: macos-15
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
          token: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: https://registry.npmjs.org/
          cache: npm
          cache-dependency-path: '**/package.json'
      - run: |
          npm install
      - name: Version & Publish
        env:
          GH_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: |
          git config user.name "Github Workflow (on behalf of ${{ github.actor }})"
          git config user.email "users.noreply.github.com"
          npm whoami
          npm run ci:publish:rc


================================================
FILE: .github/workflows/publish-spm-release.yaml
================================================
name: Publish SPM Release

on:
  push:
    tags:
      - "*"

jobs:
  publish-spm:
    runs-on: ubuntu-latest
    steps:
      - name: Assign Tag Number to RELEASE_VERSION environment variable
        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
      - name: Dispatch Release Workflow on ionic-team/capacitor-swift-pm
        run: gh workflow run dispatch-release.yaml -f release-version=${{ env.RELEASE_VERSION }} --repo ionic-team/capacitor-swift-pm
        env:
          GITHUB_TOKEN: ${{ secrets.CAP_GH_RELEASE_TOKEN }}


================================================
FILE: .gitignore
================================================
.idea/
dist/
types/
.sourcemaps
xcuserdata/
node_modules/
Pods/
*.map
.DS_Store
Podfile.lock
Build/*
build/
Index/
.*.sw*
android-template.iml
!/build/.npmkeep
lerna-debug.log
local.properties
contents.xcworkspacedata
android-template/.gradle/
android-template/app/app.iml
.gradle/
.settings/
.project
.env
capacitor-build.log

# Carthage and Carthage-built binaries
Carthage
*.xcframework.zip


================================================
FILE: .npmrc
================================================
package-lock=false

================================================
FILE: .prettierignore
================================================
build
core/types
cli/assets
dist
android/capacitor/src/main/assets/native-bridge.js
ios/Capacitor/Capacitor/assets/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64_x86_64-simulator/Capacitor.framework/native-bridge.js
ios/Frameworks/Capacitor.xcframework/ios-arm64/Capacitor.framework/native-bridge.js


================================================
FILE: .vscode/launch.json
================================================
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug CLI cli/dist/**.js (only works with js files in the cli/dist folder)",
      "skipFiles": [
        "<node_internals>/**"
      ],
      "program": "${workspaceFolder}/cli/bin/capacitor",
      "args": ["${input:capacitorCommand}"],
      "outFiles": [
        "${workspaceFolder}/cli/dist/**/*.js"
      ],
      "sourceMaps": true,
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "cwd": "${input:projectPath}",
      "env": {
        "CLI_PATH": "${workspaceFolder}/cli",
        "CAPACITOR_CLI_PATH": "${workspaceFolder}",
      }
    }
  ],
  "inputs": [
    {
      "id": "capacitorCommand",
      "type": "promptString",
      "description": "Capacitor CLI command to run (e.g. 'doctor')",
      "default": "doctor"
    },
    {
      "id": "projectPath",
      "type": "promptString",
      "description": "Path to the project where you want to run the command",
      "default": "${env:HOME}/repos/capacitor-testapp"
    }
  ]
}


================================================
FILE: CHANGELOG.md
================================================
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [8.2.0](https://github.com/ionic-team/capacitor/compare/8.1.0...8.2.0) (2026-03-06)

### Bug Fixes

- **android:** Add missing null checks in BridgeActivity ([#8185](https://github.com/ionic-team/capacitor/issues/8185)) ([bd29b99](https://github.com/ionic-team/capacitor/commit/bd29b9913a9279de26fc21c6cb0b93b8f5e5433a))
- **android:** Concurrent Range Requests for assets ([#8357](https://github.com/ionic-team/capacitor/issues/8357)) ([5e82c89](https://github.com/ionic-team/capacitor/commit/5e82c89f1bff6d0e9ccea2554007aacb920d4c58))
- **android:** handle lowercase range header ([#8368](https://github.com/ionic-team/capacitor/issues/8368)) ([ae0e2dd](https://github.com/ionic-team/capacitor/commit/ae0e2ddccb2904ee4b3d47d4be1f7556ac7000a1))
- **android:** invalid http range seeking ([#8369](https://github.com/ionic-team/capacitor/issues/8369)) ([3109d22](https://github.com/ionic-team/capacitor/commit/3109d22547253ed44293777c60652f14cf83e416))
- **cli:** Allow to run update on non macOS ([#8344](https://github.com/ionic-team/capacitor/issues/8344)) ([a441280](https://github.com/ionic-team/capacitor/commit/a441280d7c6b310ca516d6fb2736c09525987774))
- **cli:** Don't overwrite config.server section with `--live-reload` ([#7528](https://github.com/ionic-team/capacitor/issues/7528)) ([782b9d9](https://github.com/ionic-team/capacitor/commit/782b9d9c26dcf1282b918996becb0224c0baca1d))
- **cli:** use 8.0.0 as default Capacitor SPM dependency version ([#8341](https://github.com/ionic-team/capacitor/issues/8341)) ([a55dc5e](https://github.com/ionic-team/capacitor/commit/a55dc5ee4dfeab861cde1e11c9063aefea91006b))
- **docs:** fix typo in CapApp-SPM README ([#8348](https://github.com/ionic-team/capacitor/issues/8348)) ([7d001ac](https://github.com/ionic-team/capacitor/commit/7d001ac4c58757fba922ea50f5bf5233ce217490))
- **ios:** remove tmpWindow usages on presentVC/dismissVC ([#8338](https://github.com/ionic-team/capacitor/issues/8338)) ([fc9647f](https://github.com/ionic-team/capacitor/commit/fc9647f26f08ff64f53b32c79fb19f153e3b0a24))

### Features

- **cli:** Add --https option for --live-reload ([#8194](https://github.com/ionic-team/capacitor/issues/8194)) ([5db81e6](https://github.com/ionic-team/capacitor/commit/5db81e68c67652e9d2b29d7ad30629b423d2ad30))

# [8.1.0](https://github.com/ionic-team/capacitor/compare/8.0.2...8.1.0) (2026-02-11)

### Bug Fixes

- **cookies:** only send expires param on web if a date is set ([b10cd7f](https://github.com/ionic-team/capacitor/commit/b10cd7ff15b010a76802374214f4e0cbd04abdab))

### Features

- **cli:** Add packageManager to iOS config ([#8321](https://github.com/ionic-team/capacitor/issues/8321)) ([a125498](https://github.com/ionic-team/capacitor/commit/a1254983bbb9dcb273d93f3c5f639b792e516406))

### Reverts

- revert version bump from [#8319](https://github.com/ionic-team/capacitor/issues/8319) and [#8320](https://github.com/ionic-team/capacitor/issues/8320) ([a48ebb6](https://github.com/ionic-team/capacitor/commit/a48ebb622ea4ebe92927bf1756a4d8ac6012884b))

## [8.0.2](https://github.com/ionic-team/capacitor/compare/8.0.1...8.0.2) (2026-01-27)

### Bug Fixes

- **android:** AGP 9.0 no longer supports `proguard-android.txt` ([#8315](https://github.com/ionic-team/capacitor/issues/8315)) ([dcc76c3](https://github.com/ionic-team/capacitor/commit/dcc76c37508a9b71fb36d95707748c2dd115cf52))
- **cli:** Update tar package ([#8311](https://github.com/ionic-team/capacitor/issues/8311)) ([0969c5c](https://github.com/ionic-team/capacitor/commit/0969c5cd0b16cf23d2489a85a3b8fa1bee2ebf3b))
- **core:** make SystemBars hide and show options optional ([#8305](https://github.com/ionic-team/capacitor/issues/8305)) ([95dc7d8](https://github.com/ionic-team/capacitor/commit/95dc7d8ace3aabdda7e325c4a8ef7d1432ad37e9))
- **SystemBars:** get correct style on handleOnConfigurationChanged ([#8295](https://github.com/ionic-team/capacitor/issues/8295)) ([2a66b44](https://github.com/ionic-team/capacitor/commit/2a66b44915895f971e4a26a8612798aa2f95ea11))
- **SystemBars:** Set window background color according to theme ([#8306](https://github.com/ionic-team/capacitor/issues/8306)) ([6037e38](https://github.com/ionic-team/capacitor/commit/6037e3836ec24c9ddf26e74e5fbec20ab506adfd))
- **SystemBars:** Skipping margin manipulation when on a fixed WebView ([#8309](https://github.com/ionic-team/capacitor/issues/8309)) ([53c33b6](https://github.com/ionic-team/capacitor/commit/53c33b614218bf635322fbdf9a38038a7964e3d4))

## [8.0.1](https://github.com/ionic-team/capacitor/compare/8.0.0...8.0.1) (2026-01-13)

### Bug Fixes

- **android:** Remove calculated bottom inset if keyboard is visible ([#8280](https://github.com/ionic-team/capacitor/issues/8280)) ([196b642](https://github.com/ionic-team/capacitor/commit/196b642236d293a5012e3c307fcd942766e56cce))
- **cli:** Support wireless iOS devices in `cap run` ([#8301](https://github.com/ionic-team/capacitor/issues/8301)) ([dcb368c](https://github.com/ionic-team/capacitor/commit/dcb368c33555487f1b6f46a6d8e30736bdd78955))
- **cli:** use latest native-run ([#8296](https://github.com/ionic-team/capacitor/issues/8296)) ([121d830](https://github.com/ionic-team/capacitor/commit/121d83013f39e25009121533a2c3ad86e428d6b2))

# [8.0.0](https://github.com/ionic-team/capacitor/compare/8.0.0-beta.0...8.0.0) (2025-12-08)

### Bug Fixes

- **cli:** Android apk name multi flavor dimensions parsing ([#7598](https://github.com/ionic-team/capacitor/issues/7598)) ([2dc20ee](https://github.com/ionic-team/capacitor/commit/2dc20ee894c2f5761431caa8269e9f418fc222b6))
- **cli:** make migrate update to 8.0.0 ([#8250](https://github.com/ionic-team/capacitor/issues/8250)) ([ee8ba7b](https://github.com/ionic-team/capacitor/commit/ee8ba7bbeeeef6db0461f7a59c91095fd7cbd78b))
- **ios:** move PrivacyInfo.xcprivacy to resource_bundles to fix build… ([#8264](https://github.com/ionic-team/capacitor/issues/8264)) ([e6f50b8](https://github.com/ionic-team/capacitor/commit/e6f50b8c0c41acaaa21af373e195751508c37e9d))

### Features

- **android:** Improving SystemBars inset handling ([#8268](https://github.com/ionic-team/capacitor/issues/8268)) ([81ae30a](https://github.com/ionic-team/capacitor/commit/81ae30a503797e417dd125b06262dabc4696c88a))

# [8.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/8.0.0-alpha.3...8.0.0-beta.0) (2025-11-14)

### Bug Fixes

- **android-template:** replace deprecated Gradle property name syntax ([#8204](https://github.com/ionic-team/capacitor/issues/8204)) ([e48694b](https://github.com/ionic-team/capacitor/commit/e48694b9e1ff1d3f2de2f8b140cbbeb280d6a21d))
- **android:** add command not changing namespace ([#8224](https://github.com/ionic-team/capacitor/issues/8224)) ([60cf666](https://github.com/ionic-team/capacitor/commit/60cf66675159fb09cd41c94ce657202d01e05c74))
- **android:** remove kotlin-bom dependency ([#8237](https://github.com/ionic-team/capacitor/issues/8237)) ([a894749](https://github.com/ionic-team/capacitor/commit/a89474920569d404e3b19e22e782e656d5b59bdd))
- **android:** replace deprecated Gradle property name syntax ([b68ac9e](https://github.com/ionic-team/capacitor/commit/b68ac9e2dfc3ed292b7879bd7aeaab3d05ac84d5))
- **cli:** fix cap run command for yarn pnp mode ([#7754](https://github.com/ionic-team/capacitor/issues/7754)) ([79ace5c](https://github.com/ionic-team/capacitor/commit/79ace5c7054d86d5b33ce325751ff738c63d4b0c))
- **cli:** replace deprecated Gradle property name syntax ([#8207](https://github.com/ionic-team/capacitor/issues/8207)) ([3912030](https://github.com/ionic-team/capacitor/commit/3912030491a4b252bfd344eb708409dc1a3737e6))
- **ios:** use ReturnPromise for SystemBars returnType ([#8239](https://github.com/ionic-team/capacitor/issues/8239)) ([eb51288](https://github.com/ionic-team/capacitor/commit/eb5128866953281dc7bed88bd734fc3804b3a702))
- make Plugin.resolve act consistently ([#8225](https://github.com/ionic-team/capacitor/issues/8225)) ([06aeb9e](https://github.com/ionic-team/capacitor/commit/06aeb9e85d162d6be9d96820edcb2008cd74da84))

### Features

- **android-template:** Update com.google.gms:google-service version ([#8195](https://github.com/ionic-team/capacitor/issues/8195)) ([ba05dd3](https://github.com/ionic-team/capacitor/commit/ba05dd3da26dbe807e7405f98f4160ba6aea73ce))
- **cli:** Select a cap run target by target name ([#8199](https://github.com/ionic-team/capacitor/issues/8199)) ([b30c472](https://github.com/ionic-team/capacitor/commit/b30c472490117a5dbb14a9556ef1b6ca6e39b45b))
- **iOS:** Allow plugins to hook into handling WebView URL authentication challenges ([#8216](https://github.com/ionic-team/capacitor/issues/8216)) ([e8507cf](https://github.com/ionic-team/capacitor/commit/e8507cfe4d93337ddee8ab6597aab5209ebb4858))
- System Bars Plugin ([#8180](https://github.com/ionic-team/capacitor/issues/8180)) ([a32216a](https://github.com/ionic-team/capacitor/commit/a32216ac0607172a3a9c7ae5cdbfc598769294a6))

# [8.0.0-alpha.3](https://github.com/ionic-team/capacitor/compare/8.0.0-alpha.2...8.0.0-alpha.3) (2025-10-22)

### Bug Fixes

- **cli:** change SPM incompatible plugin message ([#8129](https://github.com/ionic-team/capacitor/issues/8129)) ([28c2a96](https://github.com/ionic-team/capacitor/commit/28c2a96d898b07a05ae763f798e8903601cc3f67))
- **cli:** Don't exclude Cordova plugins from SPM management ([#8140](https://github.com/ionic-team/capacitor/issues/8140)) ([69bbd3d](https://github.com/ionic-team/capacitor/commit/69bbd3dc59cd6f56252c06f23b351952af8661be))
- **cli:** prefer studio executable over studio.sh on linux if available ([#8110](https://github.com/ionic-team/capacitor/issues/8110)) ([62bd16f](https://github.com/ionic-team/capacitor/commit/62bd16f675cb492b52c0b73483fddfd63c608189))
- **ios:** also call bridge.reset() on webViewWebContentProcessDidTerminate ([#8143](https://github.com/ionic-team/capacitor/issues/8143)) ([1de1f15](https://github.com/ionic-team/capacitor/commit/1de1f157169bc0e23060ffabf044c6d391b98efe))
- **ios:** Remove Cordova UIView extension ([#8189](https://github.com/ionic-team/capacitor/issues/8189)) ([0c7bcd3](https://github.com/ionic-team/capacitor/commit/0c7bcd3d10f3e3d5a1259f5096879771f8e26436))
- **ios:** replace deprecation warnings ([#8156](https://github.com/ionic-team/capacitor/issues/8156)) ([e76b29b](https://github.com/ionic-team/capacitor/commit/e76b29b77a7d71ef2341dd3aa530c5d9f291a941))
- **ios:** Silence WKProcessPool warning ([#8184](https://github.com/ionic-team/capacitor/issues/8184)) ([b6abcb7](https://github.com/ionic-team/capacitor/commit/b6abcb7d656ee24e48a5d0dc7b68888b0318fe5d))

# [8.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/8.0.0-alpha.1...8.0.0-alpha.2) (2025-08-20)

**Note:** Version bump only for package capacitor

# [8.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/7.4.2...8.0.0-alpha.1) (2025-08-20)

### Bug Fixes

- http content headers not sent when using axios ([#8039](https://github.com/ionic-team/capacitor/issues/8039)) ([67cac40](https://github.com/ionic-team/capacitor/commit/67cac40660b3e8cc78d1d228b7c6915450948ef1))

### Features

- **android-template:** Bump minSdkVersion to 24 ([#8080](https://github.com/ionic-team/capacitor/issues/8080)) ([c5f9ea9](https://github.com/ionic-team/capacitor/commit/c5f9ea9db85bcf0eaf5d3c67060f10092c434e23))
- **android:** Bump default minSdkVersion to 24 ([#8083](https://github.com/ionic-team/capacitor/issues/8083)) ([c022ddf](https://github.com/ionic-team/capacitor/commit/c022ddf21452379bb183ff7c846f73bd07a15dbf))
- **ios-template:** bump deployment target to 15 ([#8088](https://github.com/ionic-team/capacitor/issues/8088)) ([7a0c09a](https://github.com/ionic-team/capacitor/commit/7a0c09a55428aef3f5af4a59eede70be0b741aa8))

## [7.4.2](https://github.com/ionic-team/capacitor/compare/7.4.1...7.4.2) (2025-07-10)

### Bug Fixes

- **android:** consider display cutout area for insets ([#8042](https://github.com/ionic-team/capacitor/issues/8042)) ([b478211](https://github.com/ionic-team/capacitor/commit/b4782116856c35e3fb567393f10a36ce4632b44c))
- **http:** Properly URL-encode key and values during `x-www-form-urlencoded` POSTs ([#8037](https://github.com/ionic-team/capacitor/issues/8037)) ([87b4641](https://github.com/ionic-team/capacitor/commit/87b4641d1fa32b78e6fc2e87ee7b2c49b625b213))

## [7.4.1](https://github.com/ionic-team/capacitor/compare/7.4.0...7.4.1) (2025-07-03)

**Note:** Version bump only for package capacitor

# [7.4.0](https://github.com/ionic-team/capacitor/compare/7.3.0...7.4.0) (2025-06-18)

### Features

- **cli:** add spm-migration-assistant command ([#7963](https://github.com/ionic-team/capacitor/issues/7963)) ([ef42722](https://github.com/ionic-team/capacitor/commit/ef427225f63056b1731b3cd8941aea2311d3bc4d))
- **cli:** fail cap update on uninstalled cordova dependencies ([#8032](https://github.com/ionic-team/capacitor/issues/8032)) ([b393de8](https://github.com/ionic-team/capacitor/commit/b393de8bc9e68aff2cb70428a7c86c98367feade))

# [7.3.0](https://github.com/ionic-team/capacitor/compare/7.2.0...7.3.0) (2025-06-05)

### Bug Fixes

- add error code checking to `runPlatformHook` ([#7994](https://github.com/ionic-team/capacitor/issues/7994)) ([8717680](https://github.com/ionic-team/capacitor/commit/871768049187afe9f5d358d3fe08b6f18f70533e))
- **cli:** Don't downgrade deployment target on migrate ([#7953](https://github.com/ionic-team/capacitor/issues/7953)) ([46e8792](https://github.com/ionic-team/capacitor/commit/46e87925b675933b413737854b1376eb1c71a23e))
- **cli:** ensures the execution order of CLI hooks ([#7947](https://github.com/ionic-team/capacitor/issues/7947)) ([c3ea809](https://github.com/ionic-team/capacitor/commit/c3ea8094cdd385ac02a5aae89f8b44b6c53d493a))
- **cli:** unexpected error on target device list ([#8015](https://github.com/ionic-team/capacitor/issues/8015)) ([f827c48](https://github.com/ionic-team/capacitor/commit/f827c48f08b13a265e8671291c24f3506e14a094))
- **cli:** use proper build params ([#8016](https://github.com/ionic-team/capacitor/issues/8016)) ([12ce2a4](https://github.com/ionic-team/capacitor/commit/12ce2a486542011c8d6f4cd89a67464f3f27e28d))
- **core:** Prevent error when hasListeners is empty ([#7975](https://github.com/ionic-team/capacitor/issues/7975)) ([a4a0942](https://github.com/ionic-team/capacitor/commit/a4a0942eddba068e078bd782bb093ed1ecff9e00))
- Remove all plugin listeners in bridge reset ([#7962](https://github.com/ionic-team/capacitor/issues/7962)) ([06aeea9](https://github.com/ionic-team/capacitor/commit/06aeea973aa56ac2fb791f893ebd899253ee65f9))

### Features

- **cli:** Initial Cordova plugin SPM support ([#7999](https://github.com/ionic-team/capacitor/issues/7999)) ([c030354](https://github.com/ionic-team/capacitor/commit/c03035426343ddc4e303ca3420e476bb7f1e2201))
- expose `appStartPath` on cap config server configuration ([#8019](https://github.com/ionic-team/capacitor/issues/8019)) ([a274fef](https://github.com/ionic-team/capacitor/commit/a274fef069176a8e528a22f4734d1e29a539709c))
- **ios:** Alternative debug config for SPM ([#7982](https://github.com/ionic-team/capacitor/issues/7982)) ([a054aa5](https://github.com/ionic-team/capacitor/commit/a054aa5bb4d5eabe5da5d42a380bd51b8785958c))

# [7.2.0](https://github.com/ionic-team/capacitor/compare/7.1.0...7.2.0) (2025-03-31)

### Bug Fixes

- **android:** rename bridge layout to avoid collision ([#7919](https://github.com/ionic-team/capacitor/issues/7919)) ([a629f16](https://github.com/ionic-team/capacitor/commit/a629f167b345cda1c44f37131235d14353eff504))
- **cli:** Don't migrate Podfile on SPM projects ([#7939](https://github.com/ionic-team/capacitor/issues/7939)) ([ab4e700](https://github.com/ionic-team/capacitor/commit/ab4e700035289f445668dfd2f86278ffc71ab269))
- **ios:** respect shouldEncodeUrlParams value ([#7931](https://github.com/ionic-team/capacitor/issues/7931)) ([4fb12a0](https://github.com/ionic-team/capacitor/commit/4fb12a03a92c0f38b0d48b114252342f4bdc17bf))

### Features

- **http:** Apply overrideUserAgent to requests ([#7906](https://github.com/ionic-team/capacitor/issues/7906)) ([52482c9](https://github.com/ionic-team/capacitor/commit/52482c9d3c575b737054b41f9d1730c70cc5f471))
- **ios:** Enable Fullscreen API on WebView ([#7909](https://github.com/ionic-team/capacitor/issues/7909)) ([172638e](https://github.com/ionic-team/capacitor/commit/172638ec7b6eb67bf25f8dac2818122ba31c2c91))

# [7.1.0](https://github.com/ionic-team/capacitor/compare/7.0.1...7.1.0) (2025-03-12)

### Bug Fixes

- **android:** add EdgeToEdge compatibility ([#7871](https://github.com/ionic-team/capacitor/issues/7871)) ([64a8bc4](https://github.com/ionic-team/capacitor/commit/64a8bc40de2522c75a94a40cba6c8ccd82481cb8))
- **android:** sanitize portable file name ([#7894](https://github.com/ionic-team/capacitor/issues/7894)) ([5f09297](https://github.com/ionic-team/capacitor/commit/5f092970e33da1ec896efc4e2a5ae3fb77fca658))
- **cli:** don't run bundle if not installed ([#7896](https://github.com/ionic-team/capacitor/issues/7896)) ([ee55f6c](https://github.com/ionic-team/capacitor/commit/ee55f6c54639c1a61fa4f9eed1f366ba2d968b86))
- **core:** use getPlatform instead of platform in cordova.js ([#7902](https://github.com/ionic-team/capacitor/issues/7902)) ([277db7b](https://github.com/ionic-team/capacitor/commit/277db7b48caaf870eefdf701ea99332c4338d7ed))
- **http:** boundary not added for Request objects ([#7897](https://github.com/ionic-team/capacitor/issues/7897)) ([bdaa6f3](https://github.com/ionic-team/capacitor/commit/bdaa6f3c38c33f3a021ac61f2de89101a5b66cff))
- **ios:** don't check isMediaExtension on range requests ([#7868](https://github.com/ionic-team/capacitor/issues/7868)) ([028caa5](https://github.com/ionic-team/capacitor/commit/028caa5378d359fb1004098aa93a24ad0f49a4ae))
- **ios:** listen for CapacitorViewDidAppear ([#7850](https://github.com/ionic-team/capacitor/issues/7850)) ([e24ffb7](https://github.com/ionic-team/capacitor/commit/e24ffb7d4de0bf3d53e92537f21c864f121c1fad))
- **ios:** Reset plugin listeners when WebView process is terminated ([#7905](https://github.com/ionic-team/capacitor/issues/7905)) ([d039157](https://github.com/ionic-team/capacitor/commit/d0391576726955b2c1b484f1ca9a03465b9ef67e))

### Features

- Add function to inject external JS into WebView before document load ([#7864](https://github.com/ionic-team/capacitor/issues/7864)) ([ec0954c](https://github.com/ionic-team/capacitor/commit/ec0954c197543e913939f3ab9c4bcb172bfa3530))
- **android:** add adjustMarginsForEdgeToEdge configuration option ([#7885](https://github.com/ionic-team/capacitor/issues/7885)) ([1ea86d1](https://github.com/ionic-team/capacitor/commit/1ea86d166afd315e72847c5e734a8c175fb90e04))
- **cli:** add more configurations to build command ([#7769](https://github.com/ionic-team/capacitor/issues/7769)) ([90f95d1](https://github.com/ionic-team/capacitor/commit/90f95d1a829f3d87cb46af827b5bfaac319a9694))

## [7.0.1](https://github.com/ionic-team/capacitor/compare/7.0.0...7.0.1) (2025-01-21)

### Bug Fixes

- make migrate use 7.0.0 ([#7837](https://github.com/ionic-team/capacitor/issues/7837)) ([5dc309e](https://github.com/ionic-team/capacitor/commit/5dc309ea8dd7905e9e6236744f29162df80b5ed8))
- use Capacitor 7 for SPM dependency ([#7835](https://github.com/ionic-team/capacitor/issues/7835)) ([640c3cb](https://github.com/ionic-team/capacitor/commit/640c3cb22a62e4b8fb13cd36031d39307622c60a))

# [7.0.0](https://github.com/ionic-team/capacitor/compare/7.0.0-rc.1...7.0.0) (2025-01-20)

**Note:** Version bump only for package capacitor

# [7.0.0-rc.1](https://github.com/ionic-team/capacitor/compare/7.0.0-rc.0...7.0.0-rc.1) (2025-01-20)

**Note:** Version bump only for package capacitor

# [7.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/7.0.0-beta.0...7.0.0-rc.0) (2024-12-20)

**Note:** Version bump only for package capacitor

# [7.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.2...7.0.0-beta.0) (2024-12-20)

### Bug Fixes

- **cli:** correct rimraf import ([#7811](https://github.com/ionic-team/capacitor/issues/7811)) ([0891624](https://github.com/ionic-team/capacitor/commit/0891624c46b78a0fd39f617f834d5cdd1f54f5e6))
- **cli:** update link to telemetry information ([e922e2b](https://github.com/ionic-team/capacitor/commit/e922e2b718f5c6f2e4062cdccdeb92da3321e67d))
- **ios:** Make Bridge webView first responder ([#7753](https://github.com/ionic-team/capacitor/issues/7753)) ([77e4668](https://github.com/ionic-team/capacitor/commit/77e4668fa8dbb24b4561387e101547f74e37538e))

### Features

- Add global initialFocus configuration ([#7775](https://github.com/ionic-team/capacitor/issues/7775)) ([61d0165](https://github.com/ionic-team/capacitor/commit/61d01653685d8e3594d2d8a6bd870fa9643ba95c))

# [7.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/7.0.0-alpha.1...7.0.0-alpha.2) (2024-11-19)

### Bug Fixes

- **cli:** make Cordova plugins use same default kotlin version as Capacitor ([#7752](https://github.com/ionic-team/capacitor/issues/7752)) ([a4aeb55](https://github.com/ionic-team/capacitor/commit/a4aeb55720ecc83b3870bf32bf9825d6aee4644f))

# [7.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/6.1.2...7.0.0-alpha.1) (2024-10-14)

### Bug Fixes

- **android-template:** prevent app restart on bluetooh keyboard changes ([#7652](https://github.com/ionic-team/capacitor/issues/7652)) ([200c7cb](https://github.com/ionic-team/capacitor/commit/200c7cb911898fbfb12b0b25e8cfd1982e0a6bf0))
- **cli:** replace app-store deprecated method on build ([#7637](https://github.com/ionic-team/capacitor/issues/7637)) ([942b108](https://github.com/ionic-team/capacitor/commit/942b108c1d506539c0c53276ed4ec35eed36634e))
- **ios:** fix retain cycle caused by CDVPluginManager ([#7692](https://github.com/ionic-team/capacitor/issues/7692)) ([02bdb3d](https://github.com/ionic-team/capacitor/commit/02bdb3d1d15907dcc577f16b7f2e22050e54ffef))

### Features

- **core:** expose `methodName` via `CAPPluginCall` ([#7641](https://github.com/ionic-team/capacitor/issues/7641)) ([df109aa](https://github.com/ionic-team/capacitor/commit/df109aa1cfa1ea824e22feecbd2b7183a57fc693))
- **ios:** JSValueEncoder/Decoder feature parity with JSONEncoder/Decoder ([#7647](https://github.com/ionic-team/capacitor/issues/7647)) ([410249b](https://github.com/ionic-team/capacitor/commit/410249b6c626e67235f25b466ed4969d52148bd1)), closes [#7576](https://github.com/ionic-team/capacitor/issues/7576)

## [6.1.2](https://github.com/ionic-team/capacitor/compare/6.1.1...6.1.2) (2024-08-07)

### Bug Fixes

- **android:** better cleaning of allowedOrigin url ([#7607](https://github.com/ionic-team/capacitor/issues/7607)) ([d123260](https://github.com/ionic-team/capacitor/commit/d123260c70f26b0e786515ced9c95447f9ee81a0))
- **http:** pass original url as query param on the proxy url ([#7527](https://github.com/ionic-team/capacitor/issues/7527)) ([1da06e6](https://github.com/ionic-team/capacitor/commit/1da06e66cb9cfbf5a5cc48ba6c23cdbe18bc8fc0))
- support dependencies with ".swift" at the end of name ([#7583](https://github.com/ionic-team/capacitor/issues/7583)) ([ceee68a](https://github.com/ionic-team/capacitor/commit/ceee68a2db363e9d9a638aa4ed8569fd82d1013a))

## [6.1.1](https://github.com/ionic-team/capacitor/compare/6.1.0...6.1.1) (2024-07-17)

### Bug Fixes

- **android:** Allow WebView to load blob urls ([#7551](https://github.com/ionic-team/capacitor/issues/7551)) ([0dca917](https://github.com/ionic-team/capacitor/commit/0dca917da54b01c6cf4fcd063f8191a8457d7c93))
- **android:** javascript injection not working on urls with query ([#7545](https://github.com/ionic-team/capacitor/issues/7545)) ([57ce5c6](https://github.com/ionic-team/capacitor/commit/57ce5c65560c34d106e8b88cffe26ad22947bba6))
- **android:** send FormData on older devices ([#7519](https://github.com/ionic-team/capacitor/issues/7519)) ([de8b50d](https://github.com/ionic-team/capacitor/commit/de8b50dc1d87510c5f19d04f30b6be12b51d8482))
- **android:** UTF-8 encode form data value ([#7525](https://github.com/ionic-team/capacitor/issues/7525)) ([a73ed31](https://github.com/ionic-team/capacitor/commit/a73ed318cdb819863425f6b1b7ec23ea53454931))
- **cli:** enable cleartext for live reload ([#7563](https://github.com/ionic-team/capacitor/issues/7563)) ([e06648f](https://github.com/ionic-team/capacitor/commit/e06648f4566c0b80ab420f977e02f1b4cd73fc1f))
- **http:** handle UInt8Array on body ([#7546](https://github.com/ionic-team/capacitor/issues/7546)) ([cfb9ce1](https://github.com/ionic-team/capacitor/commit/cfb9ce175615f69fe86b61af6d51ec2044d147cd))
- **ios:** make removeAllListeners accessible from javascript ([#7566](https://github.com/ionic-team/capacitor/issues/7566)) ([388a822](https://github.com/ionic-team/capacitor/commit/388a8223c60e8eac8437ca4cb26a93ab359f53ad))
- **ios:** Match CapApp-SPM iOS version with project version ([#7556](https://github.com/ionic-team/capacitor/issues/7556)) ([df4dc9a](https://github.com/ionic-team/capacitor/commit/df4dc9a17f1b999a68093091d201ba15d234c5f8))

# [6.1.0](https://github.com/ionic-team/capacitor/compare/6.0.0...6.1.0) (2024-06-11)

### Bug Fixes

- **android:** avoid crash if server url ends in / ([#7426](https://github.com/ionic-team/capacitor/issues/7426)) ([f8264cc](https://github.com/ionic-team/capacitor/commit/f8264ccae1f2fec553521bc62d767c4909ea6d79))
- **cli:** Avoid duplicate entries in packageClassList ([#7470](https://github.com/ionic-team/capacitor/issues/7470)) ([cca0b80](https://github.com/ionic-team/capacitor/commit/cca0b805291bd002c515be0a1c15de84ee23c5d3))
- **cli:** Run sync before updating gradle ([#7497](https://github.com/ionic-team/capacitor/issues/7497)) ([f27786e](https://github.com/ionic-team/capacitor/commit/f27786ea1367bc0ec53697eeb6d654a7e12a1507))
- **http:** don't override readyState for non POST requests ([#7488](https://github.com/ionic-team/capacitor/issues/7488)) ([30c13a8](https://github.com/ionic-team/capacitor/commit/30c13a865e7710e6dc5f0ee014e951d52d030795))
- **ios:** check if urlSchemeTask is stopped before calling its methods ([#7482](https://github.com/ionic-team/capacitor/issues/7482)) ([b32b5b1](https://github.com/ionic-team/capacitor/commit/b32b5b17ed14bd43c846b3fcb930bfd88e245e40))

### Features

- **cli:** run plugin hooks ([#7499](https://github.com/ionic-team/capacitor/issues/7499)) ([3b847ea](https://github.com/ionic-team/capacitor/commit/3b847eac42673c812a4538c319b81c8f8afc9955))
- **ios:** CAPPluginMethod selector-based initializer ([#7412](https://github.com/ionic-team/capacitor/issues/7412)) ([44c5b55](https://github.com/ionic-team/capacitor/commit/44c5b55e36b85471a85ee5a1af47bdb1a5d83a8b))

# [6.0.0](https://github.com/ionic-team/capacitor/compare/6.0.0-rc.2...6.0.0) (2024-04-15)

### Bug Fixes

- **cli:** Change Capacitor plugin files check ([#7375](https://github.com/ionic-team/capacitor/issues/7375)) ([fbfb778](https://github.com/ionic-team/capacitor/commit/fbfb77825fdd3343e85868ea28b8e14a482dcf4a))
- **cli:** Don't downgrade gradle version on migrate ([#7385](https://github.com/ionic-team/capacitor/issues/7385)) ([c79211e](https://github.com/ionic-team/capacitor/commit/c79211ec9dde81a57aca5cee8ab09cdef0c9ad86))
- **cli:** Removing extra dash in android apk name flavor parsing ([#7382](https://github.com/ionic-team/capacitor/issues/7382)) ([3c411fd](https://github.com/ionic-team/capacitor/commit/3c411fd0a400b18c2d032e3b8be3fc4b5449bcbd))
- **http:** Add URLSearchParams support ([#7374](https://github.com/ionic-team/capacitor/issues/7374)) ([9367ecc](https://github.com/ionic-team/capacitor/commit/9367ecc56a0c78249dccdf95dca5006422144289))
- **http:** prevent POST request from being proxied ([#7395](https://github.com/ionic-team/capacitor/issues/7395)) ([7b8c352](https://github.com/ionic-team/capacitor/commit/7b8c3523decd5610dcf09e926640bf35b382d61d))
- secure cookies often are not set by the cookie plugin ([#7261](https://github.com/ionic-team/capacitor/issues/7261)) ([cda1886](https://github.com/ionic-team/capacitor/commit/cda18861aea3ced7835f959cba612cea98761c58))

### Features

- **cli:** Support bun when running cap migrate ([#7386](https://github.com/ionic-team/capacitor/issues/7386)) ([3f96ff9](https://github.com/ionic-team/capacitor/commit/3f96ff911588c517dc2d924f55ef28a25c30bd33))

# [6.0.0-rc.2](https://github.com/ionic-team/capacitor/compare/6.0.0-rc.1...6.0.0-rc.2) (2024-03-25)

### Bug Fixes

- **cli:** also generate packageClassList on copy ([#7358](https://github.com/ionic-team/capacitor/issues/7358)) ([865cceb](https://github.com/ionic-team/capacitor/commit/865cceb1bf7e1b973e8f83f3c77040add71b403c))
- **cli:** use correct pass signature for apksigner signing ([#7365](https://github.com/ionic-team/capacitor/issues/7365)) ([e4f8610](https://github.com/ionic-team/capacitor/commit/e4f86103c2806df4ca2729600361e6338c30f083))
- **http:** change proxy url generation ([#7354](https://github.com/ionic-team/capacitor/issues/7354)) ([318c316](https://github.com/ionic-team/capacitor/commit/318c316847c5b059fb88b46d4acd31e1ced477e5))
- inject cordova files if a cordova plugin is present ([#7363](https://github.com/ionic-team/capacitor/issues/7363)) ([ce9d505](https://github.com/ionic-team/capacitor/commit/ce9d50585b1cab183245197878bf625cf0289275))
- vue 3 log warning causes error on iOS ([#6993](https://github.com/ionic-team/capacitor/issues/6993)) ([87271e2](https://github.com/ionic-team/capacitor/commit/87271e2671013ad35d13b22f2e96d4fe8f4eeaf0))

# [6.0.0-rc.1](https://github.com/ionic-team/capacitor/compare/6.0.0-rc.0...6.0.0-rc.1) (2024-03-15)

### Bug Fixes

- **android:** handle http errors on the proxy ([#7280](https://github.com/ionic-team/capacitor/issues/7280)) ([cca3c80](https://github.com/ionic-team/capacitor/commit/cca3c80298b768a5eaf1da4d95f659e303ed7042))
- **android:** incorrect http url params encoding ([#6586](https://github.com/ionic-team/capacitor/issues/6586)) ([e9ddb0c](https://github.com/ionic-team/capacitor/commit/e9ddb0cfdb1ed320b650e1d01a04d37e644f6dd3))
- **android:** let WebView handle errors ([#7286](https://github.com/ionic-team/capacitor/issues/7286)) ([286b694](https://github.com/ionic-team/capacitor/commit/286b69460f1227a75a9865f91fb51c455fd4370e))
- **android:** make JSInjector replace first <head> only ([#6895](https://github.com/ionic-team/capacitor/issues/6895)) ([93c8a8d](https://github.com/ionic-team/capacitor/commit/93c8a8ddbc547a6a9501e02a73719268228ebdca))
- **android:** prevent crash on script injection if the script is too long ([#7308](https://github.com/ionic-team/capacitor/issues/7308)) ([c9895e8](https://github.com/ionic-team/capacitor/commit/c9895e89aeb69613906fc8a2270f7bf3f4913fda))
- **android:** Remove path from allowedOriginRules ([#7293](https://github.com/ionic-team/capacitor/issues/7293)) ([9eb565c](https://github.com/ionic-team/capacitor/commit/9eb565cddd30888125d1503d1c0a5aa5aa5e48cb))
- **cli:** adjust SPM parameters for build and run commands ([#7342](https://github.com/ionic-team/capacitor/issues/7342)) ([02f8983](https://github.com/ionic-team/capacitor/commit/02f8983300c102125db6b41b0bb174fe41e1785b))
- **cli:** apkName for multi-dimensional flavors ([#6704](https://github.com/ionic-team/capacitor/issues/6704)) ([d7b23f2](https://github.com/ionic-team/capacitor/commit/d7b23f21c554c94029b24d6e0c9ad4635f055759))
- **cli:** Attempt to verify non-cjs modules exist if cjs resolution fails ([#7310](https://github.com/ionic-team/capacitor/issues/7310)) ([663e7b3](https://github.com/ionic-team/capacitor/commit/663e7b383be0ceee1d23b929ceb6374d00faf011))
- **cli:** correct build path for non flavor builds ([#7281](https://github.com/ionic-team/capacitor/issues/7281)) ([0f9651d](https://github.com/ionic-team/capacitor/commit/0f9651d99cdd9cb463e494ed016838cd6d4a34c4))
- **cli:** Migrate variables to newer dependency versions ([#7235](https://github.com/ionic-team/capacitor/issues/7235)) ([aaf01ab](https://github.com/ionic-team/capacitor/commit/aaf01ab938e02220d7e6b5cd9329baa3edd02b68))
- **cli:** remove certificate file extension check on copy ([#7240](https://github.com/ionic-team/capacitor/issues/7240)) ([93a0044](https://github.com/ionic-team/capacitor/commit/93a004473d7c4008bf02e8077460dfbdc3042312))
- **core:** make 'content-type' header count for XMLHttpRequest patch ([#7161](https://github.com/ionic-team/capacitor/issues/7161)) ([26d7f68](https://github.com/ionic-team/capacitor/commit/26d7f688284914c6ef795564ba424119efc32a1c))
- **http:** better handling of active requests and shutting down gracefully ([5d294c9](https://github.com/ionic-team/capacitor/commit/5d294c9b84f09bab649a7112c86959a41a9a4f5e))
- **http:** handle proxy urls with port ([#7273](https://github.com/ionic-team/capacitor/issues/7273)) ([514409a](https://github.com/ionic-team/capacitor/commit/514409aeb93ad65be105bbe2da8d2cd86ff159b0))
- **http:** keep original URL properties on proxy ([#7329](https://github.com/ionic-team/capacitor/issues/7329)) ([cbb6407](https://github.com/ionic-team/capacitor/commit/cbb6407225b42a0d9db4f335a9766f119501021d))
- **http:** Make proxy work with Request objects ([#7348](https://github.com/ionic-team/capacitor/issues/7348)) ([7e68725](https://github.com/ionic-team/capacitor/commit/7e6872573df03ab5cdc10a1a27db3e9fe81a141d))
- **http:** route get requests through custom handler ([#6818](https://github.com/ionic-team/capacitor/issues/6818)) ([b853d06](https://github.com/ionic-team/capacitor/commit/b853d065055b5a819949551be58b62d40b52e37c))
- **http:** set port for proxy url ([#7341](https://github.com/ionic-team/capacitor/issues/7341)) ([a3059dc](https://github.com/ionic-team/capacitor/commit/a3059dca4a7746d9fb7102a7d41f4da80e2f48b4))
- **ios:** Moves `updateBinaryVersion` call to the end of `loadView`. ([#7226](https://github.com/ionic-team/capacitor/issues/7226)) ([7724760](https://github.com/ionic-team/capacitor/commit/77247602ac150797d2375118f702cf9ba39ea957))
- **ios:** overwrite CORS headers on livereload ([#7339](https://github.com/ionic-team/capacitor/issues/7339)) ([0c8d69b](https://github.com/ionic-team/capacitor/commit/0c8d69b7f9c163730e7d74bb0147b61742c61676))
- **spm:** add product lines to Package.swift ([#7278](https://github.com/ionic-team/capacitor/issues/7278)) ([e45d60d](https://github.com/ionic-team/capacitor/commit/e45d60d15445fa55320eb6274de67d4b4191f30a))

### Features

- **webview:** add setServerAssetPath method ([881235b](https://github.com/ionic-team/capacitor/commit/881235b14de23ef988746bfb89a5a0fc3c8d8466))

# [6.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/6.0.0-beta.2...6.0.0-rc.0) (2024-01-23)

### Bug Fixes

- **android:** don't proxy requests if no jsInjector ([#7199](https://github.com/ionic-team/capacitor/issues/7199)) ([7dc5585](https://github.com/ionic-team/capacitor/commit/7dc5585996c17eedd154b5d9118eb880fef616fe))
- **android:** handle deprecation warnings ([#7190](https://github.com/ionic-team/capacitor/issues/7190)) ([06636d7](https://github.com/ionic-team/capacitor/commit/06636d73a1b12c8f932642ee7caf91432690fea5))
- **cli:** correctly build and sign Android apps using Flavors ([#7082](https://github.com/ionic-team/capacitor/issues/7082)) ([7d3a99d](https://github.com/ionic-team/capacitor/commit/7d3a99d15ba024b4bde9e698e57937002da38bd4))
- **cli:** Specify keystore alias and alias password build options for apksigner ([#7073](https://github.com/ionic-team/capacitor/issues/7073)) ([6612c49](https://github.com/ionic-team/capacitor/commit/6612c49f5fde5ef2fee555206018391fc00e2be0))
- **cli:** type only import in config ([#6765](https://github.com/ionic-team/capacitor/issues/6765)) ([2b493ae](https://github.com/ionic-team/capacitor/commit/2b493ae77b9ee6e5fbcb2fafb27bc04693d7e02b))
- **cli:** Update plugins with breaking changes ([#7148](https://github.com/ionic-team/capacitor/issues/7148)) ([b8c2a92](https://github.com/ionic-team/capacitor/commit/b8c2a92390f21fe653563d7bad73a3f2b5628acb))
- remove duplicates from auto registration array using set ([#7192](https://github.com/ionic-team/capacitor/issues/7192)) ([c4984ae](https://github.com/ionic-team/capacitor/commit/c4984ae4433602dbe028f72736cb6e56e8f92bf9))
- stop crashing from `objc_getClassList` ([#7187](https://github.com/ionic-team/capacitor/issues/7187)) ([e148db7](https://github.com/ionic-team/capacitor/commit/e148db7758e4186ad45fd74185a10fb757ff9b29))
- **web:** Implement `retainUntilConsumed` on notifyListeners ([#7127](https://github.com/ionic-team/capacitor/issues/7127)) ([526292e](https://github.com/ionic-team/capacitor/commit/526292eb273ee7d8fa9a9912ce3b59e9a104c19e))

### Features

- **android:** Load alternative layout when no WebView ([#7141](https://github.com/ionic-team/capacitor/issues/7141)) ([87c399a](https://github.com/ionic-team/capacitor/commit/87c399ab6b41f217b4d8a58bfb916a5d78641fd0))
- **cli:** allow async in capacitor config file ([#4299](https://github.com/ionic-team/capacitor/issues/4299)) ([5cecc3e](https://github.com/ionic-team/capacitor/commit/5cecc3ee22868f9397792ec80a4b753a07b68f30))
- **ios:** Replace usage of UserDefaults with KeyValueStore. ([#7191](https://github.com/ionic-team/capacitor/issues/7191)) ([cd58ba2](https://github.com/ionic-team/capacitor/commit/cd58ba2a654f40bf72616f430d7b9604b283e23d))

# [6.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/6.0.0-beta.1...6.0.0-beta.2) (2023-12-14)

**Note:** Version bump only for package capacitor

# [6.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/6.0.0-beta.0...6.0.0-beta.1) (2023-12-14)

### Bug Fixes

- **ios:** Add Codable folder to podspec source_files ([#7131](https://github.com/ionic-team/capacitor/issues/7131)) ([04d1d55](https://github.com/ionic-team/capacitor/commit/04d1d557b51fcac31281a3f547300f06c6dacfb2))

# [6.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/6.0.0-alpha.2...6.0.0-beta.0) (2023-12-13)

### Bug Fixes

- **http:** parse readablestream data on fetch request objects ([#6919](https://github.com/ionic-team/capacitor/issues/6919)) ([80ec3b7](https://github.com/ionic-team/capacitor/commit/80ec3b73db18b7b6841bf90ed50a67389946ab87))
- **http:** properly write form-urlencoded data on android request body ([#7001](https://github.com/ionic-team/capacitor/issues/7001)) ([a986ee5](https://github.com/ionic-team/capacitor/commit/a986ee541f54a1d3ac637b514fe547b224b36903))
- **http:** set formdata boundary and body when content-type not explicitly set ([0c2ccd9](https://github.com/ionic-team/capacitor/commit/0c2ccd910a92ce3deaa67eb1819a4faa39c6af6e))
- **ios:** add some new cordova-ios classes used by Cordova plugins ([#7096](https://github.com/ionic-team/capacitor/issues/7096)) ([3db9051](https://github.com/ionic-team/capacitor/commit/3db9051eb015cf5f402f81b4cbaa7b27a5c9477a))

### Features

- **ios:** Add Codable support for CAPPluginCall and JSValueContainer ([#7119](https://github.com/ionic-team/capacitor/issues/7119)) ([af417e0](https://github.com/ionic-team/capacitor/commit/af417e0cbbb1a3a7b3b62756eebb8d1dc0952cc4))
- support for Amazon Fire WebView ([#6603](https://github.com/ionic-team/capacitor/issues/6603)) ([3cb4eb8](https://github.com/ionic-team/capacitor/commit/3cb4eb89632bce8dc872418fdb130bfd4de40b68))

# [6.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/6.0.0-alpha.1...6.0.0-alpha.2) (2023-11-15)

### Bug Fixes

- **ios:** Remove CocoaPods Xcode 15 workaround that causes issues ([#7059](https://github.com/ionic-team/capacitor/issues/7059)) ([043a8db](https://github.com/ionic-team/capacitor/commit/043a8dba4059e33c7445696c186110bef1130e16))

# [6.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/5.2.3...6.0.0-alpha.1) (2023-11-08)

### Bug Fixes

- allow double quotes in Gemfile ([#6903](https://github.com/ionic-team/capacitor/issues/6903)) ([3abdbed](https://github.com/ionic-team/capacitor/commit/3abdbed38844d5d59d244f6f0dfc2647f29ce446))
- **android:** handle webview version for developer builds ([#6907](https://github.com/ionic-team/capacitor/issues/6907)) ([88498e6](https://github.com/ionic-team/capacitor/commit/88498e6228492a9ae917d3a7b37c242881f9fe52))
- **android:** make local urls use unpatched fetch ([#6953](https://github.com/ionic-team/capacitor/issues/6953)) ([e50e56c](https://github.com/ionic-team/capacitor/commit/e50e56c5231f230497d1bd420e02e2e065c38f86))
- **android:** Use Logger class instead of Log in CapacitorCookieManager ([#6923](https://github.com/ionic-team/capacitor/issues/6923)) ([8aaa356](https://github.com/ionic-team/capacitor/commit/8aaa356ab1f14b56df821e8ac0bb7e43bfa094fa))
- **cli:** force latest native-run version for iOS 17 support ([#6926](https://github.com/ionic-team/capacitor/issues/6926)) ([7e7c8b9](https://github.com/ionic-team/capacitor/commit/7e7c8b9113f541d530c5883dea1f52b2957c0859))
- **cli:** Pin @ionic/utils-subprocess version ([#7057](https://github.com/ionic-team/capacitor/issues/7057)) ([0ac019a](https://github.com/ionic-team/capacitor/commit/0ac019a36070b4cb9917a82e406453169c7d5559))
- **cli:** use helper in Podfile with correct path ([#6878](https://github.com/ionic-team/capacitor/issues/6878)) ([8e95be9](https://github.com/ionic-team/capacitor/commit/8e95be9f91169e258ab5cdd8fd673106392b8429))
- **cli:** Use latest native-run ([#7023](https://github.com/ionic-team/capacitor/issues/7023)) ([4125160](https://github.com/ionic-team/capacitor/commit/412516069e15fbdbc17ad130c2f3a67891b6bc45))
- **cookies:** remove session cookies when initializing the cookie manager ([037863b](https://github.com/ionic-team/capacitor/commit/037863bea6f3a00978125dc2f8ecba1e896c0740))
- **http:** add support for Request objects in fetch ([24b3cc1](https://github.com/ionic-team/capacitor/commit/24b3cc113e3d8aae5d85dbf2d25bec0c35136477))
- **http:** disconnect active connections if call or bridge is destroyed ([a1ed6cc](https://github.com/ionic-team/capacitor/commit/a1ed6cc6f07465d683b95e3796d944f863a7b857))
- **http:** inherit object properties on window.XMLHttpRequest ([91c11d0](https://github.com/ionic-team/capacitor/commit/91c11d06f773c45a10f6f2d52f672ae6f189b162))
- **http:** return numbers and booleans as-is when application/json is the content type ([03dd3f9](https://github.com/ionic-team/capacitor/commit/03dd3f96c7ee75b6fff2b7c40d0c9a58fb04fce5))
- **ios-template:** added workaround for Cocoapods bug in XC15 ([#6847](https://github.com/ionic-team/capacitor/issues/6847)) ([10ccc76](https://github.com/ionic-team/capacitor/commit/10ccc769b67eda12a2899c447949a4865d3e9954))
- Update migrate to Capacitor 6 ([#6872](https://github.com/ionic-team/capacitor/issues/6872)) ([98eec8f](https://github.com/ionic-team/capacitor/commit/98eec8fe9fd332d6669965fa5a21412233b3e06e))

### Features

- add livereload to run command ([#6831](https://github.com/ionic-team/capacitor/issues/6831)) ([4099969](https://github.com/ionic-team/capacitor/commit/4099969f70e9b995182bacecc16e160d89bbc746))
- Add the spm root project to the template ([#6877](https://github.com/ionic-team/capacitor/issues/6877)) ([02c44c2](https://github.com/ionic-team/capacitor/commit/02c44c2d9ed1b76a72b0f8a2c338b556133c9582))
- Add XCFrameworks ([#7020](https://github.com/ionic-team/capacitor/issues/7020)) ([5306095](https://github.com/ionic-team/capacitor/commit/53060955dc83cdbfda66bed60c2efcba395a9ca8))
- **android:** allow developers to provide logic for onRenderProcessGone in WebViewListener ([#6966](https://github.com/ionic-team/capacitor/issues/6966)) ([79e17bb](https://github.com/ionic-team/capacitor/commit/79e17bb5e6ccd813bddc626703152d3983f6d93b))
- better support monorepos ([#6811](https://github.com/ionic-team/capacitor/issues/6811)) ([ae35e29](https://github.com/ionic-team/capacitor/commit/ae35e29fb8c886dea867683a23a558d2d344073b))
- **ios:** Makes CapacitorBridge, WebViewAssetHandler, and WebViewDelegationHandler open classes, along with several of their methods ([#7009](https://github.com/ionic-team/capacitor/issues/7009)) ([40d62cb](https://github.com/ionic-team/capacitor/commit/40d62cbce950c2f3972764fe134cc37f2343f33d))
- modify package.swift on update and sync ([#7042](https://github.com/ionic-team/capacitor/issues/7042)) ([24573fb](https://github.com/ionic-team/capacitor/commit/24573fb864c43551e2ce42721b45ff901155627d))

# [5.6.0](https://github.com/ionic-team/capacitor/compare/5.5.1...5.6.0) (2023-12-14)

### Bug Fixes

- **cli:** Use latest native-run ([#7030](https://github.com/ionic-team/capacitor/issues/7030)) ([1d948d4](https://github.com/ionic-team/capacitor/commit/1d948d4df6b6b6f8cfdc02e72d84ae8be963f4a0))
- **http:** properly write form-urlencoded data on android request body ([#7130](https://github.com/ionic-team/capacitor/issues/7130)) ([a745a89](https://github.com/ionic-team/capacitor/commit/a745a89e18a5082ae4e737d78aa20929f6952382))
- **http:** set formdata boundary and body when content-type not explicitly set ([#7133](https://github.com/ionic-team/capacitor/issues/7133)) ([3862d6e](https://github.com/ionic-team/capacitor/commit/3862d6e6721793d78add9acf5b14fd9a8f7a5b60))
- **ios:** add some new cordova-ios classes used by Cordova plugins ([#7115](https://github.com/ionic-team/capacitor/issues/7115)) ([5fb902b](https://github.com/ionic-team/capacitor/commit/5fb902b232d9afded2edc865c8d3c0c0e7efe5e7))

### Features

- support for Amazon Fire WebView ([#6603](https://github.com/ionic-team/capacitor/issues/6603)) ([#7129](https://github.com/ionic-team/capacitor/issues/7129)) ([421d2c0](https://github.com/ionic-team/capacitor/commit/421d2c02e4d1954d16d573facae9c235fee60f02))

## [5.5.1](https://github.com/ionic-team/capacitor/compare/5.5.0...5.5.1) (2023-10-25)

### Bug Fixes

- **ios:** CAPWebView config update ([#7004](https://github.com/ionic-team/capacitor/issues/7004)) ([f3e8be0](https://github.com/ionic-team/capacitor/commit/f3e8be0453c31f74a2fdf4c9a6d8d7967a6b5c20))

# [5.5.0](https://github.com/ionic-team/capacitor/compare/5.4.2...5.5.0) (2023-10-11)

### Features

- **android:** allow developers to provide logic for onRenderProcessGone in WebViewListener ([#6946](https://github.com/ionic-team/capacitor/issues/6946)) ([34b724a](https://github.com/ionic-team/capacitor/commit/34b724a4cf406c23b2a9952ef81e0327b78a3b3a))

## [5.4.2](https://github.com/ionic-team/capacitor/compare/5.4.1...5.4.2) (2023-10-04)

### Bug Fixes

- **android:** make local urls use unpatched fetch ([#6954](https://github.com/ionic-team/capacitor/issues/6954)) ([56fb853](https://github.com/ionic-team/capacitor/commit/56fb8536af53f4f4ee49b9394fd966ad514b9458))

## [5.4.1](https://github.com/ionic-team/capacitor/compare/5.4.0...5.4.1) (2023-09-21)

### Bug Fixes

- **android:** handle webview version for developer builds ([#6911](https://github.com/ionic-team/capacitor/issues/6911)) ([b5b0398](https://github.com/ionic-team/capacitor/commit/b5b0398a7fe117a824f97125f5feabe81073daf3))
- **android:** Use Logger class instead of Log in CapacitorCookieManager ([#6925](https://github.com/ionic-team/capacitor/issues/6925)) ([b6901e0](https://github.com/ionic-team/capacitor/commit/b6901e01e05cd22a71841d2f5821fbe2a6939ead))
- **cli:** force latest native-run version for iOS 17 support ([#6928](https://github.com/ionic-team/capacitor/issues/6928)) ([f9be9f5](https://github.com/ionic-team/capacitor/commit/f9be9f5791e6f0881be2c73bb8fbe7a8c1b10848))
- **cookies:** retrieve cookies when using a custom android scheme ([6b5ddad](https://github.com/ionic-team/capacitor/commit/6b5ddad8b36e33ef4171f6da5cc311ed3f634ac6))
- **http:** parse readablestream data on fetch request objects ([3fe0642](https://github.com/ionic-team/capacitor/commit/3fe06426bd20713e2322780b70bc5d97ad371fae))
- **http:** return xhr response headers case insensitive ([687b6b1](https://github.com/ionic-team/capacitor/commit/687b6b1780506c17fb73ed1d9cbf50c1d1e40ef1))
- **ios:** Add workaround for CocoaPods problem on Xcode 15 ([#6921](https://github.com/ionic-team/capacitor/issues/6921)) ([1ffa244](https://github.com/ionic-team/capacitor/commit/1ffa2441fc8a04e4bf1712d0afb868a83e7f1951))

# [5.4.0](https://github.com/ionic-team/capacitor/compare/5.3.0...5.4.0) (2023-09-14)

### Bug Fixes

- **cli:** use helper in Podfile with correct path ([#6888](https://github.com/ionic-team/capacitor/issues/6888)) ([9048432](https://github.com/ionic-team/capacitor/commit/9048432755095ce3dcca9d3bab39894f2b6c3967))
- **http:** add support for defining xhr and angular http response types ([09bd040](https://github.com/ionic-team/capacitor/commit/09bd040dfe4b8808d7499b6ee592005420406cac))
- **http:** add support for Request objects in fetch ([2fe4535](https://github.com/ionic-team/capacitor/commit/2fe4535e781b1a5cfa0f3359c1afa5c360073b6a))
- **http:** inherit object properties on window.XMLHttpRequest ([5cd3b2f](https://github.com/ionic-team/capacitor/commit/5cd3b2fa6d6936864e1aab2e98963df2d4da3b95))

### Features

- add livereload to run command ([#6831](https://github.com/ionic-team/capacitor/issues/6831)) ([54a63ae](https://github.com/ionic-team/capacitor/commit/54a63ae0a5f0845d5ef2c0d10bd0c27682866940))

# [5.3.0](https://github.com/ionic-team/capacitor/compare/5.2.3...5.3.0) (2023-08-23)

### Bug Fixes

- **cookies:** remove session cookies when initializing the cookie manager ([037863b](https://github.com/ionic-team/capacitor/commit/037863bea6f3a00978125dc2f8ecba1e896c0740))
- **http:** disconnect active connections if call or bridge is destroyed ([a1ed6cc](https://github.com/ionic-team/capacitor/commit/a1ed6cc6f07465d683b95e3796d944f863a7b857))
- **http:** return numbers and booleans as-is when application/json is the content type ([03dd3f9](https://github.com/ionic-team/capacitor/commit/03dd3f96c7ee75b6fff2b7c40d0c9a58fb04fce5))

### Features

- better support monorepos ([#6811](https://github.com/ionic-team/capacitor/issues/6811)) ([ae35e29](https://github.com/ionic-team/capacitor/commit/ae35e29fb8c886dea867683a23a558d2d344073b))

## [5.2.3](https://github.com/ionic-team/capacitor/compare/5.2.2...5.2.3) (2023-08-10)

### Bug Fixes

- **android:** allow single input file selection from samsumg gallery ([#6778](https://github.com/ionic-team/capacitor/issues/6778)) ([3d57ecd](https://github.com/ionic-team/capacitor/commit/3d57ecdf7631d1581047bd5d9f86ea657ecad845))
- **android:** avoid R8 optimizations remove plugin classes ([#6783](https://github.com/ionic-team/capacitor/issues/6783)) ([cc85df5](https://github.com/ionic-team/capacitor/commit/cc85df5f3a6999883623054573bafc30665e41e7))
- **cli:** remove package related checks on doctor command ([#6773](https://github.com/ionic-team/capacitor/issues/6773)) ([4499b6b](https://github.com/ionic-team/capacitor/commit/4499b6bb6c52e9bc7fdfdb35ee2519881996eedf))
- **cli:** signing type option issue ([#6716](https://github.com/ionic-team/capacitor/issues/6716)) ([ee0f745](https://github.com/ionic-team/capacitor/commit/ee0f7457e458ca4bb4eb74f67552ac2ace76016b))
- **cookies:** hide httpOnly cookies from client ([0cc927e](https://github.com/ionic-team/capacitor/commit/0cc927ef5f0f7076a6d486d666d78483f1d71c54))
- **http:** return valid response for relative url xhr requests ([bde6569](https://github.com/ionic-team/capacitor/commit/bde65696218f97a8328041f137457f46e5eb766a))

## [5.2.2](https://github.com/ionic-team/capacitor/compare/5.2.1...5.2.2) (2023-07-19)

### Bug Fixes

- add http method to prototype.open ([#6740](https://github.com/ionic-team/capacitor/issues/6740)) ([1fd2d87](https://github.com/ionic-team/capacitor/commit/1fd2d8762ff2341a8fe20eec9e774c6a29576e88))

## [5.2.1](https://github.com/ionic-team/capacitor/compare/5.2.0...5.2.1) (2023-07-13)

### Bug Fixes

- allow single parameter on setRequestBody ([#6728](https://github.com/ionic-team/capacitor/issues/6728)) ([5343bdb](https://github.com/ionic-team/capacitor/commit/5343bdb60d26849cd8f9c8ff28ba7d9ddbd05b26))

# [5.2.0](https://github.com/ionic-team/capacitor/compare/5.1.1...5.2.0) (2023-07-12)

### Bug Fixes

- **cli:** make migrate not error if there are no dependencies ([#6707](https://github.com/ionic-team/capacitor/issues/6707)) ([25ca83a](https://github.com/ionic-team/capacitor/commit/25ca83a8a76fe0eaf73c0db24fd950b33fd16063))
- **cookies:** sanitize url before retrieving/setting cookies ([ca40634](https://github.com/ionic-team/capacitor/commit/ca4063471f215d3f7525e51592d9c72138a52855))
- **http:** fire events in correct order when using xhr ([5ed3617](https://github.com/ionic-team/capacitor/commit/5ed361787596bb5949f6ae5e366495f296352bf3))

### Features

- **http:** support for FormData requests ([#6708](https://github.com/ionic-team/capacitor/issues/6708)) ([849c564](https://github.com/ionic-team/capacitor/commit/849c56458205bea3b078b1ee19807d7fd84c47b1))

## [5.1.1](https://github.com/ionic-team/capacitor/compare/5.1.0...5.1.1) (2023-07-05)

### Bug Fixes

- **ios:** Revert server url addition for CAPWebView. ([#6705](https://github.com/ionic-team/capacitor/issues/6705)) ([1b8352d](https://github.com/ionic-team/capacitor/commit/1b8352dc5124dc3f57d7881d619537cbf8c3674b))

# [5.1.0](https://github.com/ionic-team/capacitor/compare/5.0.5...5.1.0) (2023-06-29)

### Bug Fixes

- **android:** Move bridge localUrl initialization to initWebView ([#6685](https://github.com/ionic-team/capacitor/issues/6685)) ([7f5f0ca](https://github.com/ionic-team/capacitor/commit/7f5f0ca4220d40d6a19c778c18f9534ef3b65899))
- **android:** revert cookie manager initialization to plugin load ([53a2d47](https://github.com/ionic-team/capacitor/commit/53a2d4792e026a89723a672a01fc34990add71f0))
- **ios:** Return proper MIME Type for local WASM files ([#6675](https://github.com/ionic-team/capacitor/issues/6675)) ([d7856de](https://github.com/ionic-team/capacitor/commit/d7856de62a4c058ac474ae91a5fd221dabf99c0a))
- **ios:** set cors headers in asset handler for live reload ([e5a1c81](https://github.com/ionic-team/capacitor/commit/e5a1c81fe81904dfd7e3f5100a04088173effc1c))

### Features

- **android:** add check for excluded domains before ssl request ([7906d36](https://github.com/ionic-team/capacitor/commit/7906d3616e8bfb2e2c1c81ee123424c06fc4e5ab))
- **cli:** add apksigner as a build option ([#6442](https://github.com/ionic-team/capacitor/issues/6442)) ([9818a76](https://github.com/ionic-team/capacitor/commit/9818a76ab4ea6660b444354f239344d37c77d3b3))
- export buildRequestInit function so we can use for downloadFile ([95b0575](https://github.com/ionic-team/capacitor/commit/95b0575e3fbc1b1408aa69b61c58e18bf8882cea)

  )

## [5.0.5](https://github.com/ionic-team/capacitor/compare/5.0.4...5.0.5) (2023-06-09)

### Bug Fixes

- **http:** don't throw errors when content-type is null on response ([#6627](https://github.com/ionic-team/capacitor/issues/6627)) ([538821f](https://github.com/ionic-team/capacitor/commit/538821f267aa3b79548fed6aaea8880ff949ffdd))

## [5.0.4](https://github.com/ionic-team/capacitor/compare/5.0.3...5.0.4) (2023-05-23)

### Bug Fixes

- **cicd:** removed `set -eo pipefail` to allow job to continue ([#6596](https://github.com/ionic-team/capacitor/issues/6596)) ([caeeb09](https://github.com/ionic-team/capacitor/commit/caeeb090922a5f7e56b1629209cb4227ae60da07))
- **cli:** correct migration of package from AndroidManifest.xml to build.gradle ([#6607](https://github.com/ionic-team/capacitor/issues/6607)) ([1c26a3e](https://github.com/ionic-team/capacitor/commit/1c26a3e57f356a0972bd43854ca86770a49f2d63))
- **cli:** Don't succeed migration if npm install failed ([#6595](https://github.com/ionic-team/capacitor/issues/6595)) ([6843d96](https://github.com/ionic-team/capacitor/commit/6843d9642fad9a322579cbe5f01563929a83dbf5))
- **cli:** proper plugin module patch in monorepos ([#6589](https://github.com/ionic-team/capacitor/issues/6589)) ([d49e632](https://github.com/ionic-team/capacitor/commit/d49e6324ab5e0bea58ff6ca32feb7ea39d33a772))

## [5.0.3](https://github.com/ionic-team/capacitor/compare/5.0.2...5.0.3) (2023-05-10)

**Note:** Version bump only for package capacitor

## [5.0.2](https://github.com/ionic-team/capacitor/compare/5.0.1...5.0.2) (2023-05-09)

### Bug Fixes

- **cli:** handle unrecognized java --version ([#6577](https://github.com/ionic-team/capacitor/issues/6577)) ([56b0037](https://github.com/ionic-team/capacitor/commit/56b0037a70d64019563b6e55e53de423f471fe2f))
- **cli:** Move package to build.gradle in Capacitor plugins ([#6569](https://github.com/ionic-team/capacitor/issues/6569)) ([8cb26cd](https://github.com/ionic-team/capacitor/commit/8cb26cd97a4f9cf59abb6b3828a07555a6af0b15))
- fallback to plain `pod` if `Gemfile` does not contain CocoaPods ([#6581](https://github.com/ionic-team/capacitor/issues/6581)) ([3a41b4c](https://github.com/ionic-team/capacitor/commit/3a41b4c1b70af7a45201fb11b04dc5558893aa7e))

## [5.0.1](https://github.com/ionic-team/capacitor/compare/5.0.0...5.0.1) (2023-05-05)

### Bug Fixes

- **cli:** install minor Capacitor 5 version ([#6562](https://github.com/ionic-team/capacitor/issues/6562)) ([f4af0a2](https://github.com/ionic-team/capacitor/commit/f4af0a298fb5a5f8257f175327058341a230ae4f))
- **cli:** Update migration link ([#6560](https://github.com/ionic-team/capacitor/issues/6560)) ([e03062e](https://github.com/ionic-team/capacitor/commit/e03062e6025fea0edfabbff2081b3f91017aece4))

# [5.0.0](https://github.com/ionic-team/capacitor/compare/5.0.0-rc.3...5.0.0) (2023-05-03)

**Note:** Version bump only for package capacitor

# [5.0.0-rc.3](https://github.com/ionic-team/capacitor/compare/5.0.0-rc.2...5.0.0-rc.3) (2023-05-03)

**Note:** Version bump only for package capacitor

# [5.0.0-rc.2](https://github.com/ionic-team/capacitor/compare/5.0.0-rc.1...5.0.0-rc.2) (2023-05-03)

### Bug Fixes

- check for android and JDK ([#6554](https://github.com/ionic-team/capacitor/issues/6554)) ([ddcc818](https://github.com/ionic-team/capacitor/commit/ddcc818e828b290459d3ddffe9102fc312139823))

# [5.0.0-rc.1](https://github.com/ionic-team/capacitor/compare/5.0.0-rc.0...5.0.0-rc.1) (2023-05-02)

### Bug Fixes

- **cli:** Avoid infinite loop in namespace migration ([#6551](https://github.com/ionic-team/capacitor/issues/6551)) ([d3aacde](https://github.com/ionic-team/capacitor/commit/d3aacdeb0c86d3941464954e7d1f582e405be489))
- **cli:** Migrate more plugin variables ([#6552](https://github.com/ionic-team/capacitor/issues/6552)) ([b7da5b9](https://github.com/ionic-team/capacitor/commit/b7da5b988ce7da5ea3991eaec46b9e52ff3635f1))

# [5.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/5.0.0-beta.3...5.0.0-rc.0) (2023-05-01)

**Note:** Version bump only for package capacitor

# [5.0.0-beta.3](https://github.com/ionic-team/capacitor/compare/5.0.0-beta.2...5.0.0-beta.3) (2023-04-21)

### Bug Fixes

- **cookies:** init cookie manager after server url is set ([0ee772f](https://github.com/ionic-team/capacitor/commit/0ee772ff6456ad0948a0dd025dfcf2658a5563a0))

### Features

- **android:** update gradle to 8.0.2 and gradle plugin to 8.0.0 ([#6497](https://github.com/ionic-team/capacitor/issues/6497)) ([01b5b39](https://github.com/ionic-team/capacitor/commit/01b5b399324ae5d0896989478a6910fb946542d7))
- **cli:** android manifest to build.gradle migration ([#6533](https://github.com/ionic-team/capacitor/issues/6533)) ([245b6ab](https://github.com/ionic-team/capacitor/commit/245b6ab85b0f481f08c21e25f2b2a7eb6da9996c))
- **cli:** Migrate update to gradle 8 ([#6530](https://github.com/ionic-team/capacitor/issues/6530)) ([da3ac0e](https://github.com/ionic-team/capacitor/commit/da3ac0e72c0559223e9b91f31830810d39638734))

# [5.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/5.0.0-beta.1...5.0.0-beta.2) (2023-04-13)

### Bug Fixes

- **android:** launching intents without host ([#6489](https://github.com/ionic-team/capacitor/issues/6489)) ([95f7474](https://github.com/ionic-team/capacitor/commit/95f747401ac5a666de4338a18666060e9c1ff39e))
- **android:** unify kotlin dependency version ([#6501](https://github.com/ionic-team/capacitor/issues/6501)) ([0a40477](https://github.com/ionic-team/capacitor/commit/0a4047768cbde9bc17d92955e64ab11d2e3b3335))
- **cookies:** check isEnabled before setting cookieHandler ([bb04f24](https://github.com/ionic-team/capacitor/commit/bb04f24f0b4a99e46ed5ca047d3d3df81804d516))
- **ios/android:** copy url from nativeResponse to response ([#6482](https://github.com/ionic-team/capacitor/issues/6482)) ([828fb71](https://github.com/ionic-team/capacitor/commit/828fb71ebb52c0655d5879ad0edaac7368ab2b96))
- remove accept-charset ([#6386](https://github.com/ionic-team/capacitor/issues/6386)) ([bbf6f7e](https://github.com/ionic-team/capacitor/commit/bbf6f7e1af0c49c0bc917942b6715c613be3f557))

### Features

- **ios:** Add Bundler support ([#5205](https://github.com/ionic-team/capacitor/issues/5205)) ([f21c6d0](https://github.com/ionic-team/capacitor/commit/f21c6d01fc30e46c151afc93da9727dbf6c9ddcf))
- **ios:** add webContentsDebuggingEnabled configuration ([#6495](https://github.com/ionic-team/capacitor/issues/6495)) ([c691e4a](https://github.com/ionic-team/capacitor/commit/c691e4aecbfb7a45ce0465d1fe9020ab715815d3))

# [5.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/5.0.0-beta.0...5.0.0-beta.1) (2023-04-03)

### Bug Fixes

- copy url from nativeResponse to response in native-bridge.ts ([#6397](https://github.com/ionic-team/capacitor/issues/6397)) ([e81a2ff](https://github.com/ionic-team/capacitor/commit/e81a2ff42ddd446f3004ab5af6e74209f7ff076a))

### Features

- **cli:** add npm update step to migrate ([#6462](https://github.com/ionic-team/capacitor/issues/6462)) ([65520c3](https://github.com/ionic-team/capacitor/commit/65520c36cdb4ac6f8811eb72624c447f2a0d884a))
- **cli:** non interactive migrate ([#6461](https://github.com/ionic-team/capacitor/issues/6461)) ([53dfeaf](https://github.com/ionic-team/capacitor/commit/53dfeaf77ace5b165260b68351eae8e5bf72ea0a))

# [5.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/5.0.0-alpha.1...5.0.0-beta.0) (2023-03-31)

### Bug Fixes

- 204 http response ([#6266](https://github.com/ionic-team/capacitor/issues/6266)) ([771f6ce](https://github.com/ionic-team/capacitor/commit/771f6ce1f35159848db218a42dc4f56b5106f750))
- **android:** Allow WebView to load data urls ([#6418](https://github.com/ionic-team/capacitor/issues/6418)) ([daf2ec6](https://github.com/ionic-team/capacitor/commit/daf2ec64df0c567c6a42560488e5d2515eff8a33))
- **android:** proper app url check for launching intents ([#6450](https://github.com/ionic-team/capacitor/issues/6450)) ([302ba35](https://github.com/ionic-team/capacitor/commit/302ba353acbd6d67e96e2b28870bc9c5bb4e9af0))
- **android:** remove stored references to bridge that holds it in memory ([#6448](https://github.com/ionic-team/capacitor/issues/6448)) ([4737d2b](https://github.com/ionic-team/capacitor/commit/4737d2b46b480c7c0246ac6414494cbbdac7811b))
- **cli:** Fix cordova plugin config checker over checking 5.x ([#6444](https://github.com/ionic-team/capacitor/issues/6444)) ([9d21a0e](https://github.com/ionic-team/capacitor/commit/9d21a0e363141fa0792c12d977b13692be67cf6d))
- **ios:** Event listeners were unexpectedly nil ([#6445](https://github.com/ionic-team/capacitor/issues/6445)) ([209d4ed](https://github.com/ionic-team/capacitor/commit/209d4edace610b00e689440a5c08e72f5da60cc2))

### Features

- **android:** Fix for [#6258](https://github.com/ionic-team/capacitor/issues/6258), Add support for modern Huawei devices ([#6402](https://github.com/ionic-team/capacitor/issues/6402)) ([17f2f4a](https://github.com/ionic-team/capacitor/commit/17f2f4ac744a038c1dae3cbd74a670d5ede92ef3))
- **cli:** Add missing Cap 4 to Cap 5 migration tasks ([#6453](https://github.com/ionic-team/capacitor/issues/6453)) ([7dff363](https://github.com/ionic-team/capacitor/commit/7dff36376d6efa6ea8793b81550979ee9254991b))
- **cli:** Add support for Android build `--flavor` ([#6437](https://github.com/ionic-team/capacitor/issues/6437)) ([e91a8e7](https://github.com/ionic-team/capacitor/commit/e91a8e795604042684ec9e20b620eee36e0dfda2))
- **cli:** update migrate command for cap4 -> cap5 ([#6447](https://github.com/ionic-team/capacitor/issues/6447)) ([b1f0a37](https://github.com/ionic-team/capacitor/commit/b1f0a3744d3158dab083ea31ea3e747b937729d2))
- retain multiple calls per event until consumed ([#6419](https://github.com/ionic-team/capacitor/issues/6419)) ([5aba2cb](https://github.com/ionic-team/capacitor/commit/5aba2cbe29bdbab2a7af861c65d8323acf9c54a6))
- Upgrade to Typescript 5.x ([#6433](https://github.com/ionic-team/capacitor/issues/6433)) ([88d0ded](https://github.com/ionic-team/capacitor/commit/88d0ded9e7356531ffc4563b9b81a0f3f069484b))

# [5.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/4.7.0...5.0.0-alpha.1) (2023-03-16)

### Bug Fixes

- **android:** handle empty permission list ([#6375](https://github.com/ionic-team/capacitor/issues/6375)) ([b11a9df](https://github.com/ionic-team/capacitor/commit/b11a9df070f18a25364a9109e295556fc75ea7f9))
- **android:** handle null http headers and params ([#6370](https://github.com/ionic-team/capacitor/issues/6370)) ([e486672](https://github.com/ionic-team/capacitor/commit/e486672731818d5c64c50956562aa4766f169d41))
- **android:** solve and/or silence lint errors ([#6358](https://github.com/ionic-team/capacitor/issues/6358)) ([c627415](https://github.com/ionic-team/capacitor/commit/c627415743bec92dcb65ab8b8840003d8c0a5286))
- **cli:** point build to proper workspace name ([#6371](https://github.com/ionic-team/capacitor/issues/6371)) ([78b7a59](https://github.com/ionic-team/capacitor/commit/78b7a591429b5fc1dc7bf87e06e9a1afd3599408))
- **iOS:** Separate cookies by `; ` rather than `;` when accessing through `document.cookie` ([#6313](https://github.com/ionic-team/capacitor/issues/6313)) ([beade60](https://github.com/ionic-team/capacitor/commit/beade6020e25dc405e796e1b06bf6dd90b217693))

### Features

- **android-template:** Removing enableJetifier ([#6339](https://github.com/ionic-team/capacitor/issues/6339)) ([e118175](https://github.com/ionic-team/capacitor/commit/e11817544fcdc7fb6ecc02907d9a002f4f61c277))
- **android:** Removing enableJetifier ([#6333](https://github.com/ionic-team/capacitor/issues/6333)) ([fc0b403](https://github.com/ionic-team/capacitor/commit/fc0b403265f63eab35cdb2f262fb1e047db4b6bd))
- **cli:** Add --forwardPorts option to Capacitor CLI ([#5645](https://github.com/ionic-team/capacitor/issues/5645)) ([2f04d29](https://github.com/ionic-team/capacitor/commit/2f04d29a17eb46f9bd140b93e821e11380699367))
- **cli:** update init to set androidScheme to https ([#6342](https://github.com/ionic-team/capacitor/issues/6342)) ([158b27e](https://github.com/ionic-team/capacitor/commit/158b27e53fd803c87de32e8da9f0c5117f81a3a5))

# [4.7.0](https://github.com/ionic-team/capacitor/compare/4.6.3...4.7.0) (2023-02-22)

### Bug Fixes

- handle fetch headers that are Headers objects ([#6320](https://github.com/ionic-team/capacitor/issues/6320)) ([cb00e49](https://github.com/ionic-team/capacitor/commit/cb00e4952acca8e877555f30b2190f6685d25934))
- **cli:** prevent error on manifest element without children ([#6278](https://github.com/ionic-team/capacitor/issues/6278)) ([a7e374f](https://github.com/ionic-team/capacitor/commit/a7e374fc4d834ded437edb4c8a0be98b6691be4c))
- **cli:** Remove buildOptions from platform capacitor.config.json ([#6292](https://github.com/ionic-team/capacitor/issues/6292)) ([acddcd9](https://github.com/ionic-team/capacitor/commit/acddcd95b40a7d4cc6c7682d2d1019f96dacf68d))
- **ios:** Avoid double encoding on http urls ([#6288](https://github.com/ionic-team/capacitor/issues/6288)) ([4768085](https://github.com/ionic-team/capacitor/commit/4768085414768bb2c013afcc6c645664893cd297))
- **ios:** Correctly Attach Headers to Request ([#6303](https://github.com/ionic-team/capacitor/issues/6303)) ([a3f875c](https://github.com/ionic-team/capacitor/commit/a3f875cf42e111fde07d6e87643264b19ed77573))

### Features

- **android:** add ability to create config from a custom file path ([#6264](https://github.com/ionic-team/capacitor/issues/6264)) ([42b4f0f](https://github.com/ionic-team/capacitor/commit/42b4f0f416c8038ae368860007910bb09c8ec84e))
- **android:** Add SSL Pinning logic ([#6314](https://github.com/ionic-team/capacitor/issues/6314)) ([07f113e](https://github.com/ionic-team/capacitor/commit/07f113e6933e15c45d772f69f7128cbb3706f7b9))
- **android:** enable loading of assets outside of the content web asset directory ([#6301](https://github.com/ionic-team/capacitor/issues/6301)) ([364497d](https://github.com/ionic-team/capacitor/commit/364497d4aca93fc716a0673ef9103479aed791ec))
- **cli:** add ssl pinning copy logic ([#6312](https://github.com/ionic-team/capacitor/issues/6312)) ([cce66c1](https://github.com/ionic-team/capacitor/commit/cce66c1d59370ba35db879f4d7a3620d22175ab0))

## [4.6.3](https://github.com/ionic-team/capacitor/compare/4.6.2...4.6.3) (2023-02-03)

### Bug Fixes

- **cli/cordova:** Exclude private framework Headers ([#6229](https://github.com/ionic-team/capacitor/issues/6229)) ([6c2726d](https://github.com/ionic-team/capacitor/commit/6c2726dc0817c9e57c8b7909e4a69a9b376c425d))
- **ios:** crash when http headers contain numbers ([#6251](https://github.com/ionic-team/capacitor/issues/6251)) ([028c556](https://github.com/ionic-team/capacitor/commit/028c556a50b41ee99fe8f4f1aa2f42d3fd57f92d))

## [4.6.2](https://github.com/ionic-team/capacitor/compare/4.6.1...4.6.2) (2023-01-17)

### Bug Fixes

- **android:** get application/x-www-form-urlencoded as string ([#6165](https://github.com/ionic-team/capacitor/issues/6165)) ([0735e89](https://github.com/ionic-team/capacitor/commit/0735e89d48e77a1ddca97a48e3851f4a0a3ea2c1))
- **cli:** config file android release type not overridden ([#6205](https://github.com/ionic-team/capacitor/issues/6205)) ([1441c55](https://github.com/ionic-team/capacitor/commit/1441c551737ce42dd2b82fc1a9da1e8311e27f1a))
- **cli:** flavor flag not using correct apk ([#6151](https://github.com/ionic-team/capacitor/issues/6151)) ([f4e7f19](https://github.com/ionic-team/capacitor/commit/f4e7f19f186e334404b2cd0decc3205e57bf4469))
- **ios:** CapacitorHttp cannot use delete method ([#6220](https://github.com/ionic-team/capacitor/issues/6220)) ([4d238a9](https://github.com/ionic-team/capacitor/commit/4d238a9e0dcf1e3e8c105c3aa4c7361abf16398e))
- **ios:** encode whitespace in http plugin urls ([#6169](https://github.com/ionic-team/capacitor/issues/6169)) ([dccb0a9](https://github.com/ionic-team/capacitor/commit/dccb0a99850c7c878906156a509ecd675836ef1a))
- **ios/android:** better http error handling ([#6208](https://github.com/ionic-team/capacitor/issues/6208)) ([7d4d70a](https://github.com/ionic-team/capacitor/commit/7d4d70a0500b7996c710c0762907f44bdf27c92b))

## [4.6.1](https://github.com/ionic-team/capacitor/compare/4.6.0...4.6.1) (2022-12-05)

### Bug Fixes

- **cli:** support variables in config warn checks ([#6136](https://github.com/ionic-team/capacitor/issues/6136)) ([b460add](https://github.com/ionic-team/capacitor/commit/b460add5e22139f234ca8fae98f174bb7c447292))

# [4.6.0](https://github.com/ionic-team/capacitor/compare/4.5.0...4.6.0) (2022-12-01)

### Bug Fixes

- **android:** Don't run Cordova plugins on ui thread ([#6108](https://github.com/ionic-team/capacitor/issues/6108)) ([592ee86](https://github.com/ionic-team/capacitor/commit/592ee862a58f5cb0737620a0246fe8ae295d27cf))
- **cli:** useLegacyBridge should be optional ([#6095](https://github.com/ionic-team/capacitor/issues/6095)) ([20f68fe](https://github.com/ionic-team/capacitor/commit/20f68feab2cb88cf8a79a987533839aa49255607))
- **cli:** warns about config that is present ([#6060](https://github.com/ionic-team/capacitor/issues/6060)) ([7ac43e7](https://github.com/ionic-team/capacitor/commit/7ac43e722139a61129cfecf98da373659b1aeac8))
- **cookies:** Use Set-Cookie headers to persist cookies ([57f8b39](https://github.com/ionic-team/capacitor/commit/57f8b39d7f4c5ee0e5e5cb316913e9450a81d22b))

### Features

- **android:** Plugin Instance Support ([#6073](https://github.com/ionic-team/capacitor/issues/6073)) ([3d5b7c2](https://github.com/ionic-team/capacitor/commit/3d5b7c2d372cf764c625f46d1e8761e05b8959da))
- **ios:** Plugin Registration and Plugin Instance Support ([#6072](https://github.com/ionic-team/capacitor/issues/6072)) ([9f1d863](https://github.com/ionic-team/capacitor/commit/9f1d863c1222096334a0dd05f39ce7f984a2763a))

# [4.5.0](https://github.com/ionic-team/capacitor/compare/4.4.0...4.5.0) (2022-11-16)

### Bug Fixes

- **android:** Silence deprecation warning on handlePermissionResult ([#6092](https://github.com/ionic-team/capacitor/issues/6092)) ([888b13e](https://github.com/ionic-team/capacitor/commit/888b13e89c48dab949b38135a3ec443ac4fd852e))
- **cli:** add vite config to framework detection ([#6039](https://github.com/ionic-team/capacitor/issues/6039)) ([3796d42](https://github.com/ionic-team/capacitor/commit/3796d42665f3150f99c761aa561a9e34d03cae28))
- **cli:** calculate padding of super.onCreate(savedInstanceState); line ([#6016](https://github.com/ionic-team/capacitor/issues/6016)) ([5729ac1](https://github.com/ionic-team/capacitor/commit/5729ac19e7880713ec52bac431a2756da5aa3109))
- **cli:** Update gradle versions only if they are older ([#6015](https://github.com/ionic-team/capacitor/issues/6015)) ([ae94101](https://github.com/ionic-team/capacitor/commit/ae941017fff3bcfa75e0788535f356a56ce6fa05))
- **cli/ios:** Read handleApplicationNotifications configuration option ([#6030](https://github.com/ionic-team/capacitor/issues/6030)) ([99ccf18](https://github.com/ionic-team/capacitor/commit/99ccf181f6ee8a00ed97bdbf9076e2b2ea27cd57))

### Features

- **android/cli:** Allow to use the old addJavascriptInterface bridge ([#6043](https://github.com/ionic-team/capacitor/issues/6043)) ([a6e7c54](https://github.com/ionic-team/capacitor/commit/a6e7c5422687b703492a5fcc49369eacc376143d))
- **cookies:** add get cookies plugin method ([ba1e770](https://github.com/ionic-team/capacitor/commit/ba1e7702a3338714aee24388c0afea39706c9341))

# [4.4.0](https://github.com/ionic-team/capacitor/compare/4.3.0...4.4.0) (2022-10-21)

### Bug Fixes

- **android:** added ServerPath object and building options for setting initial load from portals ([#6008](https://github.com/ionic-team/capacitor/issues/6008)) ([205b6e6](https://github.com/ionic-team/capacitor/commit/205b6e61806158244846608b1e6c0c7b26ee4ab7))
- **cookies:** make document.cookie setter synchronous ([2272abf](https://github.com/ionic-team/capacitor/commit/2272abf3d3d9dc82d9ca0d03b17e2b78f11f61fc))
- **http:** fix exception thrown on 204 responses ([1f6e8be](https://github.com/ionic-team/capacitor/commit/1f6e8be9d8813c4397e2c54ac4c06beb55f97b5f))
- **http:** fix local http requests on native platforms ([c4e040a](https://github.com/ionic-team/capacitor/commit/c4e040a6f8c6b54bac6ae320e5f0f008604fe50f))

### Features

- **cli:** add build command for android ([#5891](https://github.com/ionic-team/capacitor/issues/5891)) ([6d4e620](https://github.com/ionic-team/capacitor/commit/6d4e620308b6dd97376e3af7de1dd1a530083f1c))
- **cli:** add build command for ios ([#5925](https://github.com/ionic-team/capacitor/issues/5925)) ([8e8414f](https://github.com/ionic-team/capacitor/commit/8e8414fa6f4ccb245576cc113eb969937613bbf7))
- **cli:** supports secure live updates in Portals for Capacitor config ([#5955](https://github.com/ionic-team/capacitor/issues/5955)) ([a309b45](https://github.com/ionic-team/capacitor/commit/a309b455fdd190613353bdf0eb04469cf4aa6ccd))

# [4.3.0](https://github.com/ionic-team/capacitor/compare/4.2.0...4.3.0) (2022-09-21)

### Bug Fixes

- **android:** open external links in browser ([#5913](https://github.com/ionic-team/capacitor/issues/5913)) ([7553ede](https://github.com/ionic-team/capacitor/commit/7553ede93170971e21ab3dec1798443d084ead2a))
- **android:** set all cookies on proxied requests ([#5781](https://github.com/ionic-team/capacitor/issues/5781)) ([5ef6a38](https://github.com/ionic-team/capacitor/commit/5ef6a3889121dd39a9159ff80250df18854bc557))
- **android:** set WebViewClient on the WebView ([#5919](https://github.com/ionic-team/capacitor/issues/5919)) ([020ed8e](https://github.com/ionic-team/capacitor/commit/020ed8eaeb7864399d4b93f54ab7601c607d8e0d))
- **cli:** Find the Info.plist when using scheme ([#5914](https://github.com/ionic-team/capacitor/issues/5914)) ([f7029ac](https://github.com/ionic-team/capacitor/commit/f7029acb885ec60f85a434b6f71e4f2a633c7651))
- **cli:** Make migrator update gradle wrapper files ([#5910](https://github.com/ionic-team/capacitor/issues/5910)) ([b8b9b1f](https://github.com/ionic-team/capacitor/commit/b8b9b1f96249908435017eea6c427221f1971836))
- **cli:** Make update from windows use proper paths on Podfile ([#5906](https://github.com/ionic-team/capacitor/issues/5906)) ([c41d28f](https://github.com/ionic-team/capacitor/commit/c41d28f8cc829c6bf69d776280c9f1fdba9f866f))
- **cli:** show error if npm install on migration failed ([#5904](https://github.com/ionic-team/capacitor/issues/5904)) ([aa60a75](https://github.com/ionic-team/capacitor/commit/aa60a75d9c2c784e127a4d89e4079b412fbe7262))
- **core:** Exception object was not set on Cap ([#5917](https://github.com/ionic-team/capacitor/issues/5917)) ([9ca27a4](https://github.com/ionic-team/capacitor/commit/9ca27a4f8441b368f8bf9d97dda57b1a55ac0e4e))

### Features

- Capacitor Cookies & Capacitor Http core plugins ([d4047cf](https://github.com/ionic-team/capacitor/commit/d4047cfa947676777f400389a8d65defae140b45))

# [4.2.0](https://github.com/ionic-team/capacitor/compare/4.1.0...4.2.0) (2022-09-08)

### Features

- **cli:** add inline option to copy command ([#5901](https://github.com/ionic-team/capacitor/issues/5901)) ([17fbabb](https://github.com/ionic-team/capacitor/commit/17fbabb2a77d1b356d24048efc5883bd4d049104))
- **cli:** add scheme and flavor options to run command ([#5873](https://github.com/ionic-team/capacitor/issues/5873)) ([e4c143d](https://github.com/ionic-team/capacitor/commit/e4c143d4da653533570215964808c2f32f5469d3))
- **cli:** copy signature when using secure live updates ([#5896](https://github.com/ionic-team/capacitor/issues/5896)) ([0f17177](https://github.com/ionic-team/capacitor/commit/0f17177b1c64c0f69f86e990e4e150b820da497b))

# [4.1.0](https://github.com/ionic-team/capacitor/compare/4.0.1...4.1.0) (2022-08-18)

### Bug Fixes

- **cli:** Also update preferences plugin if present ([#5831](https://github.com/ionic-team/capacitor/issues/5831)) ([b9d5954](https://github.com/ionic-team/capacitor/commit/b9d5954ca0b333f2caa20179b96b049379860ea5))
- **cli:** Don't add google-services plugin if missing ([#5825](https://github.com/ionic-team/capacitor/issues/5825)) ([48ff9e6](https://github.com/ionic-team/capacitor/commit/48ff9e6461e8037a5c6da87c90efc6bc872d7f08))
- **cli:** make migrator also update plugin variables ([#5871](https://github.com/ionic-team/capacitor/issues/5871)) ([478d48c](https://github.com/ionic-team/capacitor/commit/478d48c3e322cffc6f0ff7ce590b635de4b41279))
- **cli:** Migrator put registerPlugin before super.onCreate ([#5828](https://github.com/ionic-team/capacitor/issues/5828)) ([8cd3373](https://github.com/ionic-team/capacitor/commit/8cd3373133903f97a836fd6ac6b7ce4e1ba9317e))
- **cli:** prevent error on migrate when devDependencies is missing ([#5863](https://github.com/ionic-team/capacitor/issues/5863)) ([474ad1f](https://github.com/ionic-team/capacitor/commit/474ad1f4d4a9ea0636a457836c938dac9f6534e8))
- **cli:** remove double space in cap 2 variables file ([#5826](https://github.com/ionic-team/capacitor/issues/5826)) ([7184097](https://github.com/ionic-team/capacitor/commit/7184097da88ed34f3e754119f967d262aa5e2add))
- **cli:** Support of BoM dependencies on cordova plugins ([#5827](https://github.com/ionic-team/capacitor/issues/5827)) ([ea2d95b](https://github.com/ionic-team/capacitor/commit/ea2d95ba43467cd2d4c4637aacab6bf655d9c596))
- **ios:** Prevent Xcode 14 warning on CAPWebView ([#5821](https://github.com/ionic-team/capacitor/issues/5821)) ([66954ef](https://github.com/ionic-team/capacitor/commit/66954ef6bc93f2038d85a386ef2f8b582af11bc3))
- **ios:** return proper mimeType on M1 x86_64 simulators ([#5853](https://github.com/ionic-team/capacitor/issues/5853)) ([325b6fe](https://github.com/ionic-team/capacitor/commit/325b6fe83939efaaef44c7e8624e33de742a57e2)), closes [#5793](https://github.com/ionic-team/capacitor/issues/5793)
- update @types/tar to prevent core build failure ([#5822](https://github.com/ionic-team/capacitor/issues/5822)) ([59e64b7](https://github.com/ionic-team/capacitor/commit/59e64b7c548341c27a8477ddc867290592c43815))

### Features

- **cli:** Option to inline JS source maps during sync ([#5843](https://github.com/ionic-team/capacitor/issues/5843)) ([7ce6dd4](https://github.com/ionic-team/capacitor/commit/7ce6dd4b6fb5cdc395add6f656fbedc785178ae3))
- **ios:** Add `setServerBasePath(_:)` to CAPBridgeProtocol ([#5860](https://github.com/ionic-team/capacitor/issues/5860)) ([76f28e7](https://github.com/ionic-team/capacitor/commit/76f28e70a5c0a03e4c6b9a93a0c068666a2c38ff))

## [4.0.1](https://github.com/ionic-team/capacitor/compare/4.0.0...4.0.1) (2022-07-28)

### Bug Fixes

- **cli:** Correct Splash theme update ([#5805](https://github.com/ionic-team/capacitor/issues/5805)) ([25b82a8](https://github.com/ionic-team/capacitor/commit/25b82a84425bf09b2be45b213788b0e13982b9b3))
- **cli:** Revert some splash migration errors ([#5806](https://github.com/ionic-team/capacitor/issues/5806)) ([471feed](https://github.com/ionic-team/capacitor/commit/471feedc07bef357ac798fcba664bd373e9f8ebf))
- **ios:** publish Podfile script ([#5799](https://github.com/ionic-team/capacitor/issues/5799)) ([604f03a](https://github.com/ionic-team/capacitor/commit/604f03a29bc500d2841987d0a0f1b20d34fba7d6))

# [4.0.0](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.2...4.0.0) (2022-07-27)

### Bug Fixes

- **android:** Publish proguard-rules.pro on npm ([#5761](https://github.com/ionic-team/capacitor/issues/5761)) ([df77103](https://github.com/ionic-team/capacitor/commit/df77103ca411fa452239099769289eeeea2404d2))
- **ios:** error data is optional ([#5782](https://github.com/ionic-team/capacitor/issues/5782)) ([da48d79](https://github.com/ionic-team/capacitor/commit/da48d798c3463de9de188ae6a6475fd6afba6091))

### Features

- **android:** Add android.minWebviewVersion configuration option ([#5768](https://github.com/ionic-team/capacitor/issues/5768)) ([ad83827](https://github.com/ionic-team/capacitor/commit/ad838279e9cd190ce6f1a020a0ac9e3916786324))
- **android:** Add Optional Data Param for Error Object ([#5719](https://github.com/ionic-team/capacitor/issues/5719)) ([174172b](https://github.com/ionic-team/capacitor/commit/174172b6c64dc9117c48ed0e20c25e0b6c2fb625))
- **android:** Use addWebMessageListener where available ([#5427](https://github.com/ionic-team/capacitor/issues/5427)) ([c2dfe80](https://github.com/ionic-team/capacitor/commit/c2dfe808446717412b35e82713d123b7a052f264))
- **android-template:** Use Android 12 splash API ([#5777](https://github.com/ionic-team/capacitor/issues/5777)) ([f3ab951](https://github.com/ionic-team/capacitor/commit/f3ab9519e1f08d5dfeb2db61b6939725be92b4f3))
- **cli:** add migrator for cap3 to cap4 ([#5762](https://github.com/ionic-team/capacitor/issues/5762)) ([7cb660a](https://github.com/ionic-team/capacitor/commit/7cb660a34d9a87274761d4492d0d77c9ef44ace8))
- **ios:** Add overrideable router var for CAPWebView. ([#5743](https://github.com/ionic-team/capacitor/issues/5743)) ([c1de1c0](https://github.com/ionic-team/capacitor/commit/c1de1c0138aad188a760118e35983d10d257f8e7))
- **iOS:** post install script for deployment target ([#5783](https://github.com/ionic-team/capacitor/issues/5783)) ([f5afa94](https://github.com/ionic-team/capacitor/commit/f5afa94b3b9c246d87b2af03359840f503bace90))
- Add option for custom error page ([#5723](https://github.com/ionic-team/capacitor/issues/5723)) ([e8bdef3](https://github.com/ionic-team/capacitor/commit/e8bdef3b4634e4ad45fa8fc34c7c0ab8dfa383f3))

# [4.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.1...4.0.0-beta.2) (2022-07-08)

### Bug Fixes

- **ios:** Add check for both serverURL and localURL in navigation ([#5736](https://github.com/ionic-team/capacitor/issues/5736)) ([8e824f3](https://github.com/ionic-team/capacitor/commit/8e824f33ad4df898fb8c0936a8f5e9041832a5c5))
- **ios:** properly deliver retained events after listener re-add [#5732](https://github.com/ionic-team/capacitor/issues/5732) ([c5d6328](https://github.com/ionic-team/capacitor/commit/c5d632831924a1bcc868bc46b42f7ff619408752))

### Features

- **ios:** Add `setServerBasePath(path:)` to CAPWebView ([#5742](https://github.com/ionic-team/capacitor/issues/5742)) ([1afbf8a](https://github.com/ionic-team/capacitor/commit/1afbf8a9dd0b8f7b1ac439d24e5d8ba26f786318))
- Add CapWebView ([#5715](https://github.com/ionic-team/capacitor/issues/5715)) ([143d266](https://github.com/ionic-team/capacitor/commit/143d266ef0a818bac59dbbdaeda3b5c382ebfa1d))

# [4.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/4.0.0-beta.0...4.0.0-beta.1) (2022-06-27)

### Bug Fixes

- **ios:** Remove Cordova as an embedded framework ([#5709](https://github.com/ionic-team/capacitor/issues/5709)) ([bbf6d24](https://github.com/ionic-team/capacitor/commit/bbf6d248bf9217a5c5c6c15c7bcfeda209aba5b1))

### Features

- **ios:** Allow to configure popover size ([#5717](https://github.com/ionic-team/capacitor/issues/5717)) ([ca1a125](https://github.com/ionic-team/capacitor/commit/ca1a125e5ab05d6066dd303bc75e99dfe21f210a))

# [4.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/3.6.0...4.0.0-beta.0) (2022-06-17)

### Bug Fixes

- **android:** make removeAllListeners return a promise ([#5527](https://github.com/ionic-team/capacitor/issues/5527)) ([6f4d858](https://github.com/ionic-team/capacitor/commit/6f4d858ea879d97109c0c7da2d664d04806adc2a))
- **android:** prevent app from loading if server.url is invalid ([d4a0dea](https://github.com/ionic-team/capacitor/commit/d4a0deaa37eda4476f0be030e266c2c1260fc6e8))
- **cli:** Use CURRENT_PROJECT_VERSION variable on ios template ([#5418](https://github.com/ionic-team/capacitor/issues/5418)) ([0a07648](https://github.com/ionic-team/capacitor/commit/0a07648b4d1c5fb1fd7de3c72ac1bbcb30f48203))
- **ios:** make removeAllListeners return a promise ([#5526](https://github.com/ionic-team/capacitor/issues/5526)) ([815f71b](https://github.com/ionic-team/capacitor/commit/815f71b6b62f6c4d5f66e6a36c190bb00a96fdcc))

### Features

- **android:** don't allow server.androidScheme to be set to schemes handled by WebView ([01285ba](https://github.com/ionic-team/capacitor/commit/01285ba253d602b08a41240ad2ccf370730d51a3))
- **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
- **android:** set default targetSDK to 32 ([#5611](https://github.com/ionic-team/capacitor/issues/5611)) ([416b966](https://github.com/ionic-team/capacitor/commit/416b9662fbf6233d23216c0c0441862603c3a723))
- **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
- **android:** Use java 11 ([#5552](https://github.com/ionic-team/capacitor/issues/5552)) ([e47959f](https://github.com/ionic-team/capacitor/commit/e47959fcbd6a89b97b1275a5814fdb4e7ce30672))
- **android-template:** use DayNight theme as default ([#5643](https://github.com/ionic-team/capacitor/issues/5643)) ([9d76869](https://github.com/ionic-team/capacitor/commit/9d76869129cec6ea67c083a850447b4bfcf48947))
- **cli:** export android-template activity for SDK 31 support ([#5351](https://github.com/ionic-team/capacitor/issues/5351)) ([79b4a3c](https://github.com/ionic-team/capacitor/commit/79b4a3c56ce9704bc8f5b0b8ce6d5e60f86d4d2c))
- **cli:** set targetSDK to 31 in android-template ([#5443](https://github.com/ionic-team/capacitor/issues/5443)) ([8793c58](https://github.com/ionic-team/capacitor/commit/8793c58f24611d7780aff80d547b367f4114f7c5))
- **cli:** set targetSDK to 32 in android-template ([#5612](https://github.com/ionic-team/capacitor/issues/5612)) ([8b8be47](https://github.com/ionic-team/capacitor/commit/8b8be4706b7534e346738479865e5f66a25005bf))
- **cli:** Upgrade Gradle to 7.4 in the template ([#5446](https://github.com/ionic-team/capacitor/issues/5446)) ([11b648d](https://github.com/ionic-team/capacitor/commit/11b648d21567c5ab8e7e195fdefec1e1254ce62a))
- **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))
- **ios:** Add preferredContentMode configuration option ([#5583](https://github.com/ionic-team/capacitor/issues/5583)) ([5b6dfa3](https://github.com/ionic-team/capacitor/commit/5b6dfa3fe29c85632546b299f03cc04a77cf7475))
- **ios:** Support of range requests on WebViewAssetHandler ([#5659](https://github.com/ionic-team/capacitor/issues/5659)) ([348c08d](https://github.com/ionic-team/capacitor/commit/348c08d511e9d57a1b2ecedc3290c65fa9ba3924))

# [3.6.0](https://github.com/ionic-team/capacitor/compare/3.5.1...3.6.0) (2022-06-17)

### Bug Fixes

- **ios:** Use `URL(fileURLWithPath:)` instead of `URL(string:)` ([#5603](https://github.com/ionic-team/capacitor/issues/5603)) ([5fac1b2](https://github.com/ionic-team/capacitor/commit/5fac1b2da5aa5882087716cb2aa862d89173f4a1))

### Features

- **android:** update support for Portals for Capacitor to include Live Updates ([#5660](https://github.com/ionic-team/capacitor/issues/5660)) ([62f0a5e](https://github.com/ionic-team/capacitor/commit/62f0a5eaa40776aad79dbf8f8c0900037d3cc97e))
- **iOS, Android:** add AppUUID Lib for plugins ([#5690](https://github.com/ionic-team/capacitor/issues/5690)) ([05e76cf](https://github.com/ionic-team/capacitor/commit/05e76cf526a44e07fa75f9482fa2223a13918638))

# [4.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.2) (2022-05-12)

### Bug Fixes

- **android:** make removeAllListeners return a promise ([#5527](https://github.com/ionic-team/capacitor/issues/5527)) ([6f4d858](https://github.com/ionic-team/capacitor/commit/6f4d858ea879d97109c0c7da2d664d04806adc2a))
- **android:** prevent app from loading if server.url is invalid ([d4a0dea](https://github.com/ionic-team/capacitor/commit/d4a0deaa37eda4476f0be030e266c2c1260fc6e8))
- **cli:** Use CURRENT_PROJECT_VERSION variable on ios template ([#5418](https://github.com/ionic-team/capacitor/issues/5418)) ([0a07648](https://github.com/ionic-team/capacitor/commit/0a07648b4d1c5fb1fd7de3c72ac1bbcb30f48203))
- **ios:** make removeAllListeners return a promise ([#5526](https://github.com/ionic-team/capacitor/issues/5526)) ([815f71b](https://github.com/ionic-team/capacitor/commit/815f71b6b62f6c4d5f66e6a36c190bb00a96fdcc))

### Features

- **android:** don't allow server.androidScheme to be set to schemes handled by WebView ([01285ba](https://github.com/ionic-team/capacitor/commit/01285ba253d602b08a41240ad2ccf370730d51a3))
- **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
- **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
- **android:** Use java 11 ([#5552](https://github.com/ionic-team/capacitor/issues/5552)) ([e47959f](https://github.com/ionic-team/capacitor/commit/e47959fcbd6a89b97b1275a5814fdb4e7ce30672))
- **cli:** export android-template activity for SDK 31 support ([#5351](https://github.com/ionic-team/capacitor/issues/5351)) ([79b4a3c](https://github.com/ionic-team/capacitor/commit/79b4a3c56ce9704bc8f5b0b8ce6d5e60f86d4d2c))
- **cli:** set targetSDK to 31 in android-template ([#5443](https://github.com/ionic-team/capacitor/issues/5443)) ([8793c58](https://github.com/ionic-team/capacitor/commit/8793c58f24611d7780aff80d547b367f4114f7c5))
- **cli:** Upgrade Gradle to 7.4 in the template ([#5446](https://github.com/ionic-team/capacitor/issues/5446)) ([11b648d](https://github.com/ionic-team/capacitor/commit/11b648d21567c5ab8e7e195fdefec1e1254ce62a))
- **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))
- **ios:** Add preferredContentMode configuration option ([#5583](https://github.com/ionic-team/capacitor/issues/5583)) ([5b6dfa3](https://github.com/ionic-team/capacitor/commit/5b6dfa3fe29c85632546b299f03cc04a77cf7475))

## [3.5.1](https://github.com/ionic-team/capacitor/compare/3.5.0...3.5.1) (2022-05-04)

### Bug Fixes

- **android:** move initialFocus on webview into config ([#5579](https://github.com/ionic-team/capacitor/issues/5579)) ([8b4e861](https://github.com/ionic-team/capacitor/commit/8b4e861514b0fbe08e9296f49c280234f54742e1))
- **core:** Make cordova bridge use Promise instead of setTimeout ([#5586](https://github.com/ionic-team/capacitor/issues/5586)) ([f35d96b](https://github.com/ionic-team/capacitor/commit/f35d96b185f5890600a64b78e6bf939c336cbb2d))

# [3.5.0](https://github.com/ionic-team/capacitor/compare/3.4.3...3.5.0) (2022-04-22)

### Features

- **android:** Add overridable routing for WebViewLocalServer ([#5553](https://github.com/ionic-team/capacitor/issues/5553)) ([3bb288e](https://github.com/ionic-team/capacitor/commit/3bb288e848c5c0e49c1e58c0782e0b1ffd7b1f31))
- **cli:** support capacitor portals plugin changes needed ([#5558](https://github.com/ionic-team/capacitor/issues/5558)) ([6810a19](https://github.com/ionic-team/capacitor/commit/6810a19ae2bbda1f4b2afad61d37ca822ca157f5))
- **ios:** Add overrideable routing for CAPBridgeViewController subclasses ([#5546](https://github.com/ionic-team/capacitor/issues/5546)) ([8875d5e](https://github.com/ionic-team/capacitor/commit/8875d5e2721e8a8ee763ce70cb672db383f36efa))

# [4.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/3.4.1...4.0.0-alpha.1) (2022-03-25)

### Bug Fixes

- **cli:** Use CURRENT_PROJECT_VERSION variable on ios template ([#5418](https://github.com/ionic-team/capacitor/issues/5418)) ([0a07648](https://github.com/ionic-team/capacitor/commit/0a07648b4d1c5fb1fd7de3c72ac1bbcb30f48203))

### Features

- **android:** set default targetSDK to 31 ([#5442](https://github.com/ionic-team/capacitor/issues/5442)) ([4442459](https://github.com/ionic-team/capacitor/commit/4442459b24cdbac25cb1e4de11583d22c21452b3))
- **android:** Upgrade gradle to 7.4 ([#5445](https://github.com/ionic-team/capacitor/issues/5445)) ([28eaf18](https://github.com/ionic-team/capacitor/commit/28eaf1851fa7a912917dbb40c68fb4dd583d08ad))
- **cli:** export android-template activity for SDK 31 support ([#5351](https://github.com/ionic-team/capacitor/issues/5351)) ([79b4a3c](https://github.com/ionic-team/capacitor/commit/79b4a3c56ce9704bc8f5b0b8ce6d5e60f86d4d2c))
- **cli:** set targetSDK to 31 in android-template ([#5443](https://github.com/ionic-team/capacitor/issues/5443)) ([8793c58](https://github.com/ionic-team/capacitor/commit/8793c58f24611d7780aff80d547b367f4114f7c5))
- **cli:** Upgrade Gradle to 7.4 in the template ([#5446](https://github.com/ionic-team/capacitor/issues/5446)) ([11b648d](https://github.com/ionic-team/capacitor/commit/11b648d21567c5ab8e7e195fdefec1e1254ce62a))
- **ios:** add getConfig to CAPPlugin ([#5495](https://github.com/ionic-team/capacitor/issues/5495)) ([224a9d0](https://github.com/ionic-team/capacitor/commit/224a9d075629d9c9da9ddc658eb282617fc46d09))

## [3.4.3](https://github.com/ionic-team/capacitor/compare/3.4.2...3.4.3) (2022-03-04)

### Bug Fixes

- **cli:** avoid srcFiles is not iterable on kotlinNeededCheck ([#5481](https://github.com/ionic-team/capacitor/issues/5481)) ([3c2b579](https://github.com/ionic-team/capacitor/commit/3c2b579c6edb1fc69d85689b268eb92067b7821b))

## [3.4.2](https://github.com/ionic-team/capacitor/compare/3.4.1...3.4.2) (2022-03-03)

### Bug Fixes

- **android:** compatibility with cordova kotlin plugins ([#5438](https://github.com/ionic-team/capacitor/issues/5438)) ([55bf004](https://github.com/ionic-team/capacitor/commit/55bf004897b3feb280ab6b6575d2a2c1a0a183e2))

## [3.4.1](https://github.com/ionic-team/capacitor/compare/3.4.0...3.4.1) (2022-02-09)

### Bug Fixes

- **ci:** add token to ghr call in xcframework build action ([#5422](https://github.com/ionic-team/capacitor/issues/5422)) ([5573a77](https://github.com/ionic-team/capacitor/commit/5573a77b13539a5c36e4fbc7a1cd6548689d83d3))
- **ci:** Fix tags/releases for Attach .xcframework CI action ([#5423](https://github.com/ionic-team/capacitor/issues/5423)) ([57b3df3](https://github.com/ionic-team/capacitor/commit/57b3df3724a2bda8e59af83f99c127b1503b5c37))
- **cli:** Better error on gradlew permission problems ([#5405](https://github.com/ionic-team/capacitor/issues/5405)) ([9420f08](https://github.com/ionic-team/capacitor/commit/9420f08dedad78cfaa5500cccf8bdbf1a9140684))
- **ios:** Reload webView on webViewWebContentProcessDidTerminate ([#5391](https://github.com/ionic-team/capacitor/issues/5391)) ([beebff4](https://github.com/ionic-team/capacitor/commit/beebff4550575c28c233937a11a8eacf5a76411c))

# [3.4.0](https://github.com/ionic-team/capacitor/compare/3.3.4...3.4.0) (2022-01-19)

### Bug Fixes

- **android:** Add appcompat to capacitor-cordova-android-plugins module ([#5373](https://github.com/ionic-team/capacitor/issues/5373)) ([1c756b7](https://github.com/ionic-team/capacitor/commit/1c756b77bf334036a4b30ddac86ac926fa6c0b3d))
- **android:** prevent input file crash if accept has . ([#5363](https://github.com/ionic-team/capacitor/issues/5363)) ([bdacb30](https://github.com/ionic-team/capacitor/commit/bdacb300bb6391dc4b84bb2bab075df993a15cba))

### Features

- **android:** Add getLong helper on PluginCall ([#5235](https://github.com/ionic-team/capacitor/issues/5235)) ([26261fb](https://github.com/ionic-team/capacitor/commit/26261fb49211330c4db72c259359565da7d7bc4b))
- **ios:** Add new iOS 15 Motion permission delegate ([#5317](https://github.com/ionic-team/capacitor/issues/5317)) ([c05a3cb](https://github.com/ionic-team/capacitor/commit/c05a3cbbf02217e3972d5e067970cae18bff3faa))
- **ios:** Add new iOS15 media capture permission delegate ([#5196](https://github.com/ionic-team/capacitor/issues/5196)) ([d8b54ac](https://github.com/ionic-team/capacitor/commit/d8b54ac23414bfe56e50e1254066630a6f87eb0e))

## [3.3.4](https://github.com/ionic-team/capacitor/compare/3.3.3...3.3.4) (2022-01-05)

### Bug Fixes

- **android:** Prevent crash if activity killed on input file ([#5328](https://github.com/ionic-team/capacitor/issues/5328)) ([a206841](https://github.com/ionic-team/capacitor/commit/a20684180a9b6fd50547ae578f21531faa116da5))
- **cli:** Escape appName from invalid characters on add ([#5325](https://github.com/ionic-team/capacitor/issues/5325)) ([033f4ee](https://github.com/ionic-team/capacitor/commit/033f4eef59fdb7cc32018b162114511448bc46a6))
- **cli:** sync failing if Info.plist is localized ([#5333](https://github.com/ionic-team/capacitor/issues/5333)) ([df7a104](https://github.com/ionic-team/capacitor/commit/df7a1041c4e2d9a5a1ceef247ed00f9f8467df76))

## [3.3.3](https://github.com/ionic-team/capacitor/compare/3.3.2...3.3.3) (2021-12-08)

### Bug Fixes

- **android:** change logging level of google services message ([#5189](https://github.com/ionic-team/capacitor/issues/5189)) ([6b1dd43](https://github.com/ionic-team/capacitor/commit/6b1dd430dc91eb9e2b36edaa173ccc294c9fb4ff))
- **android:** Prevent crash in restoreInstanceState if bundleData is null ([#5289](https://github.com/ionic-team/capacitor/issues/5289)) ([622d62f](https://github.com/ionic-team/capacitor/commit/622d62fc0d7cd79558bf6f11331bd7d6690aa4f9))
- **android:** restrict android run command to configured flavour ([#5256](https://github.com/ionic-team/capacitor/issues/5256)) ([ba84443](https://github.com/ionic-team/capacitor/commit/ba84443dce9c81e09140def57a60018b527b5bb5))
- **cli:** Add onesignal-cordova-plugin to the static list again ([#5262](https://github.com/ionic-team/capacitor/issues/5262)) ([e67ca99](https://github.com/ionic-team/capacitor/commit/e67ca9964c5a923d35f5cf41eb802c665563726f))
- **ios:** Present js alert on top of the presented VC ([#5282](https://github.com/ionic-team/capacitor/issues/5282)) ([a53d236](https://github.com/ionic-team/capacitor/commit/a53d236452e99d1e6151e19e313b3d1545957419))

## [3.3.2](https://github.com/ionic-team/capacitor/compare/3.3.1...3.3.2) (2021-11-17)

### Bug Fixes

- **android:** Allow web geolocation if only COARSE_LOCATION is granted ([#5236](https://github.com/ionic-team/capacitor/issues/5236)) ([bc7b24e](https://github.com/ionic-team/capacitor/commit/bc7b24e9b58b194b32b750c5816c8d8ef180834a))
- **cli:** add cordova-plugin-google-analytics to static list ([#5220](https://github.com/ionic-team/capacitor/issues/5220)) ([67a996c](https://github.com/ionic-team/capacitor/commit/67a996c0a6896e32c41ea01822d6435fdd706b84))
- **cli:** Add plugin to static list if pod has use-frameworks ([#5232](https://github.com/ionic-team/capacitor/issues/5232)) ([8a0518b](https://github.com/ionic-team/capacitor/commit/8a0518be9f6f6a4be4a9f1366cb8dcb191225b9d))
- **cli:** sync gradle from android folder ([#5233](https://github.com/ionic-team/capacitor/issues/5233)) ([cd779c4](https://github.com/ionic-team/capacitor/commit/cd779c4b6ed4ffc96777be7c94a0af4baca6d6d5))

## [3.3.1](https://github.com/ionic-team/capacitor/compare/3.3.0...3.3.1) (2021-11-05)

### Bug Fixes

- **cli:** Make config don't error if iOS is missing ([#5212](https://github.com/ionic-team/capacitor/issues/5212)) ([db9f12b](https://github.com/ionic-team/capacitor/commit/db9f12b545994b2ed88098c0168bb051f8191771))

# [3.3.0](https://github.com/ionic-team/capacitor/compare/3.2.5...3.3.0) (2021-11-03)

### Bug Fixes

- **cli:** Add Batch plugin to static list ([#5138](https://github.com/ionic-team/capacitor/issues/5138)) ([9470633](https://github.com/ionic-team/capacitor/commit/94706338c096b30390fa288c9b107e253923a644))
- **cli:** Add onesignal-cordova-plugin to static pod list ([#5143](https://github.com/ionic-team/capacitor/issues/5143)) ([937e240](https://github.com/ionic-team/capacitor/commit/937e2408f9bb60691e653b70d8b7cb02f540b251))
- **cli:** detect and register multiple plugins from same package ([#5098](https://github.com/ionic-team/capacitor/issues/5098)) ([25e770c](https://github.com/ionic-team/capacitor/commit/25e770c3f598bf3a1e05e21d607ab3ad70268674))
- **core:** avoid crash on logging circular objects ([#5186](https://github.com/ionic-team/capacitor/issues/5186)) ([1451ec8](https://github.com/ionic-team/capacitor/commit/1451ec850a9ef73267a032638e73f1fc440647b9))
- **ios:** Avoid CDVScreenOrientationDelegate umbrella header warning ([#5156](https://github.com/ionic-team/capacitor/issues/5156)) ([31ec30d](https://github.com/ionic-team/capacitor/commit/31ec30de193aa3117dbb7eda928ef3a365d5667c))

### Features

- **android:** ability to reload the webview ([#5184](https://github.com/ionic-team/capacitor/issues/5184)) ([c495bed](https://github.com/ionic-team/capacitor/commit/c495bed216ddf05450f185d2d3f09b4052b281a8))
- **cli:** add support for 'pod install' in VM based environments ([#5144](https://github.com/ionic-team/capacitor/issues/5144)) ([32ecf22](https://github.com/ionic-team/capacitor/commit/32ecf22de0a550756dbfa68b3b17c2333c89a430))
- **cli:** Allow to configure access origin tags on cordova config.xml ([#5134](https://github.com/ionic-team/capacitor/issues/5134)) ([0841a09](https://github.com/ionic-team/capacitor/commit/0841a093bf73ed4acac9a90be44a8e8a3aedbcdb))
- **cli:** Allow users to include Cordova plugins to the static list ([#5175](https://github.com/ionic-team/capacitor/issues/5175)) ([664149a](https://github.com/ionic-team/capacitor/commit/664149aadbe80e66dd757315a826ec1ab305edb9))

## [3.2.5](https://github.com/ionic-team/capacitor/compare/3.2.4...3.2.5) (2021-10-13)

### Bug Fixes

- **android:** Avoid ConcurrentModificationException on notifyListeners ([#5125](https://github.com/ionic-team/capacitor/issues/5125)) ([b82bfe0](https://github.com/ionic-team/capacitor/commit/b82bfe0db2e38fa286eb18391b1d5e2f86a1b35c))
- **android:** Support cordova-android 10 ([#5103](https://github.com/ionic-team/capacitor/issues/5103)) ([e238233](https://github.com/ionic-team/capacitor/commit/e238233dcf34a183af4861176789d1feb1eb51fa))
- **cli:** create only static pod if needed ([#5099](https://github.com/ionic-team/capacitor/issues/5099)) ([8304744](https://github.com/ionic-team/capacitor/commit/83047445562a52cc927c7c77d55b48288cfc1fcc))
- **ios:** proper handling of allowNavigation with multiple wildcard ([#5096](https://github.com/ionic-team/capacitor/issues/5096)) ([cda17a6](https://github.com/ionic-team/capacitor/commit/cda17a6c1504235c1c1e4826830f1d0e2ef2d35c))

## [3.2.4](https://github.com/ionic-team/capacitor/compare/3.2.3...3.2.4) (2021-09-27)

### Bug Fixes

- **cli:** await sync on add to avoid telemetry hang ([833bc20](https://github.com/ionic-team/capacitor/commit/833bc20525a2558e03cd0e56c6765ce6828cdfac))
- **ios:** Add CDVScreenOrientationDelegate protocol on CAPBridgeViewController ([#5070](https://github.com/ionic-team/capacitor/issues/5070)) ([530477d](https://github.com/ionic-team/capacitor/commit/530477d05e1364931f83a30d61d4f9b5cb687b19))
- **ios:** show correct line number on console logs ([#5073](https://github.com/ionic-team/capacitor/issues/5073)) ([ec41e74](https://github.com/ionic-team/capacitor/commit/ec41e743aa4ba81e791ad446fac461b7f43b46ed))

## [3.2.3](https://github.com/ionic-team/capacitor/compare/3.2.2...3.2.3) (2021-09-15)

### Bug Fixes

- **android:** proguard rules ([#5048](https://github.com/ionic-team/capacitor/issues/5048)) ([cf15c0f](https://github.com/ionic-team/capacitor/commit/cf15c0fb3bd67315011865fedb4157d5076965fd))
- Add SalesforceMobileSDK-CordovaPlugin to iOS incompatible list ([#5031](https://github.com/ionic-team/capacitor/issues/5031)) ([6f3f79f](https://github.com/ionic-team/capacitor/commit/6f3f79f412b77b0c90988226ec5ade5d0198c706))
- Define cordovaConfig gradle variable ([#5024](https://github.com/ionic-team/capacitor/issues/5024)) ([55c217e](https://github.com/ionic-team/capacitor/commit/55c217e6898d0270c23c3a7158a5102e9b84ff40))
- **android:** save activity result launcher calls ([#5004](https://github.com/ionic-team/capacitor/issues/5004)) ([2c1eb60](https://github.com/ionic-team/capacitor/commit/2c1eb603c79b94f6fcc74f0cbef523590b656a1e))

## [3.2.2](https://github.com/ionic-team/capacitor/compare/3.2.1...3.2.2) (2021-09-02)

### Bug Fixes

- **ios:** fixing podspec source paths ([#5002](https://github.com/ionic-team/capacitor/issues/5002)) ([6004a43](https://github.com/ionic-team/capacitor/commit/6004a43c608a4c967e3444c83954ad2095c3dcfd))

## [3.2.1](https://github.com/ionic-team/capacitor/compare/3.2.0...3.2.1) (2021-09-01)

**Note:** Version bump only for package capacitor

# [3.2.0](https://github.com/ionic-team/capacitor/compare/3.1.2...3.2.0) (2021-08-18)

### Bug Fixes

- **android:** Don't inject map files into capacitor script ([#4893](https://github.com/ionic-team/capacitor/issues/4893)) ([992bebc](https://github.com/ionic-team/capacitor/commit/992bebce5a54128ec09b4905c4424fbe392719be))
- **cli:** Put cordova git pod dependencies in Podfile ([#4940](https://github.com/ionic-team/capacitor/issues/4940)) ([642dbf4](https://github.com/ionic-team/capacitor/commit/642dbf433e22bb695e5f782bd685de42eb2afada))
- **cli:** Separate Swift plugins from ObjC plugins ([#4925](https://github.com/ionic-team/capacitor/issues/4925)) ([43ce803](https://github.com/ionic-team/capacitor/commit/43ce803975ccd66823aab1e8c0d44d0ca81c6b2f))

### Features

- **core:** implement CapacitorCustomPlatform for 3rd party platforms ([#4771](https://github.com/ionic-team/capacitor/issues/4771)) ([12c6294](https://github.com/ionic-team/capacitor/commit/12c6294b9eb82976b1322f00da9ba5a6004f7977))

## [3.1.2](https://github.com/ionic-team/capacitor/compare/3.1.1...3.1.2) (2021-07-21)

### Bug Fixes

- **android:** add missing android webview lifecycle events ([6a7c4e3](https://github.com/ionic-team/capacitor/commit/6a7c4e3b3a250270ac5c4b0f09da2a613ef2cf17))
- **android:** Set theme an content view on onCreate ([#4841](https://github.com/ionic-team/capacitor/issues/4841)) ([8950c60](https://github.com/ionic-team/capacitor/commit/8950c600bb6e3804b79c62e83fef2253c2cc2389))
- **cli:** Don't warn about hideLogs on some commands ([#4813](https://github.com/ionic-team/capacitor/issues/4813)) ([dc279cc](https://github.com/ionic-team/capacitor/commit/dc279cc0a4ba8332296c65ca00647829f43ed1d9))
- **core:** handle toJSON() in plugin objects ([#4823](https://github.com/ionic-team/capacitor/issues/4823)) ([0479822](https://github.com/ionic-team/capacitor/commit/04798221666437408f22947253a18ccb4f9e409e))
- **core:** Modify safeStringify to allow multiple null values ([#4853](https://github.com/ionic-team/capacitor/issues/4853)) ([854539b](https://github.com/ionic-team/capacitor/commit/854539b62a658e484954edbe38b25eea1b0b6f10))

## [3.1.1](https://github.com/ionic-team/capacitor/compare/3.1.0...3.1.1) (2021-07-07)

### Bug Fixes

- fixing peer deps issues in android and ios libs ([310d9f4](https://github.com/ionic-team/capacitor/commit/310d9f486db976cb258fcda5ac893f019667617f))

# [3.1.0](https://github.com/ionic-team/capacitor/compare/3.0.2...3.1.0) (2021-07-07)

### Bug Fixes

- **cli:** Don't error if there are no scripts ([#4763](https://github.com/ionic-team/capacitor/issues/4763)) ([dec3fb2](https://github.com/ionic-team/capacitor/commit/dec3fb285239912980f2abea1cf48c583da6a163))
- **ios:** isNewBinary is true if defaults have no stored versions ([#4779](https://github.com/ionic-team/capacitor/issues/4779)) ([bd86dbe](https://github.com/ionic-team/capacitor/commit/bd86dbeb74771ed201d0100773babf49e6764818))

### Features

- **cli:** Add hooks to call into npm scripts when capacitor commands run ([#4739](https://github.com/ionic-team/capacitor/issues/4739)) ([515230c](https://github.com/ionic-team/capacitor/commit/515230ccefec76d4b7ed03ef1122709d1b63b58a))
- **cli:** allow run command to use flavors ([#4782](https://github.com/ionic-team/capacitor/issues/4782)) ([05cb853](https://github.com/ionic-team/capacitor/commit/05cb8533d4479efd3dc823b18f48699302f462ba))
- **ios:** Add limitsNavigationsToAppBoundDomains configuration option ([#4789](https://github.com/ionic-team/capacitor/issues/4789)) ([2b7016f](https://github.com/ionic-team/capacitor/commit/2b7016f3b4d62fd8c9d03fde2745b3d515bf08b2))

## [3.0.2](https://github.com/ionic-team/capacitor/compare/3.0.1...3.0.2) (2021-06-23)

### Bug Fixes

- **android:** Set WEBVIEW_SERVER_URL before injecting native-bridge ([#4748](https://github.com/ionic-team/capacitor/issues/4748)) ([5d6b179](https://github.com/ionic-team/capacitor/commit/5d6b17994abc7ad770b95e3a9fc29aecf5d9fc05))
- **cli:** correctly show EACCES error on run ([#4742](https://github.com/ionic-team/capacitor/issues/4742)) ([2ab8778](https://github.com/ionic-team/capacitor/commit/2ab877881a292bba0aed946b20c3c6bb58808e58))
- **cli:** Don't error on ios sync on non macOS ([#4723](https://github.com/ionic-team/capacitor/issues/4723)) ([368ffad](https://github.com/ionic-team/capacitor/commit/368ffad03612841a8f228c6a174c141659f5293d))
- **core:** cordova events not firing ([#4712](https://github.com/ionic-team/capacitor/issues/4712)) ([ca4e3b6](https://github.com/ionic-team/capacitor/commit/ca4e3b62dba6a40e593a1404ba2fe2b416a4ac14))
- **ios:** Use proper native events for cordova events ([#4720](https://github.com/ionic-team/capacitor/issues/4720)) ([99c21dc](https://github.com/ionic-team/capacitor/commit/99c21dcf98f1418d992e845492c730160611783a))

## [3.0.1](https://github.com/ionic-team/capacitor/compare/3.0.0...3.0.1) (2021-06-09)

### Bug Fixes

- **android:** Avoid crash on input file ([#4707](https://github.com/ionic-team/capacitor/issues/4707)) ([883c0fe](https://github.com/ionic-team/capacitor/commit/883c0fe4a8a33d2e14894d9b307f4d7ce6d13bad))
- **android:** Make proxy handle user info in server url ([#4699](https://github.com/ionic-team/capacitor/issues/4699)) ([baeed45](https://github.com/ionic-team/capacitor/commit/baeed45038134d446aef7747e5ad5ce4ac07c438))
- **android:** Reset bridge on onPageStarted only ([#4634](https://github.com/ionic-team/capacitor/issues/4634)) ([96e4830](https://github.com/ionic-team/capacitor/commit/96e483046c9128dbcaec21efb0f5d619c6b1185f))
- **cli:** add priority to framework detection ([#4617](https://github.com/ionic-team/capacitor/issues/4617)) ([6a22f03](https://github.com/ionic-team/capacitor/commit/6a22f0375921fc7c015bc72e036dee014b1baed9))
- **cli:** Better native-run error ([#4676](https://github.com/ionic-team/capacitor/issues/4676)) ([39eebd0](https://github.com/ionic-team/capacitor/commit/39eebd0a2dc45fd5d07f79fb9ad5b919556c5fc5))
- **cli:** Don't prompt cordova preferences if non interactive ([#4680](https://github.com/ionic-team/capacitor/issues/4680)) ([293527c](https://github.com/ionic-team/capacitor/commit/293527c85296a9b79ce6dbd12e0f3e3e43fbce0b))
- **cli:** Remove v3 prefix from docs urls ([#4596](https://github.com/ionic-team/capacitor/issues/4596)) ([f99f11a](https://github.com/ionic-team/capacitor/commit/f99f11a6ee65020a8b2e58665e3427de814fba3a))
- **cli:** Throw error if native-run didn't find targets ([#4681](https://github.com/ionic-team/capacitor/issues/4681)) ([bfbf2b5](https://github.com/ionic-team/capacitor/commit/bfbf2b5ffb48bf1617404385f7407baefcfe3282))
- Make isPluginAvailable available on bridge ([#4589](https://github.com/ionic-team/capacitor/issues/4589)) ([151e7a8](https://github.com/ionic-team/capacitor/commit/151e7a899d9646dbd5625a2539fd3f2297349bc5))

# [3.0.0](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.4...3.0.0) (2021-05-18)

### Bug Fixes

- **cli:** create-react-app framework detection should not look for react-dev-utils ([#4585](https://github.com/ionic-team/capacitor/issues/4585)) ([9f7910e](https://github.com/ionic-team/capacitor/commit/9f7910ee39ea7721d01428ec65b3d101b8ba963e))

# [3.0.0-rc.4](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.3...3.0.0-rc.4) (2021-05-18)

### Features

- **cli:** auto detect framework's webDir ([#4550](https://github.com/ionic-team/capacitor/issues/4550)) ([329448a](https://github.com/ionic-team/capacitor/commit/329448a26846b5167b16f9169d62a9ff61eef87d))

# [3.0.0-rc.3](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.2...3.0.0-rc.3) (2021-05-11)

**Note:** Version bump only for package capacitor

# [3.0.0-rc.2](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.1...3.0.0-rc.2) (2021-05-07)

### Bug Fixes

- **bridge:** Fix type errors with new Platforms API ([#4524](https://github.com/ionic-team/capacitor/issues/4524)) ([7bbaea8](https://github.com/ionic-team/capacitor/commit/7bbaea85494c53a950abab40bb77f37087e22abe))
- **bridge:** Safely JSON.Stringify circular json on log ([#4507](https://github.com/ionic-team/capacitor/issues/4507)) ([e4c8fe4](https://github.com/ionic-team/capacitor/commit/e4c8fe41ec3992df5c20e4d0d3b69240ce672e44)), closes [#4506](https://github.com/ionic-team/capacitor/issues/4506)
- **ios:** Don't auto release saved calls ([#4535](https://github.com/ionic-team/capacitor/issues/4535)) ([4f76933](https://github.com/ionic-team/capacitor/commit/4f76933b98d0461564d3dca9b36d4ea1eba8ed49))

### Features

- **core:** platforms api ([#4255](https://github.com/ionic-team/capacitor/issues/4255)) ([7d62713](https://github.com/ionic-team/capacitor/commit/7d6271369cb15eeab07c0bc7f606de6447a17cd4))

# [3.0.0-rc.1](https://github.com/ionic-team/capacitor/compare/3.0.0-rc.0...3.0.0-rc.1) (2021-04-29)

### Bug Fixes

- generate Capacitor.Plugins object ([#4496](https://github.com/ionic-team/capacitor/issues/4496)) ([1c71b7a](https://github.com/ionic-team/capacitor/commit/1c71b7adb2c325e34d980dbf578dc22afb2c332b))
- **android:** Release the call after reject/resolve ([#4318](https://github.com/ionic-team/capacitor/issues/4318)) ([a9f30a8](https://github.com/ionic-team/capacitor/commit/a9f30a88bf3cf239a59c4e901e2a9a2a141a9044))
- **android:** resolve issue with activity result API registration for fragments ([#4402](https://github.com/ionic-team/capacitor/issues/4402)) ([ac6c6bc](https://github.com/ionic-team/capacitor/commit/ac6c6bc031e0c8236004dfb9e1b04f1f849c1519))
- **cli:** Allow prereleases on node version check ([#4469](https://github.com/ionic-team/capacitor/issues/4469)) ([dd26a98](https://github.com/ionic-team/capacitor/commit/dd26a98bde9c4487178bc4ee45587f86ec53df2a))
- **cli:** filter targets without id from run device list ([#4397](https://github.com/ionic-team/capacitor/issues/4397)) ([9ec444f](https://github.com/ionic-team/capacitor/commit/9ec444f034d435c7c945e9a20e3ca99a3b1f54d6))
- **cordova:** use proper targetSdkVersion ([#4498](https://github.com/ionic-team/capacitor/issues/4498)) ([7d48be8](https://github.com/ionic-team/capacitor/commit/7d48be8ce77e1f19e5bb267abdc61eb98b4d0f3c))
- **core:** Call native implementation before web implementation ([#4493](https://github.com/ionic-team/capacitor/issues/4493)) ([febd606](https://github.com/ionic-team/capacitor/commit/febd60617ab60a3b34132f68f212e9a867d1b434))
- **core:** Use web listener if there is no native implementation ([#4488](https://github.com/ionic-team/capacitor/issues/4488)) ([196d843](https://github.com/ionic-team/capacitor/commit/196d843a3c9442c5dc6cf61bfe3494fa399dec4f))
- **ios:** cordova-plugin-screen-orientation compatibility ([#4367](https://github.com/ionic-team/capacitor/issues/4367)) ([b893a57](https://github.com/ionic-team/capacitor/commit/b893a57aaaf3a16e13db9c33037a12f1a5ac92e0))
- **ios:** fire resume/pause events if no cordova plugins installed ([#4467](https://github.com/ionic-team/capacitor/issues/4467)) ([0105f7a](https://github.com/ionic-team/capacitor/commit/0105f7a2c68f2e7bec16ca23384b6acbb2f3057b))
- **ios:** put cancel button of confirm/prompt on the left ([#4464](https://github.com/ionic-team/capacitor/issues/4464)) ([e5b53aa](https://github.com/ionic-team/capacitor/commit/e5b53aa687a70938994802c7b1367cfcbb1e3811))

### Features

- Unify logging behavior across environments ([#4416](https://github.com/ionic-team/capacitor/issues/4416)) ([bae0f3d](https://github.com/ionic-team/capacitor/commit/bae0f3d2cee84978636d0f589bc7e2f745671baf))
- **android:** ability to add listeners to the Capacitor WebView ([#4405](https://github.com/ionic-team/capacitor/issues/4405)) ([7bdcc15](https://github.com/ionic-team/capacitor/commit/7bdcc15a20248fc17b5867b215bba0c43e29b2c0))
- **cli:** Add signup prompt on first init ([#4440](https://github.com/ionic-team/capacitor/issues/4440)) ([b3faa97](https://github.com/ionic-team/capacitor/commit/b3faa97d9b0ee542a8d90f433545f7e83402c485))
- **iOS:** Include native-bridge.js as a resource in both Cocoapods and direct build ([#4505](https://github.com/ionic-team/capacitor/issues/4505)) ([c16ccc0](https://github.com/ionic-team/capacitor/commit/c16ccc0118aec57dc23649894bc3bcd83827f89f))

# [3.0.0-rc.0](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.6...3.0.0-rc.0) (2021-03-10)

### Bug Fixes

- **android:** calls re-saved during permission/activity result callbacks were being released ([502a2d1](https://github.com/ionic-team/capacitor/commit/502a2d18ddce870f4caf810b405f7363f2340067))
- **android:** live reload not working when using adb reverse ([362f221](https://github.com/ionic-team/capacitor/commit/362f2219767a5f28e3ce1f6857a0e20024adc6b6))
- **cli:** Make tests work on npm 7 ([#4297](https://github.com/ionic-team/capacitor/issues/4297)) ([676c907](https://github.com/ionic-team/capacitor/commit/676c907c7ce84fdc57d00152024144a74d24b137))

### Features

- **android:** add configurable app path for embedded capacitor ([#4264](https://github.com/ionic-team/capacitor/issues/4264)) ([e433691](https://github.com/ionic-team/capacitor/commit/e43369144f7f378edc4f5d4f8dbbafe6cff6a70d))
- **android:** Unifying saving plugin calls ([#4254](https://github.com/ionic-team/capacitor/issues/4254)) ([a648c51](https://github.com/ionic-team/capacitor/commit/a648c51588627404b5ad30c35943fed18af4a546))
- **iOS:** Obj-C convenience accessors on CAPPluginCall ([#4309](https://github.com/ionic-team/capacitor/issues/4309)) ([e3657d7](https://github.com/ionic-team/capacitor/commit/e3657d77647187946ffcd4c4791f4a47c768db7f))
- **iOS:** Unifying saving plugin calls ([#4253](https://github.com/ionic-team/capacitor/issues/4253)) ([de71da5](https://github.com/ionic-team/capacitor/commit/de71da52b80ff52d0234a5301fc6cae675640a33))

# [3.0.0-beta.6](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.5...3.0.0-beta.6) (2021-02-27)

**Note:** Version bump only for package capacitor

# [3.0.0-beta.5](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.4...3.0.0-beta.5) (2021-02-27)

**Note:** Version bump only for package capacitor

# [3.0.0-beta.4](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.3...3.0.0-beta.4) (2021-02-26)

### Bug Fixes

- **cli:** init failure if config.xml is present ([#4227](https://github.com/ionic-team/capacitor/issues/4227)) ([f1703dc](https://github.com/ionic-team/capacitor/commit/f1703dcb3ebaa83df9f2b72ca00eb6721e96dfd9))

# [3.0.0-beta.3](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.2...3.0.0-beta.3) (2021-02-18)

### Bug Fixes

- **cli:** do not error if webDir is missing when adding platforms ([#4215](https://github.com/ionic-team/capacitor/issues/4215)) ([4583add](https://github.com/ionic-team/capacitor/commit/4583add61f5f7ac60de8722664811d96d4095459))
- **core:** do not add window.cordova on web apps ([#4214](https://github.com/ionic-team/capacitor/issues/4214)) ([6d673ef](https://github.com/ionic-team/capacitor/commit/6d673ef7076f00c37eac0f801c4c487415df6d4d))

### Features

- **cli:** do not require webDir when server.url is set ([#4200](https://github.com/ionic-team/capacitor/issues/4200)) ([91ddfbd](https://github.com/ionic-team/capacitor/commit/91ddfbd3cd1f598906b2ddc5cab8904420f231f6))
- **iOS:** Add automatic Date serialization to bridge communication ([#4177](https://github.com/ionic-team/capacitor/issues/4177)) ([3dabc69](https://github.com/ionic-team/capacitor/commit/3dabc69eab1c8ce0b7734acb641b67d349ec3093))

# [3.0.0-beta.2](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.1...3.0.0-beta.2) (2021-02-08)

### Bug Fixes

- **core:** handle js.error messages to fix window error handler ([#4124](https://github.com/ionic-team/capacitor/issues/4124)) ([c0deb1d](https://github.com/ionic-team/capacitor/commit/c0deb1de349f5631af08eecbffc0ea4dea97c60d))
- address bug in `isPluginAvailable()` for web and native ([#4114](https://github.com/ionic-team/capacitor/issues/4114)) ([2fbd954](https://github.com/ionic-team/capacitor/commit/2fbd95465a321b8f4c50d4daf22a63d8043cee9b))
- **android:** get PermissionState enum by state value ([#4100](https://github.com/ionic-team/capacitor/issues/4100)) ([194ae86](https://github.com/ionic-team/capacitor/commit/194ae8699944bf016132fb64fe48010679a6d64e))
- **android:** requestPermission call rejects if permission missing in manifest ([55ef5ff](https://github.com/ionic-team/capacitor/commit/55ef5ff38e87729412c44bfa4b2f29e53044cecc))
- **core:** fix another $$typeof issue ([#4113](https://github.com/ionic-team/capacitor/issues/4113)) ([4cbae41](https://github.com/ionic-team/capacitor/commit/4cbae41908670ab843bea5850da7a2cf1082afdb))
- **iOS:** preserve null values in bridged types ([#4072](https://github.com/ionic-team/capacitor/issues/4072)) ([6dc691e](https://github.com/ionic-team/capacitor/commit/6dc691e66a07a421d5d4b08028ea05a65b3ddd84))
- remove USE_PUSH flag and code from iOS template ([#4070](https://github.com/ionic-team/capacitor/issues/4070)) ([6d54243](https://github.com/ionic-team/capacitor/commit/6d54243108883e0b07d725dcc7a1cb8700f1b35e))

### Features

- **android:** activity result use new API and update permission result callbacks to match ([#4127](https://github.com/ionic-team/capacitor/issues/4127)) ([002f1e5](https://github.com/ionic-team/capacitor/commit/002f1e55173a50b9fe918b4eda73b5113b713282))
- **android:** androidxActivityVersion & androidxFragmentVersion gradle variables ([#4103](https://github.com/ionic-team/capacitor/issues/4103)) ([4f77b96](https://github.com/ionic-team/capacitor/commit/4f77b962be85fc6bfc555a106c5b3e6707526626))
- **cli:** configurable iOS build scheme ([#4073](https://github.com/ionic-team/capacitor/issues/4073)) ([e6374dc](https://github.com/ionic-team/capacitor/commit/e6374dc88c388a30186e8bfea22ce129ca1a9e02))
- **cli:** send config, rootDir, and webDir to custom platform hooks ([#4084](https://github.com/ionic-team/capacitor/issues/4084)) ([13e9860](https://github.com/ionic-team/capacitor/commit/13e9860468126ba3c37b25d9093ab5f6cce2df2c))

# [3.0.0-beta.1](https://github.com/ionic-team/capacitor/compare/3.0.0-beta.0...3.0.0-beta.1) (2021-01-14)

**Note:** Version bump only for package capacitor

# [3.0.0-beta.0](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.14...3.0.0-beta.0) (2021-01-13)

### Features

- **core:** add commonjs output format ([#4064](https://github.com/ionic-team/capacitor/issues/4064)) ([74b7be8](https://github.com/ionic-team/capacitor/commit/74b7be89ef1bbf13ccd103410037cfe81c8fc124))

# [3.0.0-alpha.14](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.13...3.0.0-alpha.14) (2021-01-13)

### Bug Fixes

- **android:** append missing new lines on injected cordova files ([#4058](https://github.com/ionic-team/capacitor/issues/4058)) ([dbdc78d](https://github.com/ionic-team/capacitor/commit/dbdc78dc08e016dfbc2454d4f53a49f16f744b3e))
- **cli:** bump minimum node version to 12.4.0 ([#4059](https://github.com/ionic-team/capacitor/issues/4059)) ([61e3be0](https://github.com/ionic-team/capacitor/commit/61e3be0c865a3591a0d6bcfc27d0bbb72ee98395))
- **cli:** default to new directory instead of crashing ([70fdf0b](https://github.com/ionic-team/capacitor/commit/70fdf0be0e0f06b4f20e20a3ae4bfef4de2374e9))

### Features

- **android:** method to check permission for an alias ([#4062](https://github.com/ionic-team/capacitor/issues/4062)) ([c88c4b4](https://github.com/ionic-team/capacitor/commit/c88c4b46b949a87c1b89476b75273adef725242b))

# [3.0.0-alpha.13](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.12...3.0.0-alpha.13) (2021-01-13)

### Bug Fixes

- **cli:** use stderr for logs when using --json option ([#4044](https://github.com/ionic-team/capacitor/issues/4044)) ([452a101](https://github.com/ionic-team/capacitor/commit/452a101648fe6da4232d18985c5d814920505920))
- **iOS:** properly handle date types during JSValue coercion ([#4043](https://github.com/ionic-team/capacitor/issues/4043)) ([1affae7](https://github.com/ionic-team/capacitor/commit/1affae7cf8d2f49681bf25be48633ab985bbd12f))
- **iOS:** skip Swift type coercion on Cordova plugin calls ([#4048](https://github.com/ionic-team/capacitor/issues/4048)) ([7bb9e0f](https://github.com/ionic-team/capacitor/commit/7bb9e0f22fdea369a6522c2d63a5b56baab9f5ca))

### Features

- **cli:** create TS configuration files in `init` ([#3999](https://github.com/ionic-team/capacitor/issues/3999)) ([fa7003e](https://github.com/ionic-team/capacitor/commit/fa7003e4ef1d988633abb85b1b109c51b94fda42))

# [3.0.0-alpha.12](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.11...3.0.0-alpha.12) (2021-01-08)

### Bug Fixes

- move `public` into iOS target directory ([#4002](https://github.com/ionic-team/capacitor/issues/4002)) ([4f41296](https://github.com/ionic-team/capacitor/commit/4f41296a109cf73fdf8e695849e95f292a543f85))
- **cli:** run an actual debug build for iOS ([#4014](https://github.com/ionic-team/capacitor/issues/4014)) ([dc6399c](https://github.com/ionic-team/capacitor/commit/dc6399cf0b5eb6afb50274a84dc71486cd3e4173))
- **core:** fix $$typeof() not implemented error ([#4013](https://github.com/ionic-team/capacitor/issues/4013)) ([c7f80b5](https://github.com/ionic-team/capacitor/commit/c7f80b577c1de60cd0a105f3aaf0d1c314f3150d))

### Features

- **android:** switch to new callback-style permission requests ([#4033](https://github.com/ionic-team/capacitor/issues/4033)) ([cc459de](https://github.com/ionic-team/capacitor/commit/cc459de7fc070c0227e066f3e8b92062728ab45d))
- **cli:** allow 'export default' style TS config files ([#4031](https://github.com/ionic-team/capacitor/issues/4031)) ([9393667](https://github.com/ionic-team/capacitor/commit/9393667bbe629d6c18a22b16fe3f3c6fe83e11f6))
- **cli:** opt-in anonymous usage data ([#4022](https://github.com/ionic-team/capacitor/issues/4022)) ([3facfb7](https://github.com/ionic-team/capacitor/commit/3facfb790bff79b00ba1ab6dd8cb331989937da7))

# [3.0.0-alpha.11](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.10...3.0.0-alpha.11) (2020-12-26)

### Features

- **android:** expose CapConfig.loadDefault(), deprecate v2 constructor ([#3964](https://github.com/ionic-team/capacitor/issues/3964)) ([94ae977](https://github.com/ionic-team/capacitor/commit/94ae9774d2467fa7ba0336e7183f6d28cae45908))
- **iOS:** Open CAPBridgeViewController for subclassing ([#3973](https://github.com/ionic-team/capacitor/issues/3973)) ([a601705](https://github.com/ionic-team/capacitor/commit/a601705f8116ac10d1a0b5942511952c07cf474e))

# [3.0.0-alpha.10](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.9...3.0.0-alpha.10) (2020-12-15)

### Bug Fixes

- **android:** include lint.xml for downstream lint tasks ([efa72f3](https://github.com/ionic-team/capacitor/commit/efa72f38c5f64d3b91cc4c4c7d4d87ab38219893))

# [3.0.0-alpha.9](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.8...3.0.0-alpha.9) (2020-12-15)

### Bug Fixes

- **android:** include lint-baseline.xml for downstream lint tasks ([20ccaa0](https://github.com/ionic-team/capacitor/commit/20ccaa0311dcf8468019325ad976156d92ed0202))

# [3.0.0-alpha.8](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.7...3.0.0-alpha.8) (2020-12-15)

### Bug Fixes

- **Android:** Use plugin's getPermissionStates() to support overriding ([#3939](https://github.com/ionic-team/capacitor/issues/3939)) ([855a607](https://github.com/ionic-team/capacitor/commit/855a60711bcf6cff3215a36fac7e5314a2c4d159))
- **ios:** expose lastURL getter ([#3898](https://github.com/ionic-team/capacitor/issues/3898)) ([90b7fe3](https://github.com/ionic-team/capacitor/commit/90b7fe39f5a7cb9d584618a6fba66338f2bbf5fe))

### Features

- **android:** add onConfigurationChanged() activity lifecycle hook ([#3936](https://github.com/ionic-team/capacitor/issues/3936)) ([29e9e2c](https://github.com/ionic-team/capacitor/commit/29e9e2c5c30f23eb3ea2e88b1427eed0636e8125))
- **android:** Add WebColor utility for parsing color ([#3947](https://github.com/ionic-team/capacitor/issues/3947)) ([3746404](https://github.com/ionic-team/capacitor/commit/3746404240459ca9ea8175f2bb241d80746e8328))
- **Android:** Refactoring configuration ([#3778](https://github.com/ionic-team/capacitor/issues/3778)) ([9820a30](https://github.com/ionic-team/capacitor/commit/9820a30688f0a774eced1676f1927cacde53301f))

# [3.0.0-alpha.7](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.6...3.0.0-alpha.7) (2020-12-02)

### Bug Fixes

- **android:** dont release calls that are manually saved, eg listeners/watchers ([#3857](https://github.com/ionic-team/capacitor/issues/3857)) ([f1c8fe9](https://github.com/ionic-team/capacitor/commit/f1c8fe9e039d25eff2122fe915f17e84477427eb))
- **android:** fixed breaking change to `handleOnActivityResult` ([#3888](https://github.com/ionic-team/capacitor/issues/3888)) ([5fd60e6](https://github.com/ionic-team/capacitor/commit/5fd60e607b79b46cec08c6af1674305b1199d0a4))
- **android:** resolve undefined for both checkPermissions and requestPermissions by default ([#3855](https://github.com/ionic-team/capacitor/issues/3855)) ([383f62b](https://github.com/ionic-team/capacitor/commit/383f62b2b6531c579aac469e29b7c1c0c1f7540f))
- **cli:** Properly detect cocoapods on multiple platforms ([#3810](https://github.com/ionic-team/capacitor/issues/3810)) ([8753694](https://github.com/ionic-team/capacitor/commit/8753694b12033feb01c82bd5985dce2584bae80c))
- **cli:** run sync instead of copy during run ([#3816](https://github.com/ionic-team/capacitor/issues/3816)) ([ff45340](https://github.com/ionic-team/capacitor/commit/ff4534064c7f47331721d086889a42a97cf30945))
- **cli:** use correct path for native-run ([02cf1ba](https://github.com/ionic-team/capacitor/commit/02cf1ba4b7d1c419551b6494f08cb90553fd93be))
- **core:** export PermissionState ([#3775](https://github.com/ionic-team/capacitor/issues/3775)) ([2d5ac96](https://github.com/ionic-team/capacitor/commit/2d5ac963d131a704628f8a421be8429b9f63cf61))
- **ios:** share message handler between webview and bridge ([#3875](https://github.com/ionic-team/capacitor/issues/3875)) ([f7dff2e](https://github.com/ionic-team/capacitor/commit/f7dff2e661a54bee770940ee1ebd9eab6456ba2e))

### Features

- automatically import Android plugins ([#3788](https://github.com/ionic-team/capacitor/issues/3788)) ([aa1e1c6](https://github.com/ionic-team/capacitor/commit/aa1e1c604e260cc8babb0e7f5230f692bdcf6f09))
- **android:** Add handlePermissions function for plugins to call ([#3768](https://github.com/ionic-team/capacitor/issues/3768)) ([3a7e282](https://github.com/ionic-team/capacitor/commit/3a7e282a7515784dd343bbf1e3d52e0299bac887))
- **android:** modified plugin annotation format for multi-permissions and empty (auto-grant) ([#3822](https://github.com/ionic-team/capacitor/issues/3822)) ([1b5a3bd](https://github.com/ionic-team/capacitor/commit/1b5a3bdeb1b35612cf04e58bdf2fca68a0832a14))
- **cli:** add --no-sync option to run ([#3819](https://github.com/ionic-team/capacitor/issues/3819)) ([8def829](https://github.com/ionic-team/capacitor/commit/8def8290bb182436204380fc711d84fa36c17004))
- **cli:** add config command ([#3817](https://github.com/ionic-team/capacitor/issues/3817)) ([d3d7f89](https://github.com/ionic-team/capacitor/commit/d3d7f893179a170017a36dd76e9ed7bd374a22b3))
- **cli:** Add configurable pod path ([#3811](https://github.com/ionic-team/capacitor/issues/3811)) ([88f9187](https://github.com/ionic-team/capacitor/commit/88f9187f41f95ef62f6bf854c63f0b1c91dbc2f7))
- **cli:** extendable plugin configuration types ([#3858](https://github.com/ionic-team/capacitor/issues/3858)) ([f789526](https://github.com/ionic-team/capacitor/commit/f789526e42283c2a166ff32a2b16b70e65b94ba4))
- **cli:** locate plugins by allowlist ([#3762](https://github.com/ionic-team/capacitor/issues/3762)) ([81963b6](https://github.com/ionic-team/capacitor/commit/81963b615ccbdc8993d0befbefe87173db4ba108))
- **cli:** STUDIO_PATH environment variable ([#3755](https://github.com/ionic-team/capacitor/issues/3755)) ([65cef53](https://github.com/ionic-team/capacitor/commit/65cef53277444c173ff928dc4ef196f0dae4c8a7))
- **cli:** support TS/JS config files ([#3756](https://github.com/ionic-team/capacitor/issues/3756)) ([a52775f](https://github.com/ionic-team/capacitor/commit/a52775fb635a5cbcccf2dcaa955ad12804ad5986))
- **ios:** add local and remote notification router ([#3796](https://github.com/ionic-team/capacitor/issues/3796)) ([f3edaf9](https://github.com/ionic-team/capacitor/commit/f3edaf93d4328ea3ee90df573bf14ef0efc7553b))
- **ios:** add path utilities to bridge ([#3842](https://github.com/ionic-team/capacitor/issues/3842)) ([c31eb35](https://github.com/ionic-team/capacitor/commit/c31eb35f83a33626a9d88731c0fff18966c71b0b))
- **iOS:** Add base implementation of permissions calls ([#3856](https://github.com/ionic-team/capacitor/issues/3856)) ([d733236](https://github.com/ionic-team/capacitor/commit/d7332364212794a5005229defd05c129921d9c5d))
- **iOS:** Refactoring configuration ([#3759](https://github.com/ionic-team/capacitor/issues/3759)) ([e2e64c2](https://github.com/ionic-team/capacitor/commit/e2e64c23b88d93a1c594df51dddd0c55d5f37770))

# [3.0.0-alpha.6](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.5...3.0.0-alpha.6) (2020-10-30)

### Bug Fixes

- **android:** avoid crash on input file capture ([#3715](https://github.com/ionic-team/capacitor/issues/3715)) ([f502a99](https://github.com/ionic-team/capacitor/commit/f502a9964e28012980d636014043e86e918031d7))

### Features

- improve permissions ([eec61a6](https://github.com/ionic-team/capacitor/commit/eec61a6d8d8edfe94aea1a361787d1e6c736e20d))
- unified errors and error codes ([#3673](https://github.com/ionic-team/capacitor/issues/3673)) ([f9e0803](https://github.com/ionic-team/capacitor/commit/f9e08038aa88f7453e8235f380d2767a12a7a073))
- **cli:** add `capacitor run` command ([#3599](https://github.com/ionic-team/capacitor/issues/3599)) ([8576b0f](https://github.com/ionic-team/capacitor/commit/8576b0ff6a048981a07cab91135a0071b724e043))

# [3.0.0-alpha.5](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.4...3.0.0-alpha.5) (2020-10-06)

**Note:** Version bump only

# [3.0.0-alpha.4](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.3...3.0.0-alpha.4) (2020-09-23)

### Features

- **cli:** ability to specify custom platform directories ([#3565](https://github.com/ionic-team/capacitor/issues/3565)) ([c6eda55](https://github.com/ionic-team/capacitor/commit/c6eda55482ef56abdfe9a33444e828b771af9386))

# [3.0.0-alpha.3](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.2...3.0.0-alpha.3) (2020-09-15)

### Bug Fixes

- **android:** allow directories beginning with underscore in assets dir to be packaged ([c23d993](https://github.com/ionic-team/capacitor/commit/c23d99315acea2f0894e5ff8a08dd42a867b2982))

# [3.0.0-alpha.2](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.1...3.0.0-alpha.2) (2020-08-31)

### Features

- Add extension for creating data from data url ([#3474](https://github.com/ionic-team/capacitor/issues/3474)) ([2909fd0](https://github.com/ionic-team/capacitor/commit/2909fd0ac0d9fdb2cdb7fd25e38742451aa05fb1))

# [3.0.0-alpha.1](https://github.com/ionic-team/capacitor/compare/3.0.0-alpha.0...3.0.0-alpha.1) (2020-08-21)

### Bug Fixes

- **cli:** update plugin template to compile using java 8 ([#3350](https://github.com/ionic-team/capacitor/issues/3350)) ([676917e](https://github.com/ionic-team/capacitor/commit/676917eb81580ea5327d496bd80986e68df6ad04))
- **core:** provide mock implementation for unimplemented platforms ([#3352](https://github.com/ionic-team/capacitor/issues/3352)) ([befe230](https://github.com/ionic-team/capacitor/commit/befe2300435dbd54b22882fb6586c722f5ef466d))
- **core:** use more explicit result for Browser plugin events ([#3349](https://github.com/ionic-team/capacitor/issues/3349)) ([75f99d4](https://github.com/ionic-team/capacitor/commit/75f99d4de62a6afb2da0ff876ed3b0d351040184))
- **core:** use own type for backButton event result ([#3348](https://github.com/ionic-team/capacitor/issues/3348)) ([05d0e45](https://github.com/ionic-team/capacitor/commit/05d0e457eb69d5d39c8bb1d0117bc3d31afdca93))
- **ios:** config bug from swiftlint refactor ([ace879f](https://github.com/ionic-team/capacitor/commit/ace879f42b19aa064efa80142c3783f736745344))

### Features

- **cli:** add fmt script to plugin template ([#3354](https://github.com/ionic-team/capacitor/issues/3354)) ([9ca1e72](https://github.com/ionic-team/capacitor/commit/9ca1e723334f5d21706a8586c11d73162b47a13a))
- **core:** add unsupported browser exception ([#3389](https://github.com/ionic-team/capacitor/issues/3389)) ([c51e8f8](https://github.com/ionic-team/capacitor/commit/c51e8f8960c795421b35ad1fdd1cd6afbd7a7dfc))

# [3.0.0-alpha.0](https://github.com/ionic-team/capacitor/compare/2.4.6...3.0.0-alpha.0) (2020-07-23)

### Features

- **android:** add custom plugins to BridgeFragment ([#3280](https://github.com/ionic-team/capacitor/issues/3280)) ([d131a5f](https://github.com/ionic-team/capacitor/commit/d131a5fed2b9ae29b6952397ec2f81104545b749))
- **core:** add `registerPlugin` for importing from plugin packages ([#3305](https://github.com/ionic-team/capacitor/issues/3305)) ([95475cc](https://github.com/ionic-team/capacitor/commit/95475cceb4cbd5be2cc7e18f2cf3045eb6c6f7fd))

### Chores

- refactor(android): remove unused interaction listener on BridgeFragment (#3552) ([fae50b6](https://github.com/ionic-team/capacitor/commit/fae50b6)), closes [#3552](https://github.com/ionic-team/capacitor/issues/3552)

## [2.4.6](https://github.com/ionic-team/capacitor/compare/2.4.5...2.4.6) (2021-01-13)

### Bug Fixes

- fix(ios): correctly initialize cordova plugins with webViewEngine (#4039) ([273fab5](https://github.com/ionic-team/capacitor/commit/273fab5)), closes [#4039](https://github.com/ionic-team/capacitor/issues/4039)

## [2.4.5](https://github.com/ionic-team/capacitor/compare/2.4.4...2.4.5) (2020-12-14)

### Bug Fixes

- fix(ios): avoid crash on portrait apps after taking a photo (#3926) ([f182868](https://github.com/ionic-team/capacitor/commit/f182868)), closes [#3926](https://github.com/ionic-team/capacitor/issues/3926)

## [2.4.4](https://github.com/ionic-team/capacitor/compare/2.4.3...2.4.4) (2020-12-01)

### Bug Fixes

- fix: wildcard in allowNavigation (#3833) ([de1eac8](https://github.com/ionic-team/capacitor/commit/de1eac8)), closes [#3833](https://github.com/ionic-team/capacitor/issues/3833)
- fix(android): load local assets when using wildcard on allowNavigation (#3834) ([66f2efb](https://github.com/ionic-team/capacitor/commit/66f2efb)), closes [#3834](https://github.com/ionic-team/capacitor/issues/3834)
- fix(cli): replace AndroidManifest.xml Cordova variables with default value (#3863) ([9965d58](https://github.com/ionic-team/capacitor/commit/9965d58)), closes [#3863](https://github.com/ionic-team/capacitor/issues/3863)

## [2.4.3](https://github.com/ionic-team/capacitor/compare/2.4.2...2.4.3) (2020-11-18)

### Bug Fixes

- fix(ios): Don't get location if permission is not determined (#3802) ([4fb9d348](https://github.com/ionic-team/capacitor/commit/4fb9d348)), closes [#3789](https://github.com/ionic-team/capacitor/issues/3789)
- fix(Filesystem): avoid directory already exists on append (#3629) ([249073d6](https://github.com/ionic-team/capacitor/commit/249073d6)), closes [#3620](https://github.com/ionic-team/capacitor/issues/3620)
- fix(android): Avoid SecurityError on Android 10 file share (#3655) ([1c47e15f](https://github.com/ionic-team/capacitor/commit/1c47e15f)), closes [#3638](https://github.com/ionic-team/capacitor/issues/3638)

## [2.4.2](https://github.com/ionic-team/capacitor/compare/2.4.1...2.4.2) (2020-09-24)

### Bug Fixes

- fix(android): BridgeFragment NullPointerException (#3553) ([5133e2e](https://github.com/ionic-team/capacitor/commit/5133e2e)), closes [#3553](https://github.com/ionic-team/capacitor/issues/3553)
- fix(android): move splash screen trigger before the webview render to prevent flicker (2.x) (#3608) ([cbab54c](https://github.com/ionic-team/capacitor/commit/cbab54c)), closes [#3608](https://github.com/ionic-team/capacitor/issues/3608)
- fix(cli): halt update upon failure (#3595) ([ec086b0](https://github.com/ionic-team/capacitor/commit/ec086b0)), closes [#3595](https://github.com/ionic-team/capacitor/issues/3595)
- fix(ios): iterate listeners to avoid mutated while being enumerated (#3572) ([fbaab54](https://github.com/ionic-team/capacitor/commit/fbaab54)), closes [#3572](https://github.com/ionic-team/capacitor/issues/3572)

### Chores

- refactor(android): remove unused interaction listener on BridgeFragment (#3552) ([fae50b6](https://github.com/ionic-team/capacitor/commit/fae50b6)), closes [#3552](https://github.com/ionic-team/capacitor/issues/3552)

## [2.4.1](https://github.com/ionic-team/capacitor/compare/2.4.0...2.4.1) (2020-09-09)

### Bug Fixes

- fix(cli): replace SDK variables with default values on Cordova plugins (#3525) ([090427a](https://github.com/ionic-team/capacitor/commit/090427a)), closes [#3525](https://github.com/ionic-team/capacitor/issues/3525)
- fix(cordova): add CDVPlugin+Resources category for better plugin support (#3380) ([8d89b91](https://github.com/ionic-team/capacitor/commit/8d89b91)), closes [#3380](https://github.com/ionic-team/capacitor/issues/3380)

### Chores

- chore(cli): remove cordova-plugin-googlemaps from skip list (#3436) ([cfb74af](https://github.com/ionic-team/capacitor/commit/cfb74af)), closes [#3436](https://github.com/ionic-team/capacitor/issues/3436)

## [2.4.0](https://github.com/ionic-team/capacitor/compare/2.3.0...2.4.0) (2020-07-27)

### Bug Fixes

- fix(android): don't return 404 on empty files (#3323) ([cfbd1e3](https://github.com/ionic-team/capacitor/commit/cfbd1e3)), closes [#3323](https://github.com/ionic-team/capacitor/issues/3323)
- fix(android): fix LocalNotification `on` functionality (#3307) ([15af432](https://github.com/ionic-team/capacitor/commit/15af432)), closes [#3307](https://github.com/ionic-team/capacitor/issues/3307)
- fix(android): Provide a file name when an image is saved to the gallery to prevent crash (#3331) ([a7b9320](https://github.com/ionic-team/capacitor/commit/a7b9320)), closes [#3331](https://github.com/ionic-team/capacitor/issues/3331)
- fix(cli): avoid npm gitignore rename on new plugins (#3292) ([2c9b5e1](https://github.com/ionic-team/capacitor/commit/2c9b5e1)), closes [#3292](https://github.com/ionic-team/capacitor/issues/3292)
- fix(ios): only open a URL when the application is active (#3328) ([8d7c58b](https://github.com/ionic-team/capacitor/commit/8d7c58b)), closes [#3328](https://github.com/ionic-team/capacitor/issues/3328)

### Features

- feat(camera): add `preserveAspectRatio` resizing option (#3309) ([27a8bcb](https://github.com/ionic-team/capacitor/commit/27a8bcb)), closes [#3309](https://github.com/ionic-team/capacitor/issues/3309)

### Chores

- chore: bump peerDependencies for 2.4.0 (#3342) ([2ff7bc4](https://github.com/ionic-team/capacitor/commit/2ff7bc4)), closes [#3342](https://github.com/ionic-team/capacitor/issues/3342)
- chore: make deploy script push to 2.x branch (#3337) ([d0d30d6](https://github.com/ionic-team/capacitor/commit/d0d30d6)), closes [#3337](https://github.com/ionic-team/capacitor/issues/3337)
- chore(ci): hook up workflows for 2.x ([89f8ae8](https://github.com/ionic-team/capacitor/commit/89f8ae8))
- chore(readme): add contributors manually ([519ead8](https://github.com/ionic-team/capacitor/commit/519ead8))

## [2.3.0](https://github.com/ionic-team/capacitor/compare/2.2.1...2.3.0) (2020-07-16)

### Bug Fixes

- fix(android): restore local notifications after device reboot (#3027) ([2a39a7d](https://github.com/ionic-team/capacitor/commit/2a39a7d)), closes [#3027](https://github.com/ionic-team/capacitor/issues/3027)
- fix(android): Splash.show not resolving if splash is visible (#3262) ([bfd9884](https://github.com/ionic-team/capacitor/commit/bfd9884)), closes [#3262](https://github.com/ionic-team/capacitor/issues/3262)
- fix(android): use notification sound for notifications, not alarm (#2743) ([b2d50f9](https://github.com/ionic-team/capacitor/commit/b2d50f9)), closes [#2743](https://github.com/ionic-team/capacitor/issues/2743)
- fix(cli): Avoid duplicate usesCleartextTraffic attribute (#3245) ([861874f](https://github.com/ionic-team/capacitor/commit/861874f)), closes [#3245](https://github.com/ionic-team/capacitor/issues/3245)
- fix(cordova): patch usages of webView superview (#3177) ([8241c81](https://github.com/ionic-team/capacitor/commit/8241c81)), closes [#3177](https://github.com/ionic-team/capacitor/issues/3177)

### Features

- feat: add appId and appName to device info (#3244) ([0d5e132](https://github.com/ionic-team/capacitor/commit/0d5e132)), closes [#3244](https://github.com/ionic-team/capacitor/issues/3244)
- feat(android): add ability to share both text and file (#3233) ([4e8b59e](https://github.com/ionic-team/capacitor/commit/4e8b59e)), closes [#3233](https://github.com/ionic-team/capacitor/issues/3233)
- feat(android): add option to make a notification ongoing (#3165) ([1ee51cd](https://github.com/ionic-team/capacitor/commit/1ee51cd)), closes [#3165](https://github.com/ionic-team/capacitor/issues/3165)
- feat(android): start animatable layers when splash drawable is layered (#2733) ([606b59f](https://github.com/ionic-team/capacitor/commit/606b59f)), closes [#2733](https://github.com/ionic-team/capacitor/issues/2733)
- feat(android): update to use androidx.exifinterface.media.ExifInterface ([6196907](https://github.com/ionic-team/capacitor/commit/6196907))
- feat(cli): add hooks to capacitor commands for custom platforms (#3091) ([c2133c5](https://github.com/ionic-team/capacitor/commit/c2133c5)), closes [#3091](https://github.com/ionic-team/capacitor/issues/3091)
- feat(ios): improve initial webview loading appearance (#2933) ([49720a5](https://github.com/ionic-team/capacitor/commit/49720a5)), closes [#2933](https://github.com/ionic-team/capacitor/issues/2933)
- feat(web): add file input method for camera (#1856) ([25505d2](https://github.com/ionic-team/capacitor/commit/25505d2)), closes [#1856](https://github.com/ionic-team/capacitor/issues/1856)

### Chores

- chore: update ios and android peerDependencies (#3274) ([d8ee77b](https://github.com/ionic-team/capacitor/commit/d8ee77b)), closes [#3274](https://github.com/ionic-team/capacitor/issues/3274)
- chore(android): improve error message when Filesystem.copy fails (#3148) ([598d7dc](https://github.com/ionic-team/capacitor/commit/598d7dc)), closes [#3148](https://github.com/ionic-team/capacitor/issues/3148)
- chore(android): make androidx.exifinterface version configurable (#3236) ([3c64162](https://github.com/ionic-team/capacitor/commit/3c64162)), closes [#3236](https://github.com/ionic-team/capacitor/issues/3236)
- chore(cli): add deprecation notice for all electron commands (#3268) ([5e84ce9](https://github.com/ionic-team/capacitor/commit/5e84ce9)), closes [#3268](https://github.com/ionic-team/capacitor/issues/3268)
- chore(cli): add deprecation notice for electron (#3263) ([b7d5639](https://github.com/ionic-team/capacitor/commit/b7d5639)), closes [#3263](https://github.com/ionic-team/capacitor/issues/3263)
- chore(cli): pin cli version instead of latest on plugin generation (#3201) ([8651ef1](https://github.com/ionic-team/capacitor/commit/8651ef1)), closes [#3201](https://github.com/ionic-team/capacitor/issues/3201)
- chore(cli): update plugin generation and plugin template (#3241) ([97a5b9a](https://github.com/ionic-team/capacitor/commit/97a5b9a)), closes [#3241](https://github.com/ionic-team/capacitor/issues/3241)
- chore(cli): use real path to Capacitor iOS Pods (#3249) ([618f9cf](https://github.com/ionic-team/capacitor/commit/618f9cf)), closes [#3249](https://github.com/ionic-team/capacitor/issues/3249)

## [2.2.1](https://github.com/ionic-team/capacitor/compare/2.2.0...2.2.1) (2020-07-01)

### Bug Fixes

- fix: revert static Config class (#3126) ([d104e9a](https://github.com/ionic-team/capacitor/commit/d104e9a)), closes [#3126](https://github.com/ionic-team/capacitor/issues/3126)
- fix(android): LocalNotification action not dismissing notification (#3112) ([6f5504b](https://github.com/ionic-team/capacitor/commit/6f5504b)), closes [#3112](https://github.com/ionic-team/capacitor/issues/3112)
- fix(iOS): Making permissions switch statements exhaustive & supporting new iOS 14 cases (#3160) ([f1d8c8c](https://github.com/ionic-team/capacitor/commit/f1d8c8c)), closes [#3160](https://github.com/ionic-team/capacitor/issues/3160)
- fix(SplashScreen): show method not resolving if autoHide is false (#3144) ([28a0e42](https://github.com/ionic-team/capacitor/commit/28a0e42)), closes [#3144](https://github.com/ionic-team/capacitor/issues/3144)

### Docs

- docs(cli): clarify "missing web assets directory" error message (#3131) ([da8b8a0](https://github.com/ionic-team/capacitor/commit/da8b8a0)), closes [#3131](https://github.com/ionic-team/capacitor/issues/3131)
- docs(contributing): outline difference between issues & discussions (#3083) ([4617908](https://github.com/ionic-team/capacitor/commit/4617908)), closes [#3083](https://github.com/ionic-team/capacitor/issues/3083)

### Chores

- chore: remove package-lock.json files (#3093) ([9cb36bb](https://github.com/ionic-team/capacitor/commit/9cb36bb)), closes [#3093](https://github.com/ionic-team/capacitor/issues/3093)
- chore: update capacitor twitter url (#3099) ([782e57a](https://github.com/ionic-team/capacitor/commit/782e57a)), closes [#3099](https://github.com/ionic-team/capacitor/issues/3099)
- chore: Update changelog for 2.2.0 ([dfe4239](https://github.com/ionic-team/capacitor/commit/dfe4239))
- chore: update ios and android peerDependencies ([12daa6a](https://github.com/ionic-team/capacitor/commit/12daa6a))
- chore: update site links (#3152) ([cdd0337](https://github.com/ionic-team/capacitor/commit/cdd0337)), closes [#3152](https://github.com/ionic-team/capacitor/issues/3152)
- chore: Update the location of capacitor pods for IonicRunner (#3120) ([937e3a2](https://github.com/ionic-team/capacitor/commit/937e3a2)), closes [#3120](https://github.com/ionic-team/capacitor/issues/3120)
- chore(android): update gradle wrapper to 5.6.4 (#3004) ([3a2244c](https://github.com/ionic-team/capacitor/commit/3a2244c)), closes [#3004](https://github.com/ionic-team/capacitor/issues/3004)
- chore(ci): add core to CI tests (#3094) ([26e5e74](https://github.com/ionic-team/capacitor/commit/26e5e74)), closes [#3094](https://github.com/ionic-team/capacitor/issues/3094)
- chore(ci): test multiple xcode versions (#3154) ([7b9ac92](https://github.com/ionic-team/capacitor/commit/7b9ac92)), closes [#3154](https://github.com/ionic-team/capacitor/issues/3154)
- chore(cli): cleanup doctor output (#3096) ([c2adf4c](https://github.com/ionic-team/capacitor/commit/c2adf4c)), closes [#3096](https://github.com/ionic-team/capacitor/issues/3096)
- chore(cli): read plugin podspec values from package.json (#3092) ([2e61a9a](https://github.com/ionic-team/capacitor/commit/2e61a9a)), closes [#3092](https://github.com/ionic-team/capacitor/issues/3092)
- chore(e2e): remove for now (#3086) ([0e33ca4](https://github.com/ionic-team/capacitor/commit/0e33ca4)), closes [#3086](https://github.com/ionic-team/capacitor/issues/3086)
- chore(github): add link to community proposals ([048b07e](https://github.com/ionic-team/capacitor/commit/048b07e))
- chore(github): add needs-reply workflows ([e97fd48](https://github.com/ionic-team/capacitor/commit/e97fd48))
- chore(github): add push handler for capacitor bot ([d2b6513](https://github.com/ionic-team/capacitor/commit/d2b6513))
- chore(github): allow blank issues ([53c0c15](https://github.com/ionic-team/capacitor/commit/53c0c15))
- chore(github): change new contributor commit message ([7e36434](https://github.com/ionic-team/capacitor/commit/7e36434))
- chore(github): checkout for capacitor bot ([d4b8457](https://github.com/ionic-team/capacitor/commit/d4b8457))
- chore(github): exclude Ionitron from contributors script ([fffa487](https://github.com/ionic-team/capacitor/commit/fffa487))
- chore(github): hook up capacitor-bot ([c5878a8](https://github.com/ionic-team/capacitor/commit/c5878a8))
- chore(github): lock in bot for now ([9534707](https://github.com/ionic-team/capacitor/commit/9534707))
- chore(github): remove duplicate section ([615225a](https://github.com/ionic-team/capacitor/commit/615225a))
- chore(github): update needs-reply label name ([9bd353c](https://github.com/ionic-team/capacitor/commit/9bd353c))
- chore(github): use config-based bot ([673344d](https://github.com/ionic-team/capacitor/commit/673344d))
- chore(readme): add new contributor (#3110) ([c04d8c3](https://github.com/ionic-team/capacitor/commit/c04d8c3)), closes [#3110](https://github.com/ionic-team/capacitor/issues/3110)
- chore(readme): add new contributor (#3150) ([0bc0152](https://github.com/ionic-team/capacitor/commit/0bc0152)), closes [#3150](https://github.com/ionic-team/capacitor/issues/3150)
- chore(readme): add new contributor (#3173) ([fe3f552](https://github.com/ionic-team/capacitor/commit/fe3f552)), closes [#3173](https://github.com/ionic-team/capacitor/issues/3173)
- chore(readme): add new contributor (#3185) ([84ca1ed](https://github.com/ionic-team/capacitor/commit/84ca1ed)), closes [#3185](https://github.com/ionic-team/capacitor/issues/3185)
- chore(readme): add new contributor (#3190) ([ce258f2](https://github.com/ionic-team/capacitor/commit/ce258f2)), closes [#3190](https://github.com/ionic-team/capacitor/issues/3190)
- chore(readme): show contributors in readme (#3097) ([c4d749f](https://github.com/ionic-team/capacitor/commit/c4d749f)), closes [#3097](https://github.com/ionic-team/capacitor/issues/3097)
- chore(site): remove from repo (#3138) ([7c82ad3](https://github.com/ionic-team/capacitor/commit/7c82ad3)), closes [#3138](https://github.com/ionic-team/capacitor/issues/3138)
- chore(test): increase timeout ([c501208](https://github.com/ionic-team/capacitor/commit/c501208))
- test(android): add tests for PluginMethodHandler (#3153) ([dd7077e](https://github.com/ionic-team/capacitor/commit/dd7077e)), closes [#3153](https://github.com/ionic-team/capacitor/issues/3153)
- test(android): setup tests, test JSObject (#2508) ([5a37496](https://github.com/ionic-team/capacitor/commit/5a37496)), closes [#2508](https://github.com/ionic-team/capacitor/issues/2508)
- refactor(android): MessageHandler formatting and simplifying (#2510) ([befe798](https://github.com/ionic-team/capacitor/commit/befe798)), closes [#2510](https://github.com/ionic-team/capacitor/issues/2510)

## [2.2.0](https://github.com/ionic-team/capacitor/compare/2.1.2...2.2.0) (2020-06-10)

### Bug Fixes

- fix(cli/cordova): replace $PACKAGE_NAME with ${applicationId} (#3030) ([7a2a45f](https://github.com/ionic-team/capacitor/commit/7a2a45f)), closes [#3030](https://github.com/ionic-team/capacitor/issues/3030)
- fix(android): incorrect keyboard height (#2924) ([035f74e](https://github.com/ionic-team/capacitor/commit/035f74e)), closes [#2924](https://github.com/ionic-team/capacitor/issues/2924)
- fix(android): set cookie on proxied request (#3076) ([9b96edc](https://github.com/ionic-team/capacitor/commit/9b96edc)), closes [#3076](https://github.com/ionic-team/capacitor/issues/3076)
- fix(android): set cookie on proxied request only if exists (#3077) ([766a61d](https://github.com/ionic-team/capacitor/commit/766a61d)), closes [#3077](https://github.com/ionic-team/capacitor/issues/3077)
- fix(ios): update frame immediately when keyboard hides (#3038) ([e538bad](https://github.com/ionic-team/capacitor/commit/e538bad)), closes [#3038](https://github.com/ionic-team/capacitor/issues/3038)

### Features

- feat(core/web): add areEnabled implementation for LocalNotifications (#2900) ([179104c](https://github.com/ionic-team/capacitor/commit/179104c)), closes [#2900](https://github.com/ionic-team/capacitor/issues/2900)
- feat(android): move Config to be per-instance rather than a singleton (#3055) ([b4815a5](https://github.com/ionic-team/capacitor/commit/b4815a5)), closes [#3055](https://github.com/ionic-team/capacitor/issues/3055)
- feat(ios): show toast when loading url in debug mode (#2871) ([171870b](https://github.com/ionic-team/capacitor/commit/171870b)), closes [#2871](https://github.com/ionic-team/capacitor/issues/2871)
- feat(Permissions): allow microphone check (#3068) ([a2f2e4f](https://github.com/ionic-team/capacitor/commit/a2f2e4f)), closes [#3068](https://github.com/ionic-team/capacitor/issues/3068)

### Docs

- docs(push): Add descriptions to push notification methods (#3036) ([a2ea9ce](https://github.com/ionic-team/capacitor/commit/a2ea9ce)), closes [#3036](https://github.com/ionic-team/capacitor/issues/3036)
- docs(share): remove wrong sentence (#3051) ([d7b09c0](https://github.com/ionic-team/capacitor/commit/d7b09c0)), closes [#3051](https://github.com/ionic-team/capacitor/issues/3051)

### Chores

- chore: fix circleci tests (#3025) ([2c4e72f](https://github.com/ionic-team/capacitor/commit/2c4e72f)), closes [#3025](https://github.com/ionic-team/capacitor/issues/3025)
- chore: fix receive spelling (#3035) ([319bd8a](https://github.com/ionic-team/capacitor/commit/319bd8a)), closes [#3035](https://github.com/ionic-team/capacitor/issues/3035)
- chore: missing changes on ios publish (#3034) ([5b1f3fb](https://github.com/ionic-team/capacitor/commit/5b1f3fb)), closes [#3034](https://github.com/ionic-team/capacitor/issues/3034)
- chore: simplify ios publishing (#3028) ([38791a8](https://github.com/ionic-team/capacitor/commit/38791a8)), closes [#3028](https://github.com/ionic-team/capacitor/issues/3028)
- chore: Update changelog for 2.1.2 ([ee919f7](https://github.com/ionic-team/capacitor/commit/ee919f7))
- chore(android): avoid connection on proxy to check the content type (#3078) ([0d2894c](https://github.com/ionic-team/capacitor/commit/0d2894c)), closes [#3078](https://github.com/ionic-team/capacitor/issues/3078)
- chore(android): Fix receive spelling in Javadoc (#3029) ([28c8792](https://github.com/ionic-team/capacitor/commit/28c8792)), closes [#3029](https://github.com/ionic-team/capacitor/issues/3029)
- chore(ci): switch to Github Actions (#3057) ([8aefce0](https://github.com/ionic-team/capacitor/commit/8aefce0)), closes [#3057](https://github.com/ionic-team/capacitor/issues/3057)
- chore(github): important emoji fix (#3081) ([1d7fd2c](https://github.com/ionic-team/capacitor/commit/1d7fd2c)), closes [#3081](https://github.com/ionic-team/capacitor/issues/3081)
- chore(github): issue template cleanup (#3056) ([939ce8b](https://github.com/ionic-team/capacitor/commit/939ce8b)), closes [#3056](https://github.com/ionic-team/capacitor/issues/3056)
- chore(ios): correct plugin descriptions (#3037) ([a8ad95d](https://github.com/ionic-team/capacitor/commit/a8ad95d)), closes [#3037](https://github.com/ionic-team/capacitor/issues/3037)
- chore(readme): revamp (#3058) ([7adde78](https://github.com/ionic-team/capacitor/commit/7adde78)), closes [#3058](https://github.com/ionic-team/capacitor/issues/3058)
- chore(test): increase timeout so integration tests pass (#3079) ([70eff96](https://github.com/ionic-team/capacitor/commit/70eff96)), closes [#3079](https://github.com/ionic-team/capacitor/issues/3079)

## [2.1.2](https://github.com/ionic-team/capacitor/compare/2.1.1...2.1.2) (2020-05-29)

### Bug Fixes

- fix: send error on photos picker dismiss on ios 13 (#3010) ([47f2dd8](https://github.com/ionic-team/capacitor/commit/47f2dd8)), closes [#3010](https://github.com/ionic-team/capacitor/issues/3010)
- fix(android): remove bintray publishing plugin to fix Gradle 6+ issues (#3016) ([b584b00](https://github.com/ionic-team/capacitor/commit/b584b00)), closes [#3016](https://github.com/ionic-team/capacitor/issues/3016)

### Docs

- docs: add information about disabling logs (#3001) ([e9b2c9d](https://github.com/ionic-team/capacitor/commit/e9b2c9d)), closes [#3001](https://github.com/ionic-team/capacitor/issues/3001)
- docs: make links to other pages absolute (#3002) ([22d9a09](https://github.com/ionic-team/capacitor/commit/22d9a09)), closes [#3002](https://github.com/ionic-team/capacitor/issues/3002)

### Chores

- chore: remove redundant checks for android_home and bintray (#3019) ([c407d74](https://github.com/ionic-team/capacitor/commit/c407d74)), closes [#3019](https://github.com/ionic-team/capacitor/issues/3019)
- chore: Update changelog for 2.1.1 ([555f4af](https://github.com/ionic-team/capacitor/commit/555f4af))
- chore(cli): run tests with max workers, not in band (#3018) ([2e6a9c4](https://github.com/ionic-team/capacitor/commit/2e6a9c4)), closes [#3018](https://github.com/ionic-team/capacitor/issues/3018)
- chore(ios): remove pod deployment (#3017) ([8b8c051](https://github.com/ionic-team/capacitor/commit/8b8c051)), closes [#3017](https://github.com/ionic-team/capacitor/issues/3017)

## [2.1.1](https://github.com/ionic-team/capacitor/compare/2.1.0...2.1.1) (2020-05-27)

### Bug Fixes

- fix(core/web): Filesystem.appendFile creating wrong parent folder (#2985) ([3951f6b](https://github.com/ionic-team/capacitor/commit/3951f6b)), closes [#2985](https://github.com/ionic-team/capacitor/issues/2985)
- fix(android): Filesystem.requestPermissions() not working (#2936) ([2a9a95d](https://github.com/ionic-team/capacitor/commit/2a9a95d)), closes [#2936](https://github.com/ionic-team/capacitor/issues/2936)
- fix(android): Prevent Android 10 crash on Filesystem.readdir (#2950) ([0914c23](https://github.com/ionic-team/capacitor/commit/0914c23)), closes [#2950](https://github.com/ionic-team/capacitor/issues/2950)
- fix(android): remember camera prompt selection after permission result (#2903) ([cdd317f](https://github.com/ionic-team/capacitor/commit/cdd317f)), closes [#2903](https://github.com/ionic-team/capacitor/issues/2903)
- fix(cli): Improve plugin.xml framework detection (#2956) ([8736d90](https://github.com/ionic-team/capacitor/commit/8736d90)), closes [#2956](https://github.com/ionic-team/capacitor/issues/2956)
- fix(cordova): Add cordova-support-google-services to incompatible list (#2912) ([58d0768](https://github.com/ionic-team/capacitor/commit/58d0768)), closes [#2912](https://github.com/ionic-team/capacitor/issues/2912)
- fix(cordova): Exclude framework headers (#2972) ([53a6371](https://github.com/ionic-team/capacitor/commit/53a6371)), closes [#2972](https://github.com/ionic-team/capacitor/issues/2972)
- fix(ios): Create tmpWindow when is needed and destroy when not needed (#2995) ([9475129](https://github.com/ionic-team/capacitor/commit/9475129)), closes [#2995](https://github.com/ionic-team/capacitor/issues/2995)
- fix(web): improve Proxy check to avoid SSR problems (#2851) ([7afc9eb](https://github.com/ionic-team/capacitor/commit/7afc9eb)), closes [#2851](https://github.com/ionic-team/capacitor/issues/2851)

### Docs

- docs(ce-plugins) add @byrds/capacitor-contacts plugin (#2939) ([56d4159](https://github.com/ionic-team/capacitor/commit/56d4159)), closes [#2939](https://github.com/ionic-team/capacitor/issues/2939)
- docs: Appflow is now available (#2970) ([516386e](https://github.com/ionic-team/capacitor/commit/516386e)), closes [#2970](https://github.com/ionic-team/capacitor/issues/2970)
- docs(android): Add information about accessing public folders in Android 10 (#2951) ([6d1778b](https://github.com/ionic-team/capacitor/commit/6d1778b)), closes [#2951](https://github.com/ionic-team/capacitor/issues/2951)
- docs(ce-plugins): add capacitor-blob-writer (#2885) ([cacecb4](https://github.com/ionic-team/capacitor/commit/cacecb4)), closes [#2885](https://github.com/ionic-team/capacitor/issues/2885)
- docs(ce-plugins): add capacitor-firebase-crashlytics (#2938) ([cb1e672](https://github.com/ionic-team/capacitor/commit/cb1e672)), closes [#2938](https://github.com/ionic-team/capacitor/issues/2938)
- docs(cordova-migration): Add cordova plugin uninstall details (#2935) ([17bf3ab](https://github.com/ionic-team/capacitor/commit/17bf3ab)), closes [#2935](https://github.com/ionic-team/capacitor/issues/2935)
- docs(deep-links): clarify apple-app-site-association file (#2963) ([ac9c3de](https://github.com/ionic-team/capacitor/commit/ac9c3de)), closes [#2963](https://github.com/ionic-team/capacitor/issues/2963)
- docs(Plugins): add information about how to override navigation (#2923) ([63c8542](https://github.com/ionic-team/capacitor/commit/63c8542)), closes [#2923](https://github.com/ionic-team/capacitor/issues/2923)
- docs(splash): Full Screen & Immersive are android only (#2945) ([b8e7279](https://github.com/ionic-team/capacitor/commit/b8e7279)), closes [#2945](https://github.com/ionic-team/capacitor/issues/2945)
- docs(workflow): change update instructions to get latest version (#2937) ([0c151fc](https://github.com/ionic-team/capacitor/commit/0c151fc)), closes [#2937](https://github.com/ionic-team/capacitor/issues/2937)

### Chores

- chore(dependencies): Update package dependencies to 2.1.0 ([a5fb2bc](https://github.com/ionic-team/capacitor/commit/a5fb2bc))
- chore(site): Update dependencies (#2928) ([a9d4698](https://github.com/ionic-team/capacitor/commit/a9d4698)), closes [#2928](https://github.com/ionic-team/capacitor/issues/2928)
- chore(site): update firebase-tools (#2915) ([bdce166](https://github.com/ionic-team/capacitor/commit/bdce166)), closes [#2915](https://github.com/ionic-team/capacitor/issues/2915)

## (2020-05-07)

## [2.1.0](https://github.com/ionic-team/capacitor/compare/2.0.2...2.1.0) (2020-05-07)

### Bug Fixes

- fix: set launchShowDuration to 0 on new projects only (#2876) ([8de0414](https://github.com/ionic-team/capacitor/commit/8de0414)), closes [#2876](https://github.com/ionic-team/capacitor/issues/2876)
- fix(android): call error on prompt cancel (#2855) ([c86cfb1](https://github.com/ionic-team/capacitor/commit/c86cfb1)), closes [#2855](https://github.com/ionic-team/capacitor/issues/2855)
- fix(android): check if NETWORK_PROVIDER is enabled (#2859) ([f4d5c84](https://github.com/ionic-team/capacitor/commit/f4d5c84)), closes [#2859](https://github.com/ionic-team/capacitor/issues/2859)
- fix(android): make readFile not add newlines on base64 strings (#2857) ([31d65c9](https://github.com/ionic-team/capacitor/commit/31d65c9)), closes [#2857](https://github.com/ionic-team/capacitor/issues/2857)
- fix(cli): avoid infinite loop on scoped dependencies (#2868) ([69d62f7](https://github.com/ionic-team/capacitor/commit/69d62f7)), closes [#2868](https://github.com/ionic-team/capacitor/issues/2868)
- fix(ios): remove thread warning on Haptics.selectionEnd() (#2860) ([471ed0c](https://github.com/ionic-team/capacitor/commit/471ed0c)), closes [#2860](https://github.com/ionic-team/capacitor/issues/2860)
- fix(splash): Make splash launch delay timeout zero to speed up capacitor boot ([b29346b](https://github.com/ionic-team/capacitor/commit/b29346b))

### Features

- feat: Add common hideLogs option (#2865) ([1b3f0ec](https://github.com/ionic-team/capacitor/commit/1b3f0ec)), closes [#2865](https://github.com/ionic-team/capacitor/issues/2865)
- feat: Allow plugins to override navigation (#2872) ([41f9834](https://github.com/ionic-team/capacitor/commit/41f9834)), closes [#2872](https://github.com/ionic-team/capacitor/issues/2872)
- feat(android): add vibration option to notifications channel (#2787) ([2f6f0ba](https://github.com/ionic-team/capacitor/commit/2f6f0ba)), closes [#2787](https://github.com/ionic-team/capacitor/issues/2787)
- feat(android): expose JSON string constructor for JSArray (#2879) ([040bfc8](https://github.com/ionic-team/capacitor/commit/040bfc8)), closes [#2879](https://github.com/ionic-team/capacitor/issues/2879)
- feat(android): hideLogs feature (#2839) ([d60757a](https://github.com/ionic-team/capacitor/commit/d60757a)), closes [#2839](https://github.com/ionic-team/capacitor/issues/2839)
- feat(android): implement selection haptic feedback (#2704) ([34dd280](https://github.com/ionic-team/capacitor/commit/34dd280)), closes [#2704](https://github.com/ionic-team/capacitor/issues/2704)
- feat(camera): make prompt strings localizable (#2631) ([0c09fc8](https://github.com/ionic-team/capacitor/commit/0c09fc8)), closes [#2631](https://github.com/ionic-team/capacitor/issues/2631)
- feat(cordova): Add WK_WEB_VIEW_ONLY=1 preprocessor macro (#2880) ([603b2e3](https://github.com/ionic-team/capacitor/commit/603b2e3)), closes [#2880](https://github.com/ionic-team/capacitor/issues/2880)

### Docs

- docs(browser): Update information for close method (#2796) ([89c64af](https://github.com/ionic-team/capacitor/commit/89c64af)), closes [#2796](https://github.com/ionic-team/c
Download .txt
gitextract_psnkni0l/

├── .eslintignore
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.yml
│   │   ├── config.yml
│   │   └── feature-request.yml
│   ├── bot.yml
│   ├── ionic-issue-bot.yml
│   └── workflows/
│       ├── capacitor-bot.yml
│       ├── ci.yml
│       ├── needs-reply.yml
│       ├── publish-android.yml
│       ├── publish-ios.yml
│       ├── publish-latest.yml
│       ├── publish-npm-alpha.yml
│       ├── publish-npm-beta.yml
│       ├── publish-npm-dev.yml
│       ├── publish-npm-latest-from-pre.yml
│       ├── publish-npm-latest.yml
│       ├── publish-npm-nightly.yml
│       ├── publish-npm-rc.yml
│       └── publish-spm-release.yaml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .vscode/
│   └── launch.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── android/
│   ├── .gitignore
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── capacitor/
│   │   ├── .gitignore
│   │   ├── build.gradle
│   │   ├── gradle.properties
│   │   ├── lint-baseline.xml
│   │   ├── lint.xml
│   │   ├── proguard-rules.pro
│   │   ├── settings.gradle
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── getcapacitor/
│   │       │               └── android/
│   │       │                   └── ExampleInstrumentedTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── assets/
│   │       │   │   └── native-bridge.js
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── getcapacitor/
│   │       │   │           ├── AndroidProtocolHandler.java
│   │       │   │           ├── App.java
│   │       │   │           ├── AppUUID.java
│   │       │   │           ├── Bridge.java
│   │       │   │           ├── BridgeActivity.java
│   │       │   │           ├── BridgeWebChromeClient.java
│   │       │   │           ├── BridgeWebViewClient.java
│   │       │   │           ├── CapConfig.java
│   │       │   │           ├── CapacitorWebView.java
│   │       │   │           ├── FileUtils.java
│   │       │   │           ├── InvalidPluginException.java
│   │       │   │           ├── InvalidPluginMethodException.java
│   │       │   │           ├── JSArray.java
│   │       │   │           ├── JSExport.java
│   │       │   │           ├── JSExportException.java
│   │       │   │           ├── JSInjector.java
│   │       │   │           ├── JSObject.java
│   │       │   │           ├── JSValue.java
│   │       │   │           ├── Logger.java
│   │       │   │           ├── MessageHandler.java
│   │       │   │           ├── NativePlugin.java
│   │       │   │           ├── PermissionState.java
│   │       │   │           ├── Plugin.java
│   │       │   │           ├── PluginCall.java
│   │       │   │           ├── PluginConfig.java
│   │       │   │           ├── PluginHandle.java
│   │       │   │           ├── PluginInvocationException.java
│   │       │   │           ├── PluginLoadException.java
│   │       │   │           ├── PluginManager.java
│   │       │   │           ├── PluginMethod.java
│   │       │   │           ├── PluginMethodHandle.java
│   │       │   │           ├── PluginResult.java
│   │       │   │           ├── ProcessedRoute.java
│   │       │   │           ├── RouteProcessor.java
│   │       │   │           ├── ServerPath.java
│   │       │   │           ├── UriMatcher.java
│   │       │   │           ├── WebViewListener.java
│   │       │   │           ├── WebViewLocalServer.java
│   │       │   │           ├── annotation/
│   │       │   │           │   ├── ActivityCallback.java
│   │       │   │           │   ├── CapacitorPlugin.java
│   │       │   │           │   ├── Permission.java
│   │       │   │           │   └── PermissionCallback.java
│   │       │   │           ├── cordova/
│   │       │   │           │   ├── CapacitorCordovaCookieManager.java
│   │       │   │           │   ├── MockCordovaInterfaceImpl.java
│   │       │   │           │   └── MockCordovaWebViewImpl.java
│   │       │   │           ├── plugin/
│   │       │   │           │   ├── CapacitorCookieManager.java
│   │       │   │           │   ├── CapacitorCookies.java
│   │       │   │           │   ├── CapacitorHttp.java
│   │       │   │           │   ├── SystemBars.java
│   │       │   │           │   ├── WebView.java
│   │       │   │           │   └── util/
│   │       │   │           │       ├── AssetUtil.java
│   │       │   │           │       ├── CapacitorHttpUrlConnection.java
│   │       │   │           │       ├── HttpRequestHandler.java
│   │       │   │           │       ├── ICapacitorHttpUrlConnection.java
│   │       │   │           │       └── MimeType.java
│   │       │   │           └── util/
│   │       │   │               ├── HostMask.java
│   │       │   │               ├── InternalUtils.java
│   │       │   │               ├── JSONUtils.java
│   │       │   │               ├── PermissionHelper.java
│   │       │   │               └── WebColor.java
│   │       │   └── res/
│   │       │       ├── layout/
│   │       │       │   ├── capacitor_bridge_layout_main.xml
│   │       │       │   └── no_webview.xml
│   │       │       └── values/
│   │       │           ├── colors.xml
│   │       │           ├── strings.xml
│   │       │           └── styles.xml
│   │       └── test/
│   │           ├── java/
│   │           │   ├── android/
│   │           │   │   └── util/
│   │           │   │       └── Log.java
│   │           │   └── com/
│   │           │       └── getcapacitor/
│   │           │           ├── ConfigBuildingTest.java
│   │           │           ├── ConfigReadingTest.java
│   │           │           ├── ExampleUnitTest.java
│   │           │           ├── JSObjectTest.java
│   │           │           ├── PluginMethodHandleTest.java
│   │           │           ├── plugin/
│   │           │           │   └── util/
│   │           │           │       └── HttpRequestHandlerTest.java
│   │           │           └── util/
│   │           │               └── HostMaskTest.java
│   │           └── resources/
│   │               └── configs/
│   │                   ├── bad.json
│   │                   ├── flat.json
│   │                   ├── hierarchy.json
│   │                   ├── nonjson.json
│   │                   └── server.json
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── package.json
│   ├── scripts/
│   │   ├── publish-module.gradle
│   │   └── publish-root.gradle
│   └── settings.gradle
├── android-template/
│   ├── .gitignore
│   ├── app/
│   │   ├── .gitignore
│   │   ├── build.gradle
│   │   ├── proguard-rules.pro
│   │   └── src/
│   │       ├── androidTest/
│   │       │   └── java/
│   │       │       └── com/
│   │       │           └── getcapacitor/
│   │       │               └── myapp/
│   │       │                   └── ExampleInstrumentedTest.java
│   │       ├── main/
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── java/
│   │       │   │   └── com/
│   │       │   │       └── getcapacitor/
│   │       │   │           └── myapp/
│   │       │   │               └── MainActivity.java
│   │       │   └── res/
│   │       │       ├── drawable/
│   │       │       │   └── ic_launcher_background.xml
│   │       │       ├── drawable-v24/
│   │       │       │   └── ic_launcher_foreground.xml
│   │       │       ├── layout/
│   │       │       │   └── activity_main.xml
│   │       │       ├── mipmap-anydpi-v26/
│   │       │       │   ├── ic_launcher.xml
│   │       │       │   └── ic_launcher_round.xml
│   │       │       ├── values/
│   │       │       │   ├── ic_launcher_background.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── styles.xml
│   │       │       └── xml/
│   │       │           └── file_paths.xml
│   │       └── test/
│   │           └── java/
│   │               └── com/
│   │                   └── getcapacitor/
│   │                       └── myapp/
│   │                           └── ExampleUnitTest.java
│   ├── build.gradle
│   ├── gradle/
│   │   └── wrapper/
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   ├── settings.gradle
│   └── variables.gradle
├── capacitor-cordova-android-plugins/
│   ├── build.gradle
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/
│           │   └── .gitkeep
│           └── res/
│               └── .gitkeep
├── capacitor-cordova-ios-plugins/
│   ├── CordovaPluginsResources.podspec
│   ├── resources/
│   │   └── .gitkeep
│   └── sources/
│       └── .gitkeep
├── cli/
│   ├── .gitignore
│   ├── .npmignore
│   ├── .npmrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── bin/
│   │   └── capacitor
│   ├── package.json
│   ├── src/
│   │   ├── android/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── common.ts
│   │   │   ├── doctor.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   └── update.ts
│   │   ├── colors.ts
│   │   ├── common.ts
│   │   ├── config.ts
│   │   ├── cordova.ts
│   │   ├── declarations.ts
│   │   ├── definitions.ts
│   │   ├── errors.ts
│   │   ├── framework-configs.ts
│   │   ├── index.ts
│   │   ├── ios/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── common.ts
│   │   │   ├── doctor.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   └── update.ts
│   │   ├── ipc.ts
│   │   ├── log.ts
│   │   ├── plugin.ts
│   │   ├── sysconfig.ts
│   │   ├── tasks/
│   │   │   ├── add.ts
│   │   │   ├── build.ts
│   │   │   ├── config.ts
│   │   │   ├── copy.ts
│   │   │   ├── create.ts
│   │   │   ├── doctor.ts
│   │   │   ├── init.ts
│   │   │   ├── list.ts
│   │   │   ├── migrate-spm.ts
│   │   │   ├── migrate.ts
│   │   │   ├── new-plugin.ts
│   │   │   ├── open.ts
│   │   │   ├── run.ts
│   │   │   ├── serve.ts
│   │   │   ├── sourcemaps.ts
│   │   │   ├── sync.ts
│   │   │   ├── telemetry.ts
│   │   │   └── update.ts
│   │   ├── telemetry.ts
│   │   └── util/
│   │       ├── cli.ts
│   │       ├── emoji.ts
│   │       ├── fn.ts
│   │       ├── fs.ts
│   │       ├── iosplugin.ts
│   │       ├── js.ts
│   │       ├── livereload.ts
│   │       ├── monorepotools.ts
│   │       ├── native-run.ts
│   │       ├── node.ts
│   │       ├── promise.ts
│   │       ├── spm.ts
│   │       ├── subprocess.ts
│   │       ├── template.ts
│   │       ├── term.ts
│   │       ├── uuid.ts
│   │       └── xml.ts
│   ├── test/
│   │   ├── add.android.spec.ts
│   │   ├── add.ios.spec.ts
│   │   ├── framework-detection.spec.ts
│   │   ├── init.spec.ts
│   │   ├── tsconfig.json
│   │   ├── update.android.spec.ts
│   │   ├── update.ios.spec.ts
│   │   └── util.ts
│   └── tsconfig.json
├── core/
│   ├── .npmrc
│   ├── CHANGELOG.md
│   ├── LICENSE
│   ├── README.md
│   ├── cookies.md
│   ├── cordova.js
│   ├── http.md
│   ├── native-bridge.ts
│   ├── package.json
│   ├── rollup.bridge.config.js
│   ├── rollup.config.js
│   ├── src/
│   │   ├── core-plugins.ts
│   │   ├── definitions-internal.ts
│   │   ├── definitions.ts
│   │   ├── global.ts
│   │   ├── index.ts
│   │   ├── runtime.ts
│   │   ├── tests/
│   │   │   ├── bridge.spec.ts
│   │   │   ├── build-treeshaking.js
│   │   │   ├── convert-file-src.spec.ts
│   │   │   ├── events.spec.ts
│   │   │   ├── plugin.spec.ts
│   │   │   ├── runtime.spec.ts
│   │   │   └── web-plugin.spec.ts
│   │   ├── util.ts
│   │   └── web-plugin.ts
│   ├── system-bars.md
│   └── tsconfig.json
├── ios/
│   ├── CHANGELOG.md
│   ├── Capacitor/
│   │   ├── Capacitor/
│   │   │   ├── AppUUID.swift
│   │   │   ├── Array+Capacitor.swift
│   │   │   ├── CAPApplicationDelegateProxy.swift
│   │   │   ├── CAPBridge.swift
│   │   │   ├── CAPBridgeDelegate.swift
│   │   │   ├── CAPBridgeProtocol.swift
│   │   │   ├── CAPBridgeViewController+CDVScreenOrientationDelegate.h
│   │   │   ├── CAPBridgeViewController+CDVScreenOrientationDelegate.m
│   │   │   ├── CAPBridgeViewController.swift
│   │   │   ├── CAPBridgedJSTypes.h
│   │   │   ├── CAPBridgedJSTypes.m
│   │   │   ├── CAPBridgedPlugin+getMethod.swift
│   │   │   ├── CAPBridgedPlugin.h
│   │   │   ├── CAPFile.swift
│   │   │   ├── CAPInstanceConfiguration.h
│   │   │   ├── CAPInstanceConfiguration.m
│   │   │   ├── CAPInstanceConfiguration.swift
│   │   │   ├── CAPInstanceDescriptor.h
│   │   │   ├── CAPInstanceDescriptor.m
│   │   │   ├── CAPInstanceDescriptor.swift
│   │   │   ├── CAPInstancePlugin.swift
│   │   │   ├── CAPLog.swift
│   │   │   ├── CAPNotifications.swift
│   │   │   ├── CAPPlugin+LoadInstance.swift
│   │   │   ├── CAPPlugin.h
│   │   │   ├── CAPPlugin.m
│   │   │   ├── CAPPluginCall.h
│   │   │   ├── CAPPluginCall.m
│   │   │   ├── CAPPluginCall.swift
│   │   │   ├── CAPPluginMethod.h
│   │   │   ├── CAPPluginMethod.m
│   │   │   ├── CAPPluginMethod.swift
│   │   │   ├── Capacitor.h
│   │   │   ├── Capacitor.modulemap
│   │   │   ├── CapacitorBridge.swift
│   │   │   ├── CapacitorExtension.swift
│   │   │   ├── Codable/
│   │   │   │   ├── JSValueDecoder.swift
│   │   │   │   └── JSValueEncoder.swift
│   │   │   ├── Data+Capacitor.swift
│   │   │   ├── DocLinks.swift
│   │   │   ├── Info.plist
│   │   │   ├── JS.swift
│   │   │   ├── JSExport.swift
│   │   │   ├── JSTypes.swift
│   │   │   ├── KeyPath.swift
│   │   │   ├── KeyValueStore.swift
│   │   │   ├── NotificationHandlerProtocol.swift
│   │   │   ├── NotificationRouter.swift
│   │   │   ├── PluginCallResult.swift
│   │   │   ├── PluginConfig.swift
│   │   │   ├── Plugins/
│   │   │   │   ├── CapacitorCookieManager.swift
│   │   │   │   ├── CapacitorCookies.swift
│   │   │   │   ├── CapacitorHttp.swift
│   │   │   │   ├── CapacitorUrlRequest.swift
│   │   │   │   ├── Console.swift
│   │   │   │   ├── HttpRequestHandler.swift
│   │   │   │   ├── SystemBars.swift
│   │   │   │   └── WebView.swift
│   │   │   ├── PrivacyInfo.xcprivacy
│   │   │   ├── Router.swift
│   │   │   ├── TmpViewController.swift
│   │   │   ├── UIColor.swift
│   │   │   ├── UIStatusBarManager+CAPHandleTapAction.m
│   │   │   ├── WKWebView+Capacitor.m
│   │   │   ├── WKWebView+Capacitor.swift
│   │   │   ├── WebViewAssetHandler.swift
│   │   │   ├── WebViewDelegationHandler.swift
│   │   │   └── assets/
│   │   │       └── native-bridge.js
│   │   ├── Capacitor.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   ├── project.xcworkspace/
│   │   │   │   └── xcshareddata/
│   │   │   │       └── IDEWorkspaceChecks.plist
│   │   │   └── xcshareddata/
│   │   │       └── xcschemes/
│   │   │           └── Capacitor.xcscheme
│   │   ├── Capacitor.xcworkspace/
│   │   │   └── xcshareddata/
│   │   │       └── IDEWorkspaceChecks.plist
│   │   ├── CapacitorTests/
│   │   │   ├── BridgedTypesHelper.swift
│   │   │   ├── BridgedTypesTests.m
│   │   │   ├── BridgedTypesTests.swift
│   │   │   ├── CapacitorTests-Bridging-Header.h
│   │   │   ├── CapacitorTests.swift
│   │   │   ├── ConfigurationTests.swift
│   │   │   ├── Info.plist
│   │   │   ├── JSExportTests.swift
│   │   │   ├── JSONSerializationWrapper.h
│   │   │   ├── JSONSerializationWrapper.m
│   │   │   ├── PluginCallAccessorTests.m
│   │   │   └── RouterTests.swift
│   │   ├── CodableTests/
│   │   │   ├── CodableTests.swift
│   │   │   ├── DataCodableTests.swift
│   │   │   ├── DateCodableTests.swift
│   │   │   ├── NestedCodableTests.swift
│   │   │   ├── NonconformingFloatCodableTests.swift
│   │   │   ├── SuperCodableTests.swift
│   │   │   └── URLCodableTests.swift
│   │   └── TestsHostApp/
│   │       ├── AppDelegate.swift
│   │       ├── Assets.xcassets/
│   │       │   ├── AccentColor.colorset/
│   │       │   │   └── Contents.json
│   │       │   ├── AppIcon.appiconset/
│   │       │   │   └── Contents.json
│   │       │   └── Contents.json
│   │       ├── Base.lproj/
│   │       │   ├── LaunchScreen.storyboard
│   │       │   └── Main.storyboard
│   │       ├── Info.plist
│   │       ├── ViewController.swift
│   │       └── configurations/
│   │           ├── bad.json
│   │           ├── flat.json
│   │           ├── hidinglogs.json
│   │           ├── hierarchy.json
│   │           ├── nonjson.json
│   │           └── server.json
│   ├── Capacitor.podspec
│   ├── CapacitorCordova/
│   │   ├── CapacitorCordova/
│   │   │   ├── CapacitorCordova.h
│   │   │   ├── CapacitorCordova.modulemap
│   │   │   ├── Classes/
│   │   │   │   └── Public/
│   │   │   │       ├── AppDelegate.h
│   │   │   │       ├── AppDelegate.m
│   │   │   │       ├── CDV.h
│   │   │   │       ├── CDVAvailability.h
│   │   │   │       ├── CDVAvailabilityDeprecated.h
│   │   │   │       ├── CDVCommandDelegate.h
│   │   │   │       ├── CDVCommandDelegateImpl.h
│   │   │   │       ├── CDVCommandDelegateImpl.m
│   │   │   │       ├── CDVConfigParser.h
│   │   │   │       ├── CDVConfigParser.m
│   │   │   │       ├── CDVInvokedUrlCommand.h
│   │   │   │       ├── CDVInvokedUrlCommand.m
│   │   │   │       ├── CDVPlugin+Resources.h
│   │   │   │       ├── CDVPlugin+Resources.m
│   │   │   │       ├── CDVPlugin.h
│   │   │   │       ├── CDVPlugin.m
│   │   │   │       ├── CDVPluginManager.h
│   │   │   │       ├── CDVPluginManager.m
│   │   │   │       ├── CDVPluginResult.h
│   │   │   │       ├── CDVPluginResult.m
│   │   │   │       ├── CDVScreenOrientationDelegate.h
│   │   │   │       ├── CDVURLProtocol.h
│   │   │   │       ├── CDVURLProtocol.m
│   │   │   │       ├── CDVViewController.h
│   │   │   │       ├── CDVViewController.m
│   │   │   │       ├── CDVWebViewProcessPoolFactory.h
│   │   │   │       ├── CDVWebViewProcessPoolFactory.m
│   │   │   │       ├── NSDictionary+CordovaPreferences.h
│   │   │   │       └── NSDictionary+CordovaPreferences.m
│   │   │   ├── Info.plist
│   │   │   └── PrivacyInfo.xcprivacy
│   │   └── CapacitorCordova.xcodeproj/
│   │       ├── project.pbxproj
│   │       └── project.xcworkspace/
│   │           └── xcshareddata/
│   │               └── IDEWorkspaceChecks.plist
│   ├── CapacitorCordova.podspec
│   ├── LICENSE
│   ├── package.json
│   └── scripts/
│       └── pods_helpers.rb
├── ios-pods-template/
│   ├── .gitignore
│   └── App/
│       ├── App/
│       │   ├── AppDelegate.swift
│       │   ├── Assets.xcassets/
│       │   │   ├── AppIcon.appiconset/
│       │   │   │   └── Contents.json
│       │   │   ├── Contents.json
│       │   │   └── Splash.imageset/
│       │   │       └── Contents.json
│       │   ├── Base.lproj/
│       │   │   ├── LaunchScreen.storyboard
│       │   │   └── Main.storyboard
│       │   └── Info.plist
│       ├── App.xcodeproj/
│       │   └── project.pbxproj
│       ├── App.xcworkspace/
│       │   └── xcshareddata/
│       │       └── IDEWorkspaceChecks.plist
│       └── Podfile
├── ios-spm-template/
│   ├── .gitignore
│   ├── App/
│   │   ├── App/
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   └── Splash.imageset/
│   │   │   │       └── Contents.json
│   │   │   ├── Base.lproj/
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── Info.plist
│   │   ├── App.xcodeproj/
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace/
│   │   │       └── xcshareddata/
│   │   │           └── IDEWorkspaceChecks.plist
│   │   └── CapApp-SPM/
│   │       ├── .gitignore
│   │       ├── Package.swift
│   │       ├── README.md
│   │       └── Sources/
│   │           └── CapApp-SPM/
│   │               └── CapApp-SPM.swift
│   └── debug.xcconfig
├── lerna.json
├── nx.json
├── package.json
├── scripts/
│   ├── .gitignore
│   ├── lib/
│   │   ├── cli.mjs
│   │   ├── fn.mjs
│   │   ├── fs.mjs
│   │   ├── git.mjs
│   │   ├── lerna.mjs
│   │   ├── repo.mjs
│   │   ├── subprocess.mjs
│   │   └── version.mjs
│   ├── native-podspec.sh
│   ├── pack-cli-assets.mjs
│   ├── publish-android.sh
│   └── sync-peer-dependencies.mjs
└── swiftlint.config.js
Download .txt
SYMBOL INDEX (1413 symbols across 152 files)

FILE: android-template/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
  class ExampleInstrumentedTest (line 16) | @RunWith(AndroidJUnit4.class)
    method useAppContext (line 19) | @Test

FILE: android-template/app/src/main/java/com/getcapacitor/myapp/MainActivity.java
  class MainActivity (line 5) | public class MainActivity extends BridgeActivity {}

FILE: android-template/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
  class ExampleUnitTest (line 12) | public class ExampleUnitTest {
    method addition_isCorrect (line 14) | @Test

FILE: android/capacitor/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.java
  class ExampleInstrumentedTest (line 16) | @RunWith(AndroidJUnit4.class)
    method useAppContext (line 19) | @Test

FILE: android/capacitor/src/main/assets/native-bridge.js
  class CapacitorException (line 26) | class CapacitorException extends Error {
    method constructor (line 27) | constructor(message, code, data) {
  function initNativeBridge (line 826) | function initNativeBridge(win) {

FILE: android/capacitor/src/main/java/com/getcapacitor/AndroidProtocolHandler.java
  class AndroidProtocolHandler (line 17) | public class AndroidProtocolHandler {
    method AndroidProtocolHandler (line 21) | public AndroidProtocolHandler(Context context) {
    method openAsset (line 25) | public InputStream openAsset(String path) throws IOException {
    method openResource (line 29) | public InputStream openResource(Uri uri) {
    method getFieldId (line 59) | private static int getFieldId(Context context, String assetType, Strin...
    method openFile (line 66) | public InputStream openFile(String filePath) throws IOException {
    method openContentUrl (line 72) | public InputStream openContentUrl(Uri uri) throws IOException {
    method getValueType (line 89) | private static int getValueType(Context context, int fieldId) {

FILE: android/capacitor/src/main/java/com/getcapacitor/App.java
  class App (line 5) | public class App {
    type AppStatusChangeListener (line 10) | public interface AppStatusChangeListener {
      method onAppStatusChanged (line 11) | void onAppStatusChanged(Boolean isActive);
    type AppRestoredListener (line 17) | public interface AppRestoredListener {
      method onAppRestored (line 18) | void onAppRestored(PluginResult result);
    method isActive (line 29) | public boolean isActive() {
    method setStatusChangeListener (line 37) | public void setStatusChangeListener(@Nullable AppStatusChangeListener ...
    method setAppRestoredListener (line 45) | public void setAppRestoredListener(@Nullable AppRestoredListener liste...
    method fireRestoredResult (line 49) | protected void fireRestoredResult(PluginResult result) {
    method fireStatusChange (line 55) | public void fireStatusChange(boolean isActive) {

FILE: android/capacitor/src/main/java/com/getcapacitor/AppUUID.java
  class AppUUID (line 12) | public final class AppUUID {
    method getAppUUID (line 16) | public static String getAppUUID(AppCompatActivity activity) throws Exc...
    method regenerateAppUUID (line 21) | public static void regenerateAppUUID(AppCompatActivity activity) throw...
    method assertAppUUID (line 30) | private static void assertAppUUID(AppCompatActivity activity) throws E...
    method generateUUID (line 37) | private static String generateUUID() throws NoSuchAlgorithmException {
    method readUUID (line 43) | private static String readUUID(AppCompatActivity activity) {
    method writeUUID (line 48) | private static void writeUUID(AppCompatActivity activity, String uuid) {
    method bytesToHex (line 55) | private static String bytesToHex(byte[] bytes) {

FILE: android/capacitor/src/main/java/com/getcapacitor/Bridge.java
  class Bridge (line 80) | public class Bridge {
    method Bridge (line 179) | @Deprecated
    method Bridge (line 192) | private Bridge(
    method setAllowedOriginRules (line 236) | private void setAllowedOriginRules() {
    method getApp (line 257) | public App getApp() {
    method loadWebView (line 261) | private void loadWebView() {
    method isMinimumWebViewInstalled (line 328) | @SuppressLint("WebViewApiAvailability")
    method extractWebViewMajorVersion (line 377) | private int extractWebViewMajorVersion(final PackageManager pm, final ...
    method launchIntent (line 389) | public boolean launchIntent(Uri url) {
    method isNewBinary (line 423) | private boolean isNewBinary() {
    method isDeployDisabled (line 453) | public boolean isDeployDisabled() {
    method shouldKeepRunning (line 457) | public boolean shouldKeepRunning() {
    method handleAppUrlLoadError (line 461) | public void handleAppUrlLoadError(Exception ex) {
    method isDevMode (line 473) | public boolean isDevMode() {
    method setCordovaWebView (line 477) | protected void setCordovaWebView(CordovaWebView cordovaWebView) {
    method getContext (line 485) | public Context getContext() {
    method getActivity (line 493) | public AppCompatActivity getActivity() {
    method getFragment (line 503) | public Fragment getFragment() {
    method getWebView (line 511) | public WebView getWebView() {
    method getIntentUri (line 519) | public Uri getIntentUri() {
    method getScheme (line 527) | public String getScheme() {
    method getHost (line 535) | public String getHost() {
    method getServerUrl (line 543) | public String getServerUrl() {
    method getErrorUrl (line 547) | public String getErrorUrl() {
    method getAppUrl (line 562) | public String getAppUrl() {
    method getConfig (line 566) | public CapConfig getConfig() {
    method reset (line 570) | public void reset() {
    method initWebView (line 580) | @SuppressLint("SetJavaScriptEnabled")
    method registerAllPlugins (line 654) | private void registerAllPlugins() {
    method registerPlugins (line 673) | public void registerPlugins(Class<? extends Plugin>[] pluginClasses) {
    method registerPluginInstances (line 679) | public void registerPluginInstances(Plugin[] pluginInstances) {
    method getLegacyPluginName (line 685) | @SuppressWarnings("deprecation")
    method registerPlugin (line 700) | public void registerPlugin(Class<? extends Plugin> pluginClass) {
    method registerPluginInstance (line 713) | public void registerPluginInstance(Plugin plugin) {
    method pluginId (line 725) | private String pluginId(Class<? extends Plugin> clazz) {
    method pluginName (line 737) | private String pluginName(Class<? extends Plugin> clazz) {
    method logInvalidPluginException (line 749) | private void logInvalidPluginException(Class<? extends Plugin> clazz) {
    method logPluginLoadException (line 758) | private void logPluginLoadException(Class<? extends Plugin> clazz, Exc...
    method getPlugin (line 762) | public PluginHandle getPlugin(String pluginId) {
    method getPluginWithRequestCode (line 772) | @Deprecated
    method callPluginMethod (line 816) | public void callPluginMethod(String pluginId, final String methodName,...
    method eval (line 868) | public void eval(final String js, final ValueCallback<String> callback) {
    method logToJs (line 873) | public void logToJs(final String message, final String level) {
    method logToJs (line 877) | public void logToJs(final String message) {
    method triggerJSEvent (line 881) | public void triggerJSEvent(final String eventName, final String target) {
    method triggerJSEvent (line 885) | public void triggerJSEvent(final String eventName, final String target...
    method triggerWindowJSEvent (line 889) | public void triggerWindowJSEvent(final String eventName) {
    method triggerWindowJSEvent (line 893) | public void triggerWindowJSEvent(final String eventName, final String ...
    method triggerDocumentJSEvent (line 897) | public void triggerDocumentJSEvent(final String eventName) {
    method triggerDocumentJSEvent (line 901) | public void triggerDocumentJSEvent(final String eventName, final Strin...
    method execute (line 905) | public void execute(Runnable runnable) {
    method executeOnMainThread (line 909) | public void executeOnMainThread(Runnable runnable) {
    method saveCall (line 919) | public void saveCall(PluginCall call) {
    method getSavedCall (line 928) | public PluginCall getSavedCall(String callbackId) {
    method getPluginCallForLastActivity (line 936) | PluginCall getPluginCallForLastActivity() {
    method setPluginCallForLastActivity (line 942) | void setPluginCallForLastActivity(PluginCall pluginCallForLastActivity) {
    method releaseCall (line 950) | public void releaseCall(PluginCall call) {
    method releaseCall (line 958) | public void releaseCall(String callbackId) {
    method getPermissionCall (line 968) | protected PluginCall getPermissionCall(String pluginId) {
    method savePermissionCall (line 983) | protected void savePermissionCall(PluginCall call) {
    method registerForActivityResult (line 1002) | public <I, O> ActivityResultLauncher<I> registerForActivityResult(
    method getJSInjector (line 1017) | private JSInjector getJSInjector() {
    method injectScriptBeforeLoad (line 1042) | public void injectScriptBeforeLoad(String path) {
    method restoreInstanceState (line 1052) | public void restoreInstanceState(Bundle savedInstanceState) {
    method saveInstanceState (line 1086) | public void saveInstanceState(Bundle outState) {
    method startActivityForPluginWithResult (line 1109) | @Deprecated
    method onRequestPermissionsResult (line 1128) | @SuppressWarnings("deprecation")
    method validatePermissions (line 1161) | protected boolean validatePermissions(Plugin plugin, PluginCall savedC...
    method getPermissionStates (line 1214) | protected Map<String, PermissionState> getPermissionStates(Plugin plug...
    method onActivityResult (line 1268) | @SuppressWarnings("deprecation")
    method onNewIntent (line 1300) | public void onNewIntent(Intent intent) {
    method onConfigurationChanged (line 1314) | public void onConfigurationChanged(Configuration newConfig) {
    method onRestart (line 1323) | public void onRestart() {
    method onStart (line 1332) | public void onStart() {
    method onResume (line 1345) | public void onResume() {
    method onPause (line 1358) | public void onPause() {
    method onStop (line 1372) | public void onStop() {
    method onDestroy (line 1385) | public void onDestroy() {
    method onDetachedFromWindow (line 1400) | public void onDetachedFromWindow() {
    method getServerBasePath (line 1405) | public String getServerBasePath() {
    method setServerBasePath (line 1414) | public void setServerBasePath(String path) {
    method setServerAssetPath (line 1424) | public void setServerAssetPath(String path) {
    method reload (line 1432) | public void reload() {
    method getLocalUrl (line 1436) | public String getLocalUrl() {
    method getLocalServer (line 1440) | public WebViewLocalServer getLocalServer() {
    method getAppAllowNavigationMask (line 1444) | public HostMask getAppAllowNavigationMask() {
    method getAllowedOriginRules (line 1448) | public Set<String> getAllowedOriginRules() {
    method getWebViewClient (line 1452) | public BridgeWebViewClient getWebViewClient() {
    method setWebViewClient (line 1456) | public void setWebViewClient(BridgeWebViewClient client) {
    method getWebViewListeners (line 1461) | List<WebViewListener> getWebViewListeners() {
    method setWebViewListeners (line 1465) | void setWebViewListeners(List<WebViewListener> webViewListeners) {
    method getRouteProcessor (line 1469) | RouteProcessor getRouteProcessor() {
    method setRouteProcessor (line 1473) | void setRouteProcessor(RouteProcessor routeProcessor) {
    method getServerPath (line 1477) | ServerPath getServerPath() {
    method addWebViewListener (line 1485) | public void addWebViewListener(WebViewListener webViewListener) {
    method removeWebViewListener (line 1493) | public void removeWebViewListener(WebViewListener webViewListener) {
    class Builder (line 1497) | public static class Builder {
      method Builder (line 1509) | public Builder(AppCompatActivity activity) {
      method Builder (line 1513) | public Builder(Fragment fragment) {
      method setInstanceState (line 1518) | public Builder setInstanceState(Bundle instanceState) {
      method setConfig (line 1523) | public Builder setConfig(CapConfig config) {
      method setPlugins (line 1528) | public Builder setPlugins(List<Class<? extends Plugin>> plugins) {
      method addPlugin (line 1533) | public Builder addPlugin(Class<? extends Plugin> plugin) {
      method addPlugins (line 1538) | public Builder addPlugins(List<Class<? extends Plugin>> plugins) {
      method addPluginInstance (line 1546) | public Builder addPluginInstance(Plugin plugin) {
      method addPluginInstances (line 1551) | public Builder addPluginInstances(List<Plugin> plugins) {
      method addWebViewListener (line 1556) | public Builder addWebViewListener(WebViewListener webViewListener) {
      method addWebViewListeners (line 1561) | public Builder addWebViewListeners(List<WebViewListener> webViewList...
      method setRouteProcessor (line 1569) | public Builder setRouteProcessor(RouteProcessor routeProcessor) {
      method setServerPath (line 1574) | public Builder setServerPath(ServerPath serverPath) {
      method create (line 1579) | public Bridge create() {

FILE: android/capacitor/src/main/java/com/getcapacitor/BridgeActivity.java
  class BridgeActivity (line 11) | public class BridgeActivity extends AppCompatActivity {
    method onCreate (line 21) | @Override
    method load (line 45) | protected void load() {
    method registerPlugin (line 54) | public void registerPlugin(Class<? extends Plugin> plugin) {
    method registerPlugins (line 58) | public void registerPlugins(List<Class<? extends Plugin>> plugins) {
    method getBridge (line 62) | public Bridge getBridge() {
    method onSaveInstanceState (line 66) | @Override
    method onStart (line 74) | @Override
    method onRestart (line 84) | @Override
    method onResume (line 93) | @Override
    method onPause (line 103) | @Override
    method onStop (line 112) | @Override
    method onDestroy (line 126) | @Override
    method onDetachedFromWindow (line 135) | @Override
    method onRequestPermissionsResult (line 159) | @Override
    method onActivityResult (line 186) | @Override
    method onNewIntent (line 197) | @Override
    method onConfigurationChanged (line 208) | @Override

FILE: android/capacitor/src/main/java/com/getcapacitor/BridgeWebChromeClient.java
  class BridgeWebChromeClient (line 39) | public class BridgeWebChromeClient extends WebChromeClient {
    type PermissionListener (line 41) | private interface PermissionListener {
      method onPermissionSelect (line 42) | void onPermissionSelect(Boolean isGranted);
    type ActivityResultListener (line 45) | private interface ActivityResultListener {
      method onActivityResult (line 46) | void onActivityResult(ActivityResult result);
    method BridgeWebChromeClient (line 56) | public BridgeWebChromeClient(Bridge bridge) {
    method onShowCustomView (line 85) | @Override
    method onHideCustomView (line 96) | @Override
    method onPermissionRequest (line 101) | @Override
    method onJsAlert (line 134) | @Override
    method onJsConfirm (line 167) | @Override
    method onJsPrompt (line 206) | @Override
    method onGeolocationPermissionsShowPrompt (line 245) | @Override
    method onShowFileChooser (line 275) | @Override
    method isMediaCaptureSupported (line 307) | private boolean isMediaCaptureSupported() {
    method showMediaCaptureOrFilePicker (line 315) | private void showMediaCaptureOrFilePicker(ValueCallback<Uri[]> filePat...
    method showImageCapturePicker (line 328) | @SuppressLint("QueryPermissionsNeeded")
    method showVideoCapturePicker (line 355) | @SuppressLint("QueryPermissionsNeeded")
    method showFilePicker (line 374) | private void showFilePicker(final ValueCallback<Uri[]> filePathCallbac...
    method getValidTypes (line 407) | private String[] getValidTypes(String[] currentTypes) {
    method onConsoleMessage (line 425) | @Override
    method isValidMsg (line 449) | public boolean isValidMsg(String msg) {
    method createImageFileUri (line 453) | private Uri createImageFileUri() throws IOException {
    method createImageFile (line 459) | private File createImageFile(Activity activity) throws IOException {

FILE: android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java
  class BridgeWebViewClient (line 13) | public class BridgeWebViewClient extends WebViewClient {
    method BridgeWebViewClient (line 17) | public BridgeWebViewClient(Bridge bridge) {
    method shouldInterceptRequest (line 21) | @Override
    method shouldOverrideUrlLoading (line 26) | @Override
    method onPageFinished (line 32) | @Override
    method onReceivedError (line 44) | @Override
    method onPageStarted (line 61) | @Override
    method onReceivedHttpError (line 74) | @Override
    method onRenderProcessGone (line 91) | @Override
    method onPageCommitVisible (line 106) | @Override

FILE: android/capacitor/src/main/java/com/getcapacitor/CapConfig.java
  class CapConfig (line 29) | public class CapConfig {
    method CapConfig (line 70) | private CapConfig() {}
    method CapConfig (line 81) | @Deprecated
    method loadDefault (line 99) | public static CapConfig loadDefault(Context context) {
    method loadFromAssets (line 119) | public static CapConfig loadFromAssets(Context context, String path) {
    method loadFromFile (line 139) | public static CapConfig loadFromFile(Context context, String path) {
    method CapConfig (line 157) | private CapConfig(Builder builder) {
    method loadConfigFromAssets (line 196) | private void loadConfigFromAssets(AssetManager assetManager, String pa...
    method loadConfigFromFile (line 220) | private void loadConfigFromFile(String path) {
    method deserializeConfig (line 244) | private void deserializeConfig(@Nullable Context context) {
    method validateScheme (line 316) | private boolean validateScheme(String scheme) {
    method isHTML5Mode (line 333) | public boolean isHTML5Mode() {
    method getServerUrl (line 337) | public String getServerUrl() {
    method getErrorPath (line 341) | public String getErrorPath() {
    method getHostname (line 345) | public String getHostname() {
    method getStartPath (line 349) | public String getStartPath() {
    method getAndroidScheme (line 353) | public String getAndroidScheme() {
    method getAllowNavigation (line 357) | public String[] getAllowNavigation() {
    method getOverriddenUserAgentString (line 361) | public String getOverriddenUserAgentString() {
    method getAppendedUserAgentString (line 365) | public String getAppendedUserAgentString() {
    method getBackgroundColor (line 369) | public String getBackgroundColor() {
    method isMixedContentAllowed (line 373) | public boolean isMixedContentAllowed() {
    method isInputCaptured (line 377) | public boolean isInputCaptured() {
    method isResolveServiceWorkerRequests (line 381) | public boolean isResolveServiceWorkerRequests() {
    method isWebContentsDebuggingEnabled (line 385) | public boolean isWebContentsDebuggingEnabled() {
    method isZoomableWebView (line 389) | public boolean isZoomableWebView() {
    method isLoggingEnabled (line 393) | public boolean isLoggingEnabled() {
    method isInitialFocus (line 397) | public boolean isInitialFocus() {
    method isUsingLegacyBridge (line 401) | public boolean isUsingLegacyBridge() {
    method getMinWebViewVersion (line 405) | public int getMinWebViewVersion() {
    method getMinHuaweiWebViewVersion (line 414) | public int getMinHuaweiWebViewVersion() {
    method getPluginConfiguration (line 423) | public PluginConfig getPluginConfiguration(String pluginId) {
    method getObject (line 440) | @Deprecated
    method getString (line 456) | @Deprecated
    method getString (line 470) | @Deprecated
    method getBoolean (line 484) | @Deprecated
    method getInt (line 498) | @Deprecated
    method getArray (line 511) | @Deprecated
    method getArray (line 525) | @Deprecated
    method deserializePluginsConfig (line 530) | private static Map<String, PluginConfig> deserializePluginsConfig(JSON...
    class Builder (line 559) | public static class Builder {
      method Builder (line 597) | public Builder(Context context) {
      method create (line 606) | public CapConfig create() {
      method setPluginsConfiguration (line 614) | public Builder setPluginsConfiguration(JSONObject pluginsConfigurati...
      method setHTML5mode (line 619) | public Builder setHTML5mode(boolean html5mode) {
      method setServerUrl (line 624) | public Builder setServerUrl(String serverUrl) {
      method setErrorPath (line 629) | public Builder setErrorPath(String errorPath) {
      method setHostname (line 634) | public Builder setHostname(String hostname) {
      method setStartPath (line 639) | public Builder setStartPath(String path) {
      method setAndroidScheme (line 644) | public Builder setAndroidScheme(String androidScheme) {
      method setAllowNavigation (line 649) | public Builder setAllowNavigation(String[] allowNavigation) {
      method setOverriddenUserAgentString (line 654) | public Builder setOverriddenUserAgentString(String overriddenUserAge...
      method setAppendedUserAgentString (line 659) | public Builder setAppendedUserAgentString(String appendedUserAgentSt...
      method setBackgroundColor (line 664) | public Builder setBackgroundColor(String backgroundColor) {
      method setAllowMixedContent (line 669) | public Builder setAllowMixedContent(boolean allowMixedContent) {
      method setCaptureInput (line 674) | public Builder setCaptureInput(boolean captureInput) {
      method setUseLegacyBridge (line 679) | public Builder setUseLegacyBridge(boolean useLegacyBridge) {
      method setResolveServiceWorkerRequests (line 684) | public Builder setResolveServiceWorkerRequests(boolean resolveServic...
      method setWebContentsDebuggingEnabled (line 689) | public Builder setWebContentsDebuggingEnabled(boolean webContentsDeb...
      method setZoomableWebView (line 694) | public Builder setZoomableWebView(boolean zoomableWebView) {
      method setLoggingEnabled (line 699) | public Builder setLoggingEnabled(boolean enabled) {
      method setInitialFocus (line 704) | public Builder setInitialFocus(boolean focus) {

FILE: android/capacitor/src/main/java/com/getcapacitor/CapacitorWebView.java
  class CapacitorWebView (line 16) | public class CapacitorWebView extends WebView {
    method CapacitorWebView (line 21) | public CapacitorWebView(Context context, AttributeSet attrs) {
    method setBridge (line 25) | public void setBridge(Bridge bridge) {
    method onCreateInputConnection (line 29) | @Override
    method dispatchKeyEvent (line 48) | @Override

FILE: android/capacitor/src/main/java/com/getcapacitor/FileUtils.java
  class FileUtils (line 49) | public class FileUtils {
    type Type (line 53) | public enum Type {
      method Type (line 58) | Type(String type) {
    method getPortablePath (line 63) | public static String getPortablePath(Context c, String host, Uri u) {
    method getFileUrlForUri (line 71) | public static String getFileUrlForUri(final Context context, final Uri...
    method legacyPrimaryPath (line 140) | @SuppressWarnings("deprecation")
    method readFileFromAssets (line 153) | static String readFileFromAssets(AssetManager assetManager, String fil...
    method readFileFromDisk (line 172) | static String readFileFromDisk(File file) throws IOException {
    method getDataColumn (line 194) | private static String getDataColumn(Context context, Uri uri, String s...
    method getCopyFilePath (line 217) | private static String getCopyFilePath(Uri uri, Context context) {
    method isExternalStorageDocument (line 248) | private static boolean isExternalStorageDocument(Uri uri) {
    method isDownloadsDocument (line 256) | private static boolean isDownloadsDocument(Uri uri) {
    method isMediaDocument (line 264) | private static boolean isMediaDocument(Uri uri) {
    method isGooglePhotosUri (line 272) | private static boolean isGooglePhotosUri(Uri uri) {
    method getPathToNonPrimaryVolume (line 276) | private static String getPathToNonPrimaryVolume(Context context, Strin...
    method sanitizeFilename (line 294) | private static String sanitizeFilename(String displayName) {

FILE: android/capacitor/src/main/java/com/getcapacitor/InvalidPluginException.java
  class InvalidPluginException (line 3) | class InvalidPluginException extends Exception {
    method InvalidPluginException (line 5) | public InvalidPluginException(String s) {

FILE: android/capacitor/src/main/java/com/getcapacitor/InvalidPluginMethodException.java
  class InvalidPluginMethodException (line 3) | class InvalidPluginMethodException extends Exception {
    method InvalidPluginMethodException (line 5) | public InvalidPluginMethodException(String s) {
    method InvalidPluginMethodException (line 9) | public InvalidPluginMethodException(Throwable t) {
    method InvalidPluginMethodException (line 13) | public InvalidPluginMethodException(String s, Throwable t) {

FILE: android/capacitor/src/main/java/com/getcapacitor/JSArray.java
  class JSArray (line 9) | public class JSArray extends JSONArray {
    method JSArray (line 11) | public JSArray() {
    method JSArray (line 15) | public JSArray(String json) throws JSONException {
    method JSArray (line 19) | public JSArray(Collection copyFrom) {
    method JSArray (line 23) | public JSArray(Object array) throws JSONException {
    method toList (line 27) | @SuppressWarnings("unchecked")
    method from (line 45) | public static JSArray from(Object array) {

FILE: android/capacitor/src/main/java/com/getcapacitor/JSExport.java
  class JSExport (line 15) | public class JSExport {
    method getGlobalJS (line 20) | public static String getGlobalJS(Context context, boolean loggingEnabl...
    method getMiscFileJS (line 24) | public static String getMiscFileJS(ArrayList<String> paths, Context co...
    method getCordovaJS (line 39) | public static String getCordovaJS(Context context) {
    method getCordovaPluginsFileJS (line 49) | public static String getCordovaPluginsFileJS(Context context) {
    method getPluginJS (line 59) | public static String getPluginJS(Collection<PluginHandle> plugins) {
    method getCordovaPluginJS (line 94) | public static String getCordovaPluginJS(Context context) {
    method getFilesContent (line 98) | public static String getFilesContent(Context context, String path) {
    method createPluginHeader (line 117) | private static JSONObject createPluginHeader(PluginHandle plugin) {
    method createPluginMethodHeader (line 136) | private static JSONObject createPluginMethodHeader(PluginMethodHandle ...
    method getBridgeJS (line 151) | public static String getBridgeJS(Context context) throws JSExportExcep...
    method generateMethodJS (line 155) | private static String generateMethodJS(PluginHandle plugin, PluginMeth...

FILE: android/capacitor/src/main/java/com/getcapacitor/JSExportException.java
  class JSExportException (line 3) | public class JSExportException extends Exception {
    method JSExportException (line 5) | public JSExportException(String s) {
    method JSExportException (line 9) | public JSExportException(Throwable t) {
    method JSExportException (line 13) | public JSExportException(String s, Throwable t) {

FILE: android/capacitor/src/main/java/com/getcapacitor/JSInjector.java
  class JSInjector (line 14) | class JSInjector {
    method JSInjector (line 25) | public JSInjector(
    method JSInjector (line 37) | public JSInjector(
    method getScriptString (line 62) | public String getScriptString() {
    method getInjectedStream (line 91) | public InputStream getInjectedStream(InputStream responseStream) {
    method readAssetStream (line 109) | private String readAssetStream(InputStream stream) {

FILE: android/capacitor/src/main/java/com/getcapacitor/JSObject.java
  class JSObject (line 15) | public class JSObject extends JSONObject {
    method JSObject (line 17) | public JSObject() {
    method JSObject (line 21) | public JSObject(String json) throws JSONException {
    method JSObject (line 25) | public JSObject(JSONObject obj, String[] names) throws JSONException {
    method fromJSONObject (line 33) | public static JSObject fromJSONObject(JSONObject obj) throws JSONExcep...
    method getString (line 43) | @Override
    method getString (line 49) | @Nullable
    method getInteger (line 60) | @Nullable
    method getInteger (line 65) | @Nullable
    method getBoolean (line 73) | @Nullable
    method getBool (line 84) | @Nullable
    method getJSObject (line 89) | @Nullable
    method getJSObject (line 97) | @Nullable
    method put (line 114) | @Override
    method put (line 122) | @Override
    method put (line 130) | @Override
    method put (line 138) | @Override
    method put (line 146) | @Override
    method put (line 154) | public JSObject put(String key, String value) {
    method putSafe (line 161) | public JSObject putSafe(String key, Object value) throws JSONException {

FILE: android/capacitor/src/main/java/com/getcapacitor/JSValue.java
  class JSValue (line 8) | public class JSValue {
    method JSValue (line 16) | public JSValue(PluginCall call, String name) {
    method getValue (line 23) | public Object getValue() {
    method toString (line 27) | @Override
    method toJSObject (line 37) | public JSObject toJSObject() throws JSONException {
    method toJSArray (line 47) | public JSArray toJSArray() throws JSONException {
    method toValue (line 55) | private Object toValue(PluginCall call, String name) {

FILE: android/capacitor/src/main/java/com/getcapacitor/Logger.java
  class Logger (line 6) | public class Logger {
    method getInstance (line 13) | private static Logger getInstance() {
    method init (line 20) | public static void init(CapConfig config) {
    method loadConfig (line 24) | private void loadConfig(CapConfig config) {
    method tags (line 28) | public static String tags(String... subtags) {
    method verbose (line 36) | public static void verbose(String message) {
    method verbose (line 40) | public static void verbose(String tag, String message) {
    method debug (line 48) | public static void debug(String message) {
    method debug (line 52) | public static void debug(String tag, String message) {
    method info (line 60) | public static void info(String message) {
    method info (line 64) | public static void info(String tag, String message) {
    method warn (line 72) | public static void warn(String message) {
    method warn (line 76) | public static void warn(String tag, String message) {
    method error (line 84) | public static void error(String message) {
    method error (line 88) | public static void error(String message, Throwable e) {
    method error (line 92) | public static void error(String tag, String message, Throwable e) {
    method shouldLog (line 100) | public static boolean shouldLog() {

FILE: android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java
  class MessageHandler (line 14) | public class MessageHandler {
    method MessageHandler (line 21) | public MessageHandler(Bridge bridge, WebView webView, PluginManager co...
    method postMessage (line 50) | @JavascriptInterface
    method sendResponseMessage (line 101) | public void sendResponseMessage(PluginCall call, PluginResult successR...
    method legacySendResponseMessage (line 141) | private void legacySendResponseMessage(PluginResult data) {
    method callPluginMethod (line 147) | private void callPluginMethod(String callbackId, String pluginId, Stri...
    method callCordovaPluginMethod (line 152) | private void callCordovaPluginMethod(String callbackId, String service...

FILE: android/capacitor/src/main/java/com/getcapacitor/PermissionState.java
  type PermissionState (line 10) | public enum PermissionState {
    method PermissionState (line 18) | PermissionState(String state) {
    method toString (line 22) | @Override
    method byState (line 27) | public static PermissionState byState(String state) {

FILE: android/capacitor/src/main/java/com/getcapacitor/Plugin.java
  class Plugin (line 44) | public class Plugin {
    method Plugin (line 87) | public Plugin() {
    method load (line 96) | public void load() {}
    method initializeActivityLaunchers (line 102) | void initializeActivityLaunchers() {
    method triggerPermissionCallback (line 133) | private void triggerPermissionCallback(Method method, Map<String, Bool...
    method triggerActivityCallback (line 147) | private void triggerActivityCallback(Method method, ActivityResult res...
    method startActivityForResult (line 173) | public void startActivityForResult(PluginCall call, Intent intent, Str...
    method permissionActivityResult (line 185) | private void permissionActivityResult(PluginCall call, String[] permis...
    method getContext (line 200) | public Context getContext() {
    method getActivity (line 208) | public AppCompatActivity getActivity() {
    method setBridge (line 216) | public void setBridge(Bridge bridge) {
    method getBridge (line 223) | public Bridge getBridge() {
    method setPluginHandle (line 233) | public void setPluginHandle(PluginHandle pluginHandle) {
    method getPluginHandle (line 244) | public PluginHandle getPluginHandle() {
    method getAppId (line 252) | public String getAppId() {
    method saveCall (line 263) | @Deprecated
    method freeSavedCall (line 272) | @Deprecated
    method getSavedCall (line 284) | @Deprecated
    method getConfig (line 295) | public PluginConfig getConfig() {
    method getConfigValue (line 307) | @Deprecated
    method hasDefinedPermissions (line 324) | @Deprecated
    method hasDefinedRequiredPermissions (line 340) | @Deprecated
    method isPermissionDeclared (line 365) | public boolean isPermissionDeclared(String alias) {
    method hasPermission (line 394) | @Deprecated
    method hasRequiredPermissions (line 407) | @Deprecated
    method requestAllPermissions (line 444) | protected void requestAllPermissions(@NonNull PluginCall call, @NonNul...
    method requestPermissionForAlias (line 467) | protected void requestPermissionForAlias(@NonNull String alias, @NonNu...
    method requestPermissionForAliases (line 482) | protected void requestPermissionForAliases(@NonNull String[] aliases, ...
    method getPermissionStringsForAliases (line 502) | private String[] getPermissionStringsForAliases(@NonNull String[] alia...
    method getActivityLauncherOrReject (line 522) | private @Nullable ActivityResultLauncher<Intent> getActivityLauncherOr...
    method getPermissionLauncherOrReject (line 548) | private @Nullable ActivityResultLauncher<String[]> getPermissionLaunch...
    method pluginRequestAllPermissions (line 571) | @Deprecated
    method pluginRequestPermission (line 584) | @Deprecated
    method pluginRequestPermissions (line 597) | @Deprecated
    method getPermissionState (line 608) | public PermissionState getPermissionState(String alias) {
    method getPermissionStates (line 618) | public Map<String, PermissionState> getPermissionStates() {
    method addEventListener (line 627) | private void addEventListener(String eventName, PluginCall call) {
    method removeEventListener (line 647) | private void removeEventListener(String eventName, PluginCall call) {
    method notifyListeners (line 661) | protected void notifyListeners(String eventName, JSObject data, boolea...
    method notifyListeners (line 692) | protected void notifyListeners(String eventName, JSObject data) {
    method hasListeners (line 699) | protected boolean hasListeners(String eventName) {
    method sendRetainedArgumentsForEvent (line 712) | private void sendRetainedArgumentsForEvent(String eventName) {
    method addListener (line 730) | @SuppressWarnings("unused")
    method removeListener (line 742) | @SuppressWarnings("unused")
    method removeAllListeners (line 758) | @SuppressWarnings("unused")
    method removeAllListeners (line 765) | public void removeAllListeners() {
    method checkPermissions (line 776) | @PluginMethod
    method requestPermissions (line 803) | @PluginMethod
    method handleLegacyPermission (line 875) | @SuppressWarnings("deprecation")
    method handleRequestPermissionsResult (line 898) | @Deprecated
    method saveInstanceState (line 921) | protected Bundle saveInstanceState() {
    method restoreState (line 945) | protected void restoreState(Bundle state) {}
    method handleOnActivityResult (line 957) | @Deprecated
    method handleOnNewIntent (line 964) | protected void handleOnNewIntent(Intent intent) {}
    method handleOnConfigurationChanged (line 970) | protected void handleOnConfigurationChanged(Configuration newConfig) {}
    method handleOnStart (line 975) | protected void handleOnStart() {}
    method handleOnRestart (line 980) | protected void handleOnRestart() {}
    method handleOnResume (line 985) | protected void handleOnResume() {}
    method handleOnPause (line 990) | protected void handleOnPause() {}
    method handleOnStop (line 995) | protected void handleOnStop() {}
    method handleOnDestroy (line 1000) | protected void handleOnDestroy() {}
    method shouldOverrideLoad (line 1008) | @SuppressWarnings("unused")
    method startActivityForResult (line 1023) | @Deprecated
    method execute (line 1032) | public void execute(Runnable runnable) {
    method getLogTag (line 1040) | protected String getLogTag(String... subTags) {
    method getLogTag (line 1047) | protected String getLogTag() {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginCall.java
  class PluginCall (line 13) | public class PluginCall {
    method PluginCall (line 36) | public PluginCall(MessageHandler msgHandler, String pluginId, String c...
    method successCallback (line 44) | public void successCallback(PluginResult successResult) {
    method resolve (line 53) | public void resolve(JSObject data) {
    method resolve (line 58) | public void resolve() {
    method errorCallback (line 62) | public void errorCallback(String msg) {
    method reject (line 74) | public void reject(String msg, String code, Exception ex, JSObject dat...
    method reject (line 94) | public void reject(String msg, Exception ex, JSObject data) {
    method reject (line 98) | public void reject(String msg, String code, JSObject data) {
    method reject (line 102) | public void reject(String msg, String code, Exception ex) {
    method reject (line 106) | public void reject(String msg, JSObject data) {
    method reject (line 110) | public void reject(String msg, Exception ex) {
    method reject (line 114) | public void reject(String msg, String code) {
    method reject (line 118) | public void reject(String msg) {
    method unimplemented (line 122) | public void unimplemented() {
    method unimplemented (line 126) | public void unimplemented(String msg) {
    method unavailable (line 130) | public void unavailable() {
    method unavailable (line 134) | public void unavailable(String msg) {
    method getPluginId (line 138) | public String getPluginId() {
    method getCallbackId (line 142) | public String getCallbackId() {
    method getMethodName (line 146) | public String getMethodName() {
    method getData (line 150) | public JSObject getData() {
    method getString (line 154) | @Nullable
    method getString (line 159) | @Nullable
    method getInt (line 172) | @Nullable
    method getInt (line 177) | @Nullable
    method getLong (line 190) | @Nullable
    method getLong (line 195) | @Nullable
    method getFloat (line 208) | @Nullable
    method getFloat (line 213) | @Nullable
    method getDouble (line 232) | @Nullable
    method getDouble (line 237) | @Nullable
    method getBoolean (line 256) | @Nullable
    method getBoolean (line 261) | @Nullable
    method getObject (line 274) | public JSObject getObject(String name) {
    method getObject (line 278) | @Nullable
    method getArray (line 295) | public JSArray getArray(String name) {
    method getArray (line 305) | @Nullable
    method hasOption (line 333) | @Deprecated
    method save (line 344) | @Deprecated
    method setKeepAlive (line 356) | public void setKeepAlive(Boolean keepAlive) {
    method release (line 360) | public void release(Bridge bridge) {
    method isSaved (line 370) | @Deprecated
    method isKeptAlive (line 379) | public boolean isKeptAlive() {
    method isReleased (line 383) | @Deprecated
    class PluginCallDataTypeException (line 388) | class PluginCallDataTypeException extends Exception {
      method PluginCallDataTypeException (line 390) | PluginCallDataTypeException(String m) {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginConfig.java
  class PluginConfig (line 9) | public class PluginConfig {
    method PluginConfig (line 21) | PluginConfig(JSONObject config) {
    method getString (line 31) | public String getString(String configKey) {
    method getString (line 42) | public String getString(String configKey, String defaultValue) {
    method getBoolean (line 53) | public boolean getBoolean(String configKey, boolean defaultValue) {
    method getInt (line 64) | public int getInt(String configKey, int defaultValue) {
    method getArray (line 74) | public String[] getArray(String configKey) {
    method getArray (line 85) | public String[] getArray(String configKey, String[] defaultValue) {
    method getObject (line 95) | public JSONObject getObject(String configKey) {
    method isEmpty (line 104) | public boolean isEmpty() {
    method getConfigJSON (line 113) | public JSONObject getConfigJSON() {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginHandle.java
  class PluginHandle (line 14) | public class PluginHandle {
    method PluginHandle (line 30) | @SuppressWarnings("deprecation")
    method PluginHandle (line 63) | public PluginHandle(Bridge bridge, Class<? extends Plugin> pluginClass...
    method PluginHandle (line 68) | public PluginHandle(Bridge bridge, Plugin plugin) throws InvalidPlugin...
    method getPluginClass (line 73) | public Class<? extends Plugin> getPluginClass() {
    method getId (line 77) | public String getId() {
    method getLegacyPluginAnnotation (line 81) | @SuppressWarnings("deprecation")
    method getPluginAnnotation (line 86) | public CapacitorPlugin getPluginAnnotation() {
    method getInstance (line 90) | public Plugin getInstance() {
    method getMethods (line 94) | public Collection<PluginMethodHandle> getMethods() {
    method load (line 98) | public Plugin load() throws PluginLoadException {
    method loadInstance (line 111) | public Plugin loadInstance(Plugin plugin) {
    method invoke (line 126) | public void invoke(String methodName, PluginCall call)
    method indexMethods (line 145) | private void indexMethods(Class<? extends Plugin> plugin) {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginInvocationException.java
  class PluginInvocationException (line 3) | class PluginInvocationException extends Exception {
    method PluginInvocationException (line 5) | public PluginInvocationException(String s) {
    method PluginInvocationException (line 9) | public PluginInvocationException(Throwable t) {
    method PluginInvocationException (line 13) | public PluginInvocationException(String s, Throwable t) {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginLoadException.java
  class PluginLoadException (line 6) | public class PluginLoadException extends Exception {
    method PluginLoadException (line 8) | public PluginLoadException(String s) {
    method PluginLoadException (line 12) | public PluginLoadException(Throwable t) {
    method PluginLoadException (line 16) | public PluginLoadException(String s, Throwable t) {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginManager.java
  class PluginManager (line 13) | public class PluginManager {
    method PluginManager (line 17) | public PluginManager(AssetManager assetManager) {
    method loadPluginClasses (line 21) | public List<Class<? extends Plugin>> loadPluginClasses() throws Plugin...
    method parsePluginsJSON (line 41) | private JSONArray parsePluginsJSON() throws PluginLoadException {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginMethodHandle.java
  class PluginMethodHandle (line 5) | public class PluginMethodHandle {
    method PluginMethodHandle (line 14) | public PluginMethodHandle(Method method, PluginMethod methodDecorator) {
    method getReturnType (line 22) | public String getReturnType() {
    method getName (line 26) | public String getName() {
    method getMethod (line 30) | public Method getMethod() {

FILE: android/capacitor/src/main/java/com/getcapacitor/PluginResult.java
  class PluginResult (line 11) | public class PluginResult {
    method PluginResult (line 15) | public PluginResult() {
    method PluginResult (line 19) | public PluginResult(JSObject json) {
    method put (line 23) | public PluginResult put(String name, boolean value) {
    method put (line 27) | public PluginResult put(String name, double value) {
    method put (line 31) | public PluginResult put(String name, int value) {
    method put (line 35) | public PluginResult put(String name, long value) {
    method put (line 42) | public PluginResult put(String name, Date value) {
    method put (line 49) | public PluginResult put(String name, Object value) {
    method put (line 53) | public PluginResult put(String name, PluginResult value) {
    method jsonPut (line 57) | PluginResult jsonPut(String name, Object value) {
    method toString (line 66) | public String toString() {
    method getWrappedResult (line 75) | public JSObject getWrappedResult() {

FILE: android/capacitor/src/main/java/com/getcapacitor/ProcessedRoute.java
  class ProcessedRoute (line 8) | public class ProcessedRoute {
    method getPath (line 14) | public String getPath() {
    method setPath (line 18) | public void setPath(String path) {
    method isAsset (line 22) | public boolean isAsset() {
    method setAsset (line 26) | public void setAsset(boolean asset) {
    method isIgnoreAssetPath (line 30) | public boolean isIgnoreAssetPath() {
    method setIgnoreAssetPath (line 34) | public void setIgnoreAssetPath(boolean ignoreAssetPath) {

FILE: android/capacitor/src/main/java/com/getcapacitor/RouteProcessor.java
  type RouteProcessor (line 6) | public interface RouteProcessor {
    method process (line 7) | ProcessedRoute process(String basePath, String path);

FILE: android/capacitor/src/main/java/com/getcapacitor/ServerPath.java
  class ServerPath (line 3) | public class ServerPath {
    type PathType (line 5) | public enum PathType {
    method ServerPath (line 13) | public ServerPath(PathType type, String path) {
    method getType (line 18) | public PathType getType() {
    method getPath (line 22) | public String getPath() {

FILE: android/capacitor/src/main/java/com/getcapacitor/UriMatcher.java
  class UriMatcher (line 25) | public class UriMatcher {
    method UriMatcher (line 32) | public UriMatcher(Object code) {
    method UriMatcher (line 39) | private UriMatcher() {
    method addURI (line 61) | public void addURI(String scheme, String authority, String path, Objec...
    method match (line 123) | public Object match(Uri uri) {

FILE: android/capacitor/src/main/java/com/getcapacitor/WebViewListener.java
  class WebViewListener (line 9) | public abstract class WebViewListener {
    method onPageLoaded (line 16) | public void onPageLoaded(WebView webView) {
    method onReceivedError (line 25) | public void onReceivedError(WebView webView) {
    method onReceivedHttpError (line 34) | public void onReceivedHttpError(WebView webView) {
    method onPageStarted (line 43) | public void onPageStarted(WebView webView) {
    method onRenderProcessGone (line 53) | public boolean onRenderProcessGone(WebView webView, RenderProcessGoneD...
    method onPageCommitVisible (line 64) | public void onPageCommitVisible(WebView view, String url) {

FILE: android/capacitor/src/main/java/com/getcapacitor/WebViewLocalServer.java
  class WebViewLocalServer (line 52) | public class WebViewLocalServer {
    class PathHandler (line 81) | public abstract static class PathHandler {
      method PathHandler (line 90) | public PathHandler() {
      method PathHandler (line 94) | public PathHandler(String encoding, String charset, int statusCode, ...
      method handle (line 109) | public InputStream handle(WebResourceRequest request) {
      method handle (line 113) | public abstract InputStream handle(Uri url);
      method getEncoding (line 115) | public String getEncoding() {
      method getCharset (line 119) | public String getCharset() {
      method getStatusCode (line 123) | public int getStatusCode() {
      method getReasonPhrase (line 127) | public String getReasonPhrase() {
      method getResponseHeaders (line 139) | @Deprecated(forRemoval = true) // adjust version as appropriate
      method buildDefaultResponseHeaders (line 144) | public Map<String, String> buildDefaultResponseHeaders() {
    method WebViewLocalServer (line 149) | WebViewLocalServer(Context context, Bridge bridge, JSInjector jsInject...
    method parseAndVerifyUrl (line 158) | private static Uri parseAndVerifyUrl(String url) {
    method shouldInterceptRequest (line 184) | public WebResourceResponse shouldInterceptRequest(WebResourceRequest r...
    method isLocalFile (line 213) | private boolean isLocalFile(Uri uri) {
    method isErrorUrl (line 218) | private boolean isErrorUrl(Uri uri) {
    method isMainUrl (line 223) | private boolean isMainUrl(Uri loadingUrl) {
    method isAllowedUrl (line 227) | private boolean isAllowedUrl(Uri loadingUrl) {
    method getReasonPhraseFromResponseCode (line 231) | private String getReasonPhraseFromResponseCode(int code) {
    method handleCapacitorHttpRequest (line 267) | private WebResourceResponse handleCapacitorHttpRequest(WebResourceRequ...
    method handleLocalRequest (line 339) | private WebResourceResponse handleLocalRequest(WebResourceRequest requ...
    method getJavaScriptInjectedStream (line 475) | public InputStream getJavaScriptInjectedStream(InputStream original) {
    method handleProxyRequest (line 489) | private WebResourceResponse handleProxyRequest(WebResourceRequest requ...
    method getMimeType (line 547) | private String getMimeType(String path, InputStream stream) {
    method getStatusCode (line 570) | private int getStatusCode(InputStream stream, int defaultCode) {
    method register (line 594) | void register(Uri uri, PathHandler handler) {
    method hostAssets (line 609) | public void hostAssets(String assetPath) {
    method hostFiles (line 624) | public void hostFiles(final String basePath) {
    method createHostingDetails (line 630) | private void createHostingDetails() {
    method registerUriForScheme (line 689) | private void registerUriForScheme(String scheme, PathHandler handler, ...
    class LazyInputStream (line 704) | private abstract static class LazyInputStream extends InputStream {
      method LazyInputStream (line 709) | public LazyInputStream(PathHandler handler) {
      method getInputStream (line 713) | private InputStream getInputStream() {
      method handle (line 720) | protected abstract InputStream handle();
      method available (line 722) | @Override
      method read (line 728) | @Override
      method read (line 734) | @Override
      method read (line 740) | @Override
      method skip (line 746) | @Override
    class LollipopLazyInputStream (line 754) | private static class LollipopLazyInputStream extends LazyInputStream {
      method LollipopLazyInputStream (line 759) | public LollipopLazyInputStream(PathHandler handler, WebResourceReque...
      method handle (line 764) | @Override
    method getBasePath (line 770) | public String getBasePath() {

FILE: android/capacitor/src/main/java/com/getcapacitor/cordova/CapacitorCordovaCookieManager.java
  class CapacitorCordovaCookieManager (line 7) | class CapacitorCordovaCookieManager implements ICordovaCookieManager {
    method CapacitorCordovaCookieManager (line 12) | public CapacitorCordovaCookieManager(WebView webview) {
    method setCookiesEnabled (line 18) | @Override
    method setCookie (line 23) | @Override
    method getCookie (line 28) | @Override
    method clearCookies (line 33) | @Override
    method flush (line 38) | @Override

FILE: android/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaInterfaceImpl.java
  class MockCordovaInterfaceImpl (line 10) | public class MockCordovaInterfaceImpl extends CordovaInterfaceImpl {
    method MockCordovaInterfaceImpl (line 12) | public MockCordovaInterfaceImpl(AppCompatActivity activity) {
    method getActivityResultCallback (line 16) | public CordovaPlugin getActivityResultCallback() {
    method handlePermissionResult (line 29) | @SuppressWarnings("deprecation")

FILE: android/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaWebViewImpl.java
  class MockCordovaWebViewImpl (line 23) | public class MockCordovaWebViewImpl implements CordovaWebView {
    method MockCordovaWebViewImpl (line 35) | public MockCordovaWebViewImpl(Context context) {
    method init (line 39) | @Override
    method init (line 48) | public void init(CordovaInterface cordova, List<PluginEntry> pluginEnt...
    class CapacitorEvalBridgeMode (line 61) | public static class CapacitorEvalBridgeMode extends NativeToJsMessageQ...
      method CapacitorEvalBridgeMode (line 66) | public CapacitorEvalBridgeMode(WebView webView, CordovaInterface cor...
      method onNativeToJsMessageAvailable (line 71) | @Override
    method isInitialized (line 84) | @Override
    method getView (line 89) | @Override
    method loadUrlIntoView (line 94) | @Override
    method stopLoading (line 102) | @Override
    method canGoBack (line 105) | @Override
    method clearCache (line 110) | @Override
    method clearCache (line 113) | @Deprecated
    method clearHistory (line 117) | @Override
    method backHistory (line 120) | @Override
    method handlePause (line 125) | @Override
    method onNewIntent (line 140) | @Override
    method handleResume (line 147) | @Override
    method handleStart (line 159) | @Override
    method handleStop (line 167) | @Override
    method handleDestroy (line 175) | @Override
    method sendJavascript (line 183) | @Deprecated
    method eval (line 189) | public void eval(final String js, final ValueCallback<String> callback) {
    method triggerDocumentEvent (line 194) | public void triggerDocumentEvent(final String eventName) {
    method showWebPage (line 198) | @Override
    method isCustomViewShowing (line 201) | @Deprecated
    method showCustomView (line 207) | @Deprecated
    method hideCustomView (line 211) | @Deprecated
    method getResourceApi (line 215) | @Override
    method setButtonPlumbedToJs (line 220) | @Override
    method isButtonPlumbedToJs (line 223) | @Override
    method sendPluginResult (line 228) | @Override
    method getPluginManager (line 233) | @Override
    method getEngine (line 238) | @Override
    method getPreferences (line 243) | @Override
    method getCookieManager (line 248) | @Override
    method getUrl (line 253) | @Override
    method getContext (line 258) | @Override
    method loadUrl (line 263) | @Override
    method postMessage (line 268) | @Override
    method setPaused (line 273) | public void setPaused(boolean value) {

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java
  class CapacitorCookieManager (line 19) | public class CapacitorCookieManager extends CookieManager {
    method CapacitorCookieManager (line 32) | public CapacitorCookieManager(Bridge bridge) {
    method CapacitorCookieManager (line 43) | public CapacitorCookieManager(CookieStore store, CookiePolicy policy, ...
    method removeSessionCookies (line 50) | public void removeSessionCookies() {
    method getSanitizedDomain (line 54) | public String getSanitizedDomain(String url) throws URISyntaxException {
    method getDomainFromCookieString (line 78) | private String getDomainFromCookieString(String cookie) throws URISynt...
    method getCookieString (line 88) | public String getCookieString(String url) {
    method getCookie (line 107) | public HttpCookie getCookie(String url, String key) {
    method getCookies (line 123) | public HttpCookie[] getCookies(String url) {
    method setCookie (line 148) | public void setCookie(String url, String value) {
    method setCookie (line 166) | public void setCookie(String url, String key, String value) {
    method setCookie (line 171) | public void setCookie(String url, String key, String value, String exp...
    method removeAllCookies (line 179) | public void removeAllCookies() {
    method flush (line 188) | public void flush() {
    method put (line 192) | @Override
    method get (line 215) | @Override
    method getCookieStore (line 234) | @Override

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookies.java
  class CapacitorCookies (line 16) | @CapacitorPlugin
    method load (line 21) | @Override
    method handleOnDestroy (line 30) | @Override
    method isEnabled (line 36) | @JavascriptInterface
    method setCookie (line 42) | @JavascriptInterface
    method getCookies (line 47) | @PluginMethod
    method setCookie (line 76) | @PluginMethod
    method deleteCookie (line 93) | @PluginMethod
    method clearCookies (line 104) | @PluginMethod
    method clearAllCookies (line 114) | @PluginMethod

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorHttp.java
  class CapacitorHttp (line 19) | @CapacitorPlugin(
    method load (line 30) | @Override
    method handleOnDestroy (line 36) | @Override
    method http (line 61) | private void http(final PluginCall call, final String httpMethod) {
    method isEnabled (line 84) | @JavascriptInterface
    method request (line 90) | @PluginMethod
    method get (line 95) | @PluginMethod
    method post (line 100) | @PluginMethod
    method put (line 105) | @PluginMethod
    method patch (line 110) | @PluginMethod
    method delete (line 115) | @PluginMethod

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/SystemBars.java
  class SystemBars (line 26) | @CapacitorPlugin
    method load (line 61) | @Override
    method handleOnStart (line 69) | @Override
    method handleOnConfigurationChanged (line 84) | @Override
    method initSystemBars (line 91) | private void initSystemBars() {
    method setStyle (line 109) | @PluginMethod
    method show (line 120) | @PluginMethod
    method hide (line 130) | @PluginMethod
    method setAnimation (line 140) | @PluginMethod
    method onDOMReady (line 145) | @JavascriptInterface
    method calcSafeAreaInsets (line 156) | private Insets calcSafeAreaInsets(WindowInsetsCompat insets) {
    method initSafeAreaCSSVariables (line 164) | private void initSafeAreaCSSVariables() {
    method initWindowInsetsListener (line 175) | private void initWindowInsetsListener() {
    method injectSafeAreaCSS (line 229) | private void injectSafeAreaCSS(int top, int right, int bottom, int lef...
    method setStyle (line 261) | private void setStyle(String style, String bar) {
    method setHidden (line 281) | private void setHidden(boolean hide, String bar) {
    method getStyleForTheme (line 303) | private String getStyleForTheme() {
    method getThemeColor (line 311) | public int getThemeColor(Context context, int attrRes) {
    method getWebViewMajorVersion (line 319) | private Integer getWebViewMajorVersion() {
    method getBottomInset (line 329) | private int getBottomInset(Insets systemBarsInsets, boolean keyboardVi...

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/WebView.java
  class WebView (line 11) | @CapacitorPlugin
    method setServerAssetPath (line 17) | @PluginMethod
    method setServerBasePath (line 24) | @PluginMethod
    method getServerBasePath (line 31) | @PluginMethod
    method persistServerBasePath (line 39) | @PluginMethod

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/util/AssetUtil.java
  class AssetUtil (line 26) | public final class AssetUtil {
    method AssetUtil (line 41) | private AssetUtil(Context context) {
    method getInstance (line 50) | public static AssetUtil getInstance(Context context) {
    method parse (line 59) | public Uri parse(String path) {
    method getUriFromPath (line 84) | private Uri getUriFromPath(String path) {
    method getUriFromAsset (line 103) | private Uri getUriFromAsset(String path) {
    method getUriForResourcePath (line 130) | private Uri getUriForResourcePath(String path) {
    method getUriFromRemote (line 155) | private Uri getUriFromRemote(String path) {
    method copyFile (line 194) | private void copyFile(InputStream in, FileOutputStream out) {
    method getResId (line 216) | public int getResId(String resPath) {
    method getResId (line 234) | private int getResId(Resources res, String resPath) {
    method getIconFromUri (line 257) | public Bitmap getIconFromUri(Uri uri) throws IOException {
    method getBaseName (line 267) | private String getBaseName(String resPath) {
    method getTmpFile (line 286) | private File getTmpFile() {
    method getTmpFile (line 297) | private File getTmpFile(String name) {
    method getUriFromFile (line 324) | private Uri getUriFromFile(File file) {
    method getPkgName (line 337) | private String getPkgName(Resources res) {
    method getResourceID (line 341) | public static int getResourceID(Context context, String resourceName, ...
    method getResourceBaseName (line 345) | public static String getResourceBaseName(String resPath) {

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/util/CapacitorHttpUrlConnection.java
  class CapacitorHttpUrlConnection (line 32) | public class CapacitorHttpUrlConnection implements ICapacitorHttpUrlConn...
    method CapacitorHttpUrlConnection (line 42) | public CapacitorHttpUrlConnection(HttpURLConnection conn) {
    method getHttpConnection (line 51) | public HttpURLConnection getHttpConnection() {
    method disconnect (line 55) | public void disconnect() {
    method setAllowUserInteraction (line 66) | public void setAllowUserInteraction(boolean isAllowedInteraction) {
    method setRequestMethod (line 90) | public void setRequestMethod(String method) throws ProtocolException {
    method setConnectTimeout (line 114) | public void setConnectTimeout(int timeout) {
    method setReadTimeout (line 133) | public void setReadTimeout(int timeout) {
    method setDisableRedirects (line 144) | public void setDisableRedirects(boolean disableRedirects) {
    method setRequestHeaders (line 152) | public void setRequestHeaders(JSObject headers) {
    method setDoOutput (line 172) | public void setDoOutput(boolean shouldDoOutput) {
    method setRequestBody (line 182) | public void setRequestBody(PluginCall call, JSValue body) throws JSONE...
    method setRequestBody (line 192) | public void setRequestBody(PluginCall call, JSValue body, String bodyT...
    method writeRequestBody (line 238) | private void writeRequestBody(String body) throws IOException {
    method writeObjectRequestBody (line 245) | private void writeObjectRequestBody(JSObject object) throws IOExceptio...
    method writeFormDataRequestBody (line 263) | private void writeFormDataRequestBody(String contentType, JSArray entr...
    method connect (line 327) | public void connect() throws IOException {
    method getResponseCode (line 344) | public int getResponseCode() throws IOException {
    method getURL (line 355) | public URL getURL() {
    method getErrorStream (line 377) | @Override
    method getHeaderField (line 393) | @Override
    method getInputStream (line 412) | @Override
    method getHeaderFields (line 426) | public Map<String, List<String>> getHeaderFields() {
    method setDefaultRequestProperties (line 434) | private void setDefaultRequestProperties() {
    method buildDefaultAcceptLanguageProperty (line 444) | private String buildDefaultAcceptLanguageProperty() {
    method setSSLSocketFactory (line 459) | public void setSSLSocketFactory(Bridge bridge) {

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/util/HttpRequestHandler.java
  class HttpRequestHandler (line 31) | public class HttpRequestHandler {
    type ResponseType (line 37) | public enum ResponseType {
      method ResponseType (line 46) | ResponseType(String name) {
      method parse (line 52) | public static ResponseType parse(String value) {
    class HttpURLConnectionBuilder (line 65) | public static class HttpURLConnectionBuilder {
      method setConnectTimeout (line 76) | public HttpURLConnectionBuilder setConnectTimeout(Integer connectTim...
      method setReadTimeout (line 81) | public HttpURLConnectionBuilder setReadTimeout(Integer readTimeout) {
      method setDisableRedirects (line 86) | public HttpURLConnectionBuilder setDisableRedirects(Boolean disableR...
      method setHeaders (line 91) | public HttpURLConnectionBuilder setHeaders(JSObject headers) {
      method setMethod (line 96) | public HttpURLConnectionBuilder setMethod(String method) {
      method setUrl (line 101) | public HttpURLConnectionBuilder setUrl(URL url) {
      method openConnection (line 106) | public HttpURLConnectionBuilder openConnection() throws IOException {
      method setUrlParams (line 120) | public HttpURLConnectionBuilder setUrlParams(JSObject params) throws...
      method setUrlParams (line 124) | public HttpURLConnectionBuilder setUrlParams(JSObject params, boolea...
      method addUrlParam (line 178) | private static void addUrlParam(StringBuilder sb, String key, String...
      method build (line 190) | public CapacitorHttpUrlConnection build() {
    method buildResponse (line 202) | public static JSObject buildResponse(CapacitorHttpUrlConnection connec...
    method buildResponse (line 214) | public static JSObject buildResponse(CapacitorHttpUrlConnection connec...
    method readData (line 240) | public static Object readData(ICapacitorHttpUrlConnection connection, ...
    method isOneOf (line 275) | public static boolean isOneOf(String contentType, MimeType... mimeType...
    method buildResponseHeaders (line 291) | public static JSObject buildResponseHeaders(CapacitorHttpUrlConnection...
    method parseJSON (line 308) | public static Object parseJSON(String input) throws JSONException {
    method readStreamAsBase64 (line 344) | public static String readStreamAsBase64(InputStream in) throws IOExcep...
    method readStreamAsString (line 362) | public static String readStreamAsString(InputStream in) throws IOExcep...
    method request (line 385) | public static JSObject request(PluginCall call, String httpMethod, Bri...
    method isDomainExcludedFromSSL (line 451) | public static Boolean isDomainExcludedFromSSL(Bridge bridge, URL url) {
    type ProgressEmitter (line 461) | @FunctionalInterface
      method emit (line 463) | void emit(Integer bytes, Integer contentLength);

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/util/ICapacitorHttpUrlConnection.java
  type ICapacitorHttpUrlConnection (line 9) | public interface ICapacitorHttpUrlConnection {
    method getErrorStream (line 10) | InputStream getErrorStream();
    method getHeaderField (line 12) | String getHeaderField(String name);
    method getInputStream (line 14) | InputStream getInputStream() throws IOException;

FILE: android/capacitor/src/main/java/com/getcapacitor/plugin/util/MimeType.java
  type MimeType (line 3) | enum MimeType {
    method MimeType (line 10) | MimeType(String value) {
    method getValue (line 14) | String getValue() {

FILE: android/capacitor/src/main/java/com/getcapacitor/util/HostMask.java
  type HostMask (line 8) | public interface HostMask {
    method matches (line 9) | boolean matches(String host);
    class Parser (line 11) | class Parser {
      method parse (line 15) | public static HostMask parse(String[] masks) {
      method parse (line 19) | public static HostMask parse(String mask) {
    class Simple (line 24) | class Simple implements HostMask {
      method Simple (line 28) | private Simple(List<String> maskParts) {
      method parse (line 35) | static Simple parse(String mask) {
      method matches (line 40) | @Override
    class Any (line 65) | class Any implements HostMask {
      method Any (line 69) | Any(List<? extends HostMask> masks) {
      method matches (line 73) | @Override
      method parse (line 83) | static Any parse(String... rawMasks) {
    class Nothing (line 92) | class Nothing implements HostMask {
      method matches (line 94) | @Override
    class Util (line 100) | class Util {
      method matches (line 102) | static boolean matches(String mask, String string) {
      method splitAndReverse (line 114) | static List<String> splitAndReverse(String string) {

FILE: android/capacitor/src/main/java/com/getcapacitor/util/InternalUtils.java
  class InternalUtils (line 7) | public class InternalUtils {
    method getPackageInfo (line 9) | public static PackageInfo getPackageInfo(PackageManager pm, String pac...
    method getPackageInfo (line 13) | public static PackageInfo getPackageInfo(PackageManager pm, String pac...
    method getPackageInfoLegacy (line 22) | @SuppressWarnings("deprecation")

FILE: android/capacitor/src/main/java/com/getcapacitor/util/JSONUtils.java
  class JSONUtils (line 10) | public class JSONUtils {
    method getString (line 20) | public static String getString(JSONObject jsonObject, String key, Stri...
    method getBoolean (line 45) | public static boolean getBoolean(JSONObject jsonObject, String key, bo...
    method getInt (line 66) | public static int getInt(JSONObject jsonObject, String key, int defaul...
    method getObject (line 85) | public static JSONObject getObject(JSONObject jsonObject, String key) {
    method getArray (line 106) | public static String[] getArray(JSONObject jsonObject, String key, Str...
    method getDeepestKey (line 137) | private static String getDeepestKey(String key) {
    method getDeepestObject (line 154) | private static JSONObject getDeepestObject(JSONObject jsonObject, Stri...

FILE: android/capacitor/src/main/java/com/getcapacitor/util/PermissionHelper.java
  class PermissionHelper (line 16) | public class PermissionHelper {
    method hasPermissions (line 25) | public static boolean hasPermissions(Context context, String[] permiss...
    method hasDefinedPermission (line 41) | public static boolean hasDefinedPermission(Context context, String per...
    method hasDefinedPermissions (line 60) | public static boolean hasDefinedPermissions(Context context, String[] ...
    method getManifestPermissions (line 76) | public static String[] getManifestPermissions(Context context) {
    method getUndefinedPermissions (line 96) | public static String[] getUndefinedPermissions(Context context, String...

FILE: android/capacitor/src/main/java/com/getcapacitor/util/WebColor.java
  class WebColor (line 5) | public class WebColor {
    method parseColor (line 12) | public static int parseColor(String colorString) {

FILE: android/capacitor/src/test/java/android/util/Log.java
  class Log (line 3) | public class Log {
    method d (line 5) | public static int d(String tag, String msg) {
    method i (line 10) | public static int i(String tag, String msg) {
    method w (line 15) | public static int w(String tag, String msg) {
    method e (line 20) | public static int e(String tag, String msg) {
    method v (line 25) | public static int v(String tag, String msg) {

FILE: android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java
  class ConfigBuildingTest (line 12) | public class ConfigBuildingTest {
    method setup (line 25) | @Before
    method getCoreConfigValues (line 64) | @Test
    method getPluginString (line 80) | @Test
    method getPluginBoolean (line 86) | @Test
    method getPluginInt (line 92) | @Test
    method getPluginArray (line 98) | @Test
    method getPluginObject (line 105) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/ConfigReadingTest.java
  class ConfigReadingTest (line 20) | public class ConfigReadingTest {
    method getTestInputStream (line 32) | private InputStream getTestInputStream(String testPath) {
    method before (line 36) | @Before
    method bad (line 42) | @Test
    method flat (line 56) | @Test
    method hierarchy (line 72) | @Test
    method nonJSON (line 87) | @Test
    method server (line 103) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/ExampleUnitTest.java
  class ExampleUnitTest (line 12) | public class ExampleUnitTest {
    method addition_isCorrect (line 14) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/JSObjectTest.java
  class JSObjectTest (line 8) | public class JSObjectTest {
    method getStringReturnsNull_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 10) | @Test
    method getStringReturnsExpectedValue_WhenJSObject_IsConstructed_WithAValidJSONObject (line 19) | @Test
    method getStringReturnsDefaultValue_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 29) | @Test
    method getStringReturnsDefaultValue_WhenJSObject_IsConstructed_WithAValueAsInteger (line 39) | @Test
    method getIntegerReturnsNull_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 49) | @Test
    method getIntegerReturnsExpectedValue_WhenJSObject_IsConstructed_WithAValidJSONObject (line 58) | @Test
    method getIntegerReturnsDefaultValue_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 68) | @Test
    method getStringReturnsDefaultValue_WhenJSObject_IsConstructed_WithAValueAsString (line 78) | @Test
    method getBoolReturnsNull_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 88) | @Test
    method getBoolReturnsExpectedValue_WhenJSObject_IsConstructed_WithAValidJSONObject (line 97) | @Test
    method getBooleanReturnsDefaultValue_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 107) | @Test
    method getBooleanReturnsDefaultValue_WhenJSObject_IsConstructed_WithAValueAsString (line 117) | @Test
    method getJSObjectReturnsNull_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 127) | @Test
    method getJsObjectReturnsExpectedValue_WhenJSObject_IsConstructed_WithAValidJSONObject (line 136) | @Test
    method getJSObjectReturnsDefaultValue_WhenJSObject_IsConstructed_WithNoInitialJSONObject (line 146) | @Test
    method putBoolean_AddsValueToJSObject_UnderCorrectKey (line 158) | @Test
    method putInteger_AddsValueToJSObject_UnderCorrectKey (line 168) | @Test
    method putLong_AddsValueToJSObject_UnderCorrectKey (line 179) | @Test
    method putDouble_AddsValueToJSObject_UnderCorrectKey (line 190) | @Test
    method putString_AddsValueToJSObject_UnderCorrectKey (line 201) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/PluginMethodHandleTest.java
  class PluginMethodHandleTest (line 10) | public class PluginMethodHandleTest {
    method getNameReturnsMethodName (line 12) | @Test
    method getMethodHandleReturnsMethodHandle (line 23) | @Test
    method getMethodReturnsMethod (line 34) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/plugin/util/HttpRequestHandlerTest.java
  class HttpRequestHandlerTest (line 10) | public class HttpRequestHandlerTest {
    method testHttpURLConnectionBuilderSetUrlParamsEncoded (line 17) | @Test
    method testHttpURLConnectionBuilderSetUrlParamsNotEncoded (line 28) | @Test

FILE: android/capacitor/src/test/java/com/getcapacitor/util/HostMaskTest.java
  class HostMaskTest (line 8) | public class HostMaskTest {
    method testParser (line 10) | @Test
    method testAny (line 17) | @Test
    method testAnyWildcard (line 29) | @Test
    method testSimple (line 41) | @Test
    method testSimpleExample1 (line 50) | @Test
    method testSimpleExample2 (line 56) | @Test
    method test192168ForLocalTestingSakes (line 62) | @Test
    method testUtil (line 69) | @Test

FILE: cli/src/android/add.ts
  function addAndroid (line 11) | async function addAndroid(config: Config): Promise<void> {
  function createLocalProperties (line 17) | async function createLocalProperties(platformDir: string): Promise<void> {
  function gradleSync (line 49) | async function gradleSync(platformDir: string) {

FILE: cli/src/android/build.ts
  function buildAndroid (line 10) | async function buildAndroid(config: Config, buildOptions: BuildCommandOp...
  function signWithApkSigner (line 67) | async function signWithApkSigner(
  function signWithJarSigner (line 105) | async function signWithJarSigner(

FILE: cli/src/android/common.ts
  function checkAndroidPackage (line 11) | async function checkAndroidPackage(config: Config): Promise<string | nul...
  function getAndroidPlugins (line 15) | async function getAndroidPlugins(allPlugins: Plugin[]): Promise<Plugin[]> {
  function resolvePlugin (line 20) | async function resolvePlugin(plugin: Plugin): Promise<Plugin | null> {
  function editProjectSettingsAndroid (line 52) | async function editProjectSettingsAndroid(config: Config): Promise<void> {

FILE: cli/src/android/doctor.ts
  function doctorAndroid (line 12) | async function doctorAndroid(config: Config): Promise<void> {
  function checkAppSrcDirs (line 25) | async function checkAppSrcDirs(config: Config): Promise<string | null> {
  function checkAndroidManifestFile (line 50) | async function checkAndroidManifestFile(config: Config): Promise<string ...
  function checkAndroidManifestData (line 66) | async function checkAndroidManifestData(config: Config, xmlData: any): P...
  function checkPackage (line 140) | async function checkPackage(config: Config, mainActivityClassPath: strin...
  function checkBuildGradle (line 162) | async function checkBuildGradle(config: Config) {
  function checkGradlew (line 183) | async function checkGradlew(config: Config) {
  function checkAndroidInstalled (line 193) | async function checkAndroidInstalled() {

FILE: cli/src/android/open.ts
  function openAndroid (line 11) | async function openAndroid(config: Config): Promise<void> {

FILE: cli/src/android/run.ts
  function runAndroid (line 13) | async function runAndroid(

FILE: cli/src/android/update.ts
  function updateAndroid (line 31) | async function updateAndroid(config: Config): Promise<void> {
  function getGradlePackageName (line 58) | function getGradlePackageName(id: string): string {
  type PluginsJsonEntry (line 62) | interface PluginsJsonEntry {
  function writePluginsJson (line 67) | async function writePluginsJson(config: Config, plugins: Plugin[]): Prom...
  function findAndroidPluginClasses (line 74) | async function findAndroidPluginClasses(plugins: Plugin[]): Promise<Plug...
  function findAndroidPluginClassesInPlugin (line 84) | async function findAndroidPluginClassesInPlugin(plugin: Plugin): Promise...
  function installGradlePlugins (line 133) | async function installGradlePlugins(
  function handleCordovaPluginsGradle (line 224) | async function handleCordovaPluginsGradle(config: Config, cordovaPlugins...
  function kotlinNeededCheck (line 306) | async function kotlinNeededCheck(config: Config, cordovaPlugins: Plugin[...
  function copyPluginsNativeFiles (line 325) | async function copyPluginsNativeFiles(config: Config, cordovaPlugins: Pl...
  function removePluginsNativeFiles (line 361) | async function removePluginsNativeFiles(config: Config) {
  function getPluginsTask (line 369) | async function getPluginsTask(config: Config) {
  function getVariablesGradleFile (line 377) | async function getVariablesGradleFile(config: Config) {
  function replaceFrameworkVariables (line 386) | async function replaceFrameworkVariables(config: Config, prefsArray: any...

FILE: cli/src/colors.ts
  constant COLORS (line 11) | const COLORS: Colors = {

FILE: cli/src/common.ts
  type CheckFunction (line 14) | type CheckFunction = () => Promise<string | null>;
  function check (line 16) | async function check(checks: CheckFunction[]): Promise<void> {
  function checkWebDir (line 24) | async function checkWebDir(config: Config): Promise<string | null> {
  function checkPackage (line 58) | async function checkPackage(): Promise<string | null> {
  function checkCapacitorPlatform (line 73) | async function checkCapacitorPlatform(config: Config, platform: string):...
  function checkAppConfig (line 86) | async function checkAppConfig(config: Config): Promise<string | null> {
  function checkAppDir (line 113) | async function checkAppDir(config: Config, dir: string): Promise<string ...
  function checkAppId (line 120) | async function checkAppId(config: Config, id: string): Promise<string | ...
  function checkAppName (line 138) | async function checkAppName(config: Config, name: string): Promise<strin...
  function wait (line 146) | async function wait(time: number): Promise<void> {
  function runHooks (line 150) | async function runHooks(config: Config, platformName: string, dir: strin...
  function runPlatformHook (line 160) | async function runPlatformHook(
  type RunTaskOptions (line 208) | interface RunTaskOptions {
  function runTask (line 212) | async function runTask<T>(title: string, fn: () => Promise<T>): Promise<...
  function getCapacitorPackage (line 226) | async function getCapacitorPackage(config: Config, name: string): Promis...
  function requireCapacitorPackage (line 236) | async function requireCapacitorPackage(config: Config, name: string): Pr...
  function getCapacitorPackageVersion (line 248) | async function getCapacitorPackageVersion(config: Config, platform: stri...
  function getCoreVersion (line 252) | async function getCoreVersion(config: Config): Promise<string> {
  function getCLIVersion (line 256) | async function getCLIVersion(config: Config): Promise<string> {
  function getPlatformDirectory (line 260) | function getPlatformDirectory(config: Config, platform: string): string ...
  function getProjectPlatformDirectory (line 273) | async function getProjectPlatformDirectory(config: Config, platform: str...
  function selectPlatforms (line 283) | async function selectPlatforms(config: Config, selectedPlatformName?: st...
  function getKnownPlatforms (line 311) | async function getKnownPlatforms(): Promise<string[]> {
  function isValidPlatform (line 315) | async function isValidPlatform(platform: string): Promise<boolean> {
  function getKnownCommunityPlatforms (line 319) | async function getKnownCommunityPlatforms(): Promise<string[]> {
  function isValidCommunityPlatform (line 323) | async function isValidCommunityPlatform(platform: string): Promise<boole...
  function getKnownEnterprisePlatforms (line 327) | async function getKnownEnterprisePlatforms(): Promise<string[]> {
  function isValidEnterprisePlatform (line 331) | async function isValidEnterprisePlatform(platform: string): Promise<bool...
  function promptForPlatform (line 335) | async function promptForPlatform(
  type PlatformTarget (line 369) | interface PlatformTarget {
  function promptForPlatformTarget (line 378) | async function promptForPlatformTarget(
  function getPlatformTargetName (line 446) | function getPlatformTargetName(target: PlatformTarget): string {
  function getAddedPlatforms (line 452) | async function getAddedPlatforms(config: Config): Promise<string[]> {
  function checkPlatformVersions (line 468) | async function checkPlatformVersions(config: Config, platform: string): ...
  function resolvePlatform (line 483) | function resolvePlatform(config: Config, platform: string): string | null {
  function checkJDKMajorVersion (line 514) | async function checkJDKMajorVersion(): Promise<number> {
  function parseApkNameFromFlavor (line 539) | function parseApkNameFromFlavor(flavor: string): string {

FILE: cli/src/config.ts
  constant CONFIG_FILE_NAME_TS (line 30) | const CONFIG_FILE_NAME_TS = 'capacitor.config.ts';
  constant CONFIG_FILE_NAME_JS (line 31) | const CONFIG_FILE_NAME_JS = 'capacitor.config.js';
  constant CONFIG_FILE_NAME_JSON (line 32) | const CONFIG_FILE_NAME_JSON = 'capacitor.config.json';
  function loadConfig (line 34) | async function loadConfig(): Promise<Config> {
  function writeConfig (line 83) | async function writeConfig(extConfig: ExternalConfig, extConfigFilePath:...
  type ExtConfigPairs (line 96) | type ExtConfigPairs = Pick<AppConfig, 'extConfigType' | 'extConfigName' ...
  function loadExtConfigTS (line 98) | async function loadExtConfigTS(
  function loadExtConfigJS (line 134) | async function loadExtConfigJS(
  function loadExtConfig (line 151) | async function loadExtConfig(rootDir: string): Promise<ExtConfigPairs> {
  function loadCLIConfig (line 174) | async function loadCLIConfig(rootDir: string): Promise<CLIConfig> {
  function loadAndroidConfig (line 205) | async function loadAndroidConfig(
  function loadIOSConfig (line 265) | async function loadIOSConfig(rootDir: string, extConfig: ExternalConfig)...
  function loadWebConfig (line 311) | async function loadWebConfig(rootDir: string, webDir: string): Promise<W...
  function determineOS (line 322) | function determineOS(os: NodeJS.Platform): OS {
  function determineXcodeWorkspaceDirAbs (line 335) | async function determineXcodeWorkspaceDirAbs(nativeProjectDirAbs: string...
  function determineIOSWebDirAbs (line 339) | async function determineIOSWebDirAbs(
  function determineAndroidStudioPath (line 368) | async function determineAndroidStudioPath(os: OS): Promise<string> {
  function determineCocoapodPath (line 421) | async function determineCocoapodPath(): Promise<string> {
  function determinePackageManager (line 428) | async function determinePackageManager(
  function formatConfigTS (line 477) | function formatConfigTS(extConfig: ExternalConfig): string {

FILE: cli/src/cordova.ts
  function generateCordovaPluginsJSFile (line 32) | function generateCordovaPluginsJSFile(config: Config, plugins: Plugin[],...
  function copyPluginsJS (line 111) | async function copyPluginsJS(config: Config, cordovaPlugins: Plugin[], p...
  function copyCordovaJS (line 147) | async function copyCordovaJS(config: Config, platform: string): Promise<...
  function createEmptyCordovaJS (line 159) | async function createEmptyCordovaJS(config: Config, platform: string): P...
  function removePluginFiles (line 165) | async function removePluginFiles(config: Config, platform: string): Prom...
  function autoGenerateConfig (line 173) | async function autoGenerateConfig(config: Config, cordovaPlugins: Plugin...
  function getWebDir (line 236) | async function getWebDir(config: Config, platform: string): Promise<stri...
  function handleCordovaPluginsJS (line 246) | async function handleCordovaPluginsJS(
  function getCordovaPlugins (line 265) | async function getCordovaPlugins(config: Config, platform: string): Prom...
  function logCordovaManualSteps (line 276) | async function logCordovaManualSteps(cordovaPlugins: Plugin[], config: C...
  function logiOSPlist (line 292) | async function logiOSPlist(configElement: any, config: Config, plugin: P...
  function logPossibleMissingItem (line 448) | function logPossibleMissingItem(configElement: any, plugin: Plugin) {
  function buildConfigFileXml (line 459) | function buildConfigFileXml(configElement: any) {
  function getConfigFileTagContent (line 463) | function getConfigFileTagContent(str: string) {
  function removeOuterTags (line 467) | function removeOuterTags(str: string) {
  function checkPluginDependencies (line 473) | async function checkPluginDependencies(
  function getIncompatibleCordovaPlugins (line 532) | function getIncompatibleCordovaPlugins(platform: string): string[] {
  function needsStaticPod (line 557) | function needsStaticPod(plugin: Plugin): boolean {
  function useFrameworks (line 561) | function useFrameworks(plugin: Plugin): boolean {
  function getCordovaPreferences (line 569) | async function getCordovaPreferences(config: Config): Promise<any> {
  function writeCordovaAndroidManifest (line 622) | async function writeCordovaAndroidManifest(
  function getPathParts (line 891) | function getPathParts(path: string) {
  function contains (line 901) | function contains(entries: any[], obj: any, k: string) {

FILE: cli/src/declarations.ts
  type CapacitorConfig (line 1) | interface CapacitorConfig {
  type PluginsConfig (line 663) | interface PluginsConfig {

FILE: cli/src/definitions.ts
  type DeepReadonly (line 3) | type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> };
  type ExternalConfig (line 5) | type ExternalConfig = DeepReadonly<CapacitorConfig>;
  type Writable (line 6) | type Writable<T> = T extends object ? { -readonly [K in keyof T]: Writab...
  type OS (line 8) | const enum OS {
  type PackageManager (line 15) | type PackageManager = 'Cocoapods' | 'bundler' | 'SPM';
  type PackageJson (line 17) | interface PackageJson {
  type WindowsConfig (line 24) | interface WindowsConfig {
  type LinuxConfig (line 28) | interface LinuxConfig {
  type PlatformConfig (line 32) | interface PlatformConfig {
  type PlatformAssetsConfig (line 38) | interface PlatformAssetsConfig {
  type CLIConfig (line 45) | interface CLIConfig {
  type AppConfig (line 57) | interface AppConfig {
  type AndroidConfig (line 70) | interface AndroidConfig extends PlatformConfig {
  type XcodeExportMethod (line 107) | enum XcodeExportMethod {
  type IOSConfig (line 117) | interface IOSConfig extends PlatformConfig {
  type WebConfig (line 143) | type WebConfig = PlatformConfig;
  type Config (line 145) | interface Config {
  type FrameworkConfig (line 154) | interface FrameworkConfig {

FILE: cli/src/errors.ts
  method constructor (line 2) | constructor(
  class FatalException (line 10) | class FatalException extends BaseException<'FATAL'> {
    method constructor (line 11) | constructor(
  function fatal (line 19) | function fatal(message: string): never {
  function isFatal (line 23) | function isFatal(e: any): e is FatalException {

FILE: cli/src/framework-configs.ts
  constant FRAMEWORK_CONFIGS (line 3) | const FRAMEWORK_CONFIGS: FrameworkConfig[] = [
  function detectFramework (line 84) | function detectFramework(config: Config): FrameworkConfig | undefined {
  function hasDependency (line 93) | function hasDependency(config: Config, depName: string): boolean {
  function getDependencies (line 98) | function getDependencies(config: Config): string[] {

FILE: cli/src/index.ts
  function run (line 20) | async function run(): Promise<void> {
  function getPackageManager (line 30) | async function getPackageManager(config: Config, packageManager: any): P...
  function runProgram (line 40) | function runProgram(config: Config): void {

FILE: cli/src/ios/add.ts
  function addIOS (line 6) | async function addIOS(config: Config): Promise<void> {

FILE: cli/src/ios/build.ts
  function buildiOS (line 11) | async function buildiOS(config: Config, buildOptions: BuildCommandOption...

FILE: cli/src/ios/common.ts
  function checkIOSPackage (line 16) | async function checkIOSPackage(config: Config): Promise<string | null> {
  function execBundler (line 20) | function execBundler() {
  function getCommonChecks (line 29) | async function getCommonChecks(config: Config): Promise<CheckFunction[]> {
  function checkBundler (line 39) | async function checkBundler(config: Config): Promise<string | null> {
  function checkCocoaPods (line 56) | async function checkCocoaPods(config: Config): Promise<string | null> {
  function getIOSPlugins (line 66) | async function getIOSPlugins(allPlugins: Plugin[]): Promise<Plugin[]> {
  function resolvePlugin (line 71) | async function resolvePlugin(plugin: Plugin): Promise<Plugin | null> {
  function editProjectSettingsIOS (line 97) | async function editProjectSettingsIOS(config: Config): Promise<void> {
  function getMajoriOSVersion (line 118) | function getMajoriOSVersion(config: Config): string {

FILE: cli/src/ios/doctor.ts
  function doctorIOS (line 9) | async function doctorIOS(config: Config): Promise<void> {
  function checkXcode (line 29) | async function checkXcode() {

FILE: cli/src/ios/open.ts
  function openIOS (line 6) | async function openIOS(config: Config): Promise<void> {

FILE: cli/src/ios/run.ts
  function runIOS (line 13) | async function runIOS(

FILE: cli/src/ios/update.ts
  function updateIOS (line 32) | async function updateIOS(config: Config, deployment: boolean): Promise<v...
  function updatePluginFiles (line 43) | async function updatePluginFiles(config: Config, plugins: Plugin[], depl...
  function generateCordovaPackageFiles (line 70) | async function generateCordovaPackageFiles(cordovaPlugins: Plugin[], con...
  function generateCordovaPackageFile (line 76) | async function generateCordovaPackageFile(p: Plugin, config: Config) {
  function installCocoaPodsPlugins (line 115) | async function installCocoaPodsPlugins(config: Config, plugins: Plugin[]...
  function updatePodfile (line 121) | async function updatePodfile(config: Config, plugins: Plugin[], deployme...
  function getRelativeCapacitoriOSPath (line 157) | async function getRelativeCapacitoriOSPath(config: Config) {
  function generatePodFile (line 170) | async function generatePodFile(config: Config, plugins: Plugin[]): Promi...
  function getFrameworkName (line 224) | function getFrameworkName(framework: any) {
  function isFramework (line 234) | function isFramework(framework: any) {
  function generateCordovaPodspecs (line 238) | async function generateCordovaPodspecs(cordovaPlugins: Plugin[], config:...
  function generateCordovaPodspec (line 245) | async function generateCordovaPodspec(cordovaPlugins: Plugin[], config: ...
  function getLinkerFlags (line 380) | function getLinkerFlags(config: Config) {
  function copyPluginsNativeFiles (line 389) | async function copyPluginsNativeFiles(config: Config, cordovaPlugins: Pl...
  function removePluginsNativeFiles (line 455) | async function removePluginsNativeFiles(config: Config) {
  function filterResources (line 460) | function filterResources(plugin: Plugin) {
  function filterARCFiles (line 465) | function filterARCFiles(plugin: Plugin) {
  function removeNoSystem (line 473) | function removeNoSystem(library: string, sourceFrameworks: string[]) {
  function getPluginsTask (line 478) | async function getPluginsTask(config: Config) {
  function replaceFrameworkVariables (line 486) | async function replaceFrameworkVariables(config: Config, prefsArray: any...

FILE: cli/src/ipc.ts
  type TelemetryIPCMessage (line 12) | interface TelemetryIPCMessage {
  type IPCMessage (line 17) | type IPCMessage = TelemetryIPCMessage;
  function send (line 22) | async function send(msg: IPCMessage): Promise<void> {
  function receive (line 42) | async function receive(msg: IPCMessage): Promise<void> {

FILE: cli/src/log.ts
  function logPrompt (line 33) | async function logPrompt<T extends string>(msg: string, promptObject: Pr...
  function logSuccess (line 46) | function logSuccess(msg: string): void {

FILE: cli/src/plugin.ts
  type PluginType (line 11) | const enum PluginType {
  type PluginManifest (line 17) | interface PluginManifest {
  type Plugin (line 26) | interface Plugin {
  function getIncludedPluginPackages (line 45) | function getIncludedPluginPackages(config: Config, platform: string): re...
  function getPlugins (line 56) | async function getPlugins(config: Config, platform: string): Promise<Plu...
  function resolvePlugin (line 63) | async function resolvePlugin(config: Config, name: string): Promise<Plug...
  function getDependencies (line 101) | function getDependencies(config: Config): string[] {
  function fixName (line 108) | function fixName(name: string): string {
  function printPlugins (line 118) | function printPlugins(
  function getPluginPlatform (line 149) | function getPluginPlatform(p: Plugin, platform: string): any {
  function getPlatformElement (line 160) | function getPlatformElement(p: Plugin, platform: string, elementName: st...
  function getPluginType (line 171) | function getPluginType(p: Plugin, platform: string): PluginType {
  function getJSModules (line 185) | function getJSModules(p: Plugin, platform: string): any {
  function getAssets (line 192) | function getAssets(p: Plugin, platform: string): any {
  function getFilePath (line 196) | function getFilePath(config: Config, plugin: Plugin, path: string): stri...
  function getAllElements (line 216) | function getAllElements(p: Plugin, platform: string, elementName: string...

FILE: cli/src/sysconfig.ts
  constant SYSCONFIG_FILE (line 10) | const SYSCONFIG_FILE = 'sysconfig.json';
  constant SYSCONFIG_PATH (line 11) | const SYSCONFIG_PATH = resolve(ENV_PATHS.config, SYSCONFIG_FILE);
  type SystemConfig (line 13) | interface SystemConfig {
  function readConfig (line 34) | async function readConfig(): Promise<SystemConfig> {
  function writeConfig (line 54) | async function writeConfig(sysconfig: SystemConfig): Promise<void> {

FILE: cli/src/tasks/add.ts
  function addCommand (line 30) | async function addCommand(config: Config, selectedPlatformName: string):...
  function printNextSteps (line 104) | function printNextSteps(platformName: string) {
  function getAddChecks (line 113) | async function getAddChecks(config: Config, platformName: string): Promi...
  function doAdd (line 125) | async function doAdd(config: Config, platformName: string): Promise<void> {
  function editPlatforms (line 135) | async function editPlatforms(config: Config, platformName: string) {
  function webWarning (line 143) | function webWarning() {

FILE: cli/src/tasks/build.ts
  type BuildCommandOptions (line 8) | interface BuildCommandOptions {
  function buildCommand (line 25) | async function buildCommand(
  function build (line 69) | async function build(config: Config, platformName: string, buildOptions:...
  function createBuildablePlatformFilter (line 81) | function createBuildablePlatformFilter(config: Config): (platform: strin...

FILE: cli/src/tasks/config.ts
  function configCommand (line 6) | async function configCommand(config: Config, json: boolean): Promise<voi...
  function deepAwait (line 16) | async function deepAwait(obj: any): Promise<any> {

FILE: cli/src/tasks/copy.ts
  function copyCommand (line 25) | async function copyCommand(config: Config, selectedPlatformName: string,...
  function copy (line 47) | async function copy(config: Config, platformName: string, inline = false...
  function copyCapacitorConfig (line 154) | async function copyCapacitorConfig(config: Config, nativeAbsDir: string) {
  function copyWebDir (line 168) | async function copyWebDir(config: Config, nativeAbsDir: string, webAbsDi...
  function copyFederatedWebDirs (line 189) | async function copyFederatedWebDirs(config: Config, nativeAbsDir: string) {
  function isFederatedApp (line 221) | function isFederatedApp(config: any): config is FederatedApp {
  function copySecureLiveUpdatesKey (line 225) | async function copySecureLiveUpdatesKey(secureLiveUpdatesKeyFile: string...
  function copySSLCert (line 247) | async function copySSLCert(sslCertPaths: string[], rootDir: string, targ...
  type LiveUpdateConfig (line 272) | interface LiveUpdateConfig {
  type FederatedApp (line 276) | interface FederatedApp {
  type FederatedCapacitor (line 281) | interface FederatedCapacitor {
  type PluginsConfig (line 288) | interface PluginsConfig {

FILE: cli/src/tasks/create.ts
  function createCommand (line 4) | async function createCommand(): Promise<void> {

FILE: cli/src/tasks/doctor.ts
  function doctorCommand (line 13) | async function doctorCommand(config: Config, selectedPlatformName: strin...
  function doctorCore (line 26) | async function doctorCore(config: Config): Promise<void> {
  function printInstalledPackages (line 48) | async function printInstalledPackages(config: Config) {
  function printPackageVersion (line 58) | async function printPackageVersion(packageName: string, packagePath: str...
  function doctor (line 66) | async function doctor(config: Config, platformName: string): Promise<voi...

FILE: cli/src/tasks/init.ts
  function initCommand (line 16) | async function initCommand(
  function getName (line 72) | async function getName(config: Config, name: string) {
  function getAppId (line 89) | async function getAppId(config: Config, id: string) {
  function getWebDir (line 106) | async function getWebDir(config: Config, webDir?: string) {
  function runMergeConfig (line 128) | async function runMergeConfig(config: Config, extConfig: ExternalConfig,...
  function mergeConfig (line 147) | async function mergeConfig(config: Config, extConfig: ExternalConfig, ne...
  function printNextSteps (line 154) | function printNextSteps(newConfigName: string) {
  function promptToSignup (line 159) | async function promptToSignup(): Promise<boolean> {

FILE: cli/src/tasks/list.ts
  function listCommand (line 12) | async function listCommand(config: Config, selectedPlatformName: string)...
  function list (line 25) | async function list(config: Config, platform: string): Promise<void> {

FILE: cli/src/tasks/migrate-spm.ts
  function migrateToSPM (line 15) | async function migrateToSPM(config: Config): Promise<void> {

FILE: cli/src/tasks/migrate.ts
  function migrateCommand (line 53) | async function migrateCommand(config: Config, noprompt: boolean, package...
  function checkCapacitorMajorVersion (line 321) | async function checkCapacitorMajorVersion(config: Config): Promise<numbe...
  function installLatestLibs (line 328) | async function installLatestLibs(dependencyManager: string, runInstall: ...
  function writeBreakingChanges (line 368) | async function writeBreakingChanges() {
  function getAndroidVariablesAndClasspaths (line 396) | async function getAndroidVariablesAndClasspaths(config: Config) {
  function readFile (line 434) | function readFile(filename: string): string | undefined {
  function getGradleWrapperVersion (line 446) | function getGradleWrapperVersion(filename: string): string {
  function updateGradleWrapperFiles (line 456) | async function updateGradleWrapperFiles(platformDir: string) {
  function updateBuildGradle (line 466) | async function updateBuildGradle(
  function replaceVersion (line 504) | function replaceVersion(text: string, regex: RegExp, newVersion: string)...
  function updateAppBuildGradle (line 514) | async function updateAppBuildGradle(filename: string) {
  function updateFile (line 532) | async function updateFile(
  function setAllStringIn (line 582) | function setAllStringIn(data: string, start: string, end: string, replac...
  function updateAndroidManifest (line 599) | async function updateAndroidManifest(filename: string) {

FILE: cli/src/tasks/new-plugin.ts
  function newPluginCommand (line 4) | async function newPluginCommand(): Promise<void> {

FILE: cli/src/tasks/open.ts
  function openCommand (line 16) | async function openCommand(config: Config, selectedPlatformName: string)...
  function createOpenablePlatformFilter (line 48) | function createOpenablePlatformFilter(config: Config): (platform: string...
  function open (line 52) | async function open(config: Config, platformName: string): Promise<void> {

FILE: cli/src/tasks/run.ts
  type RunCommandOptions (line 23) | interface RunCommandOptions {
  function runCommand (line 40) | async function runCommand(
  function run (line 128) | async function run(config: Config, platformName: string, options: RunCom...
  function createRunnablePlatformFilter (line 140) | function createRunnablePlatformFilter(config: Config): (platform: string...
  function sleepForever (line 144) | async function sleepForever(): Promise<never> {

FILE: cli/src/tasks/serve.ts
  function serveCommand (line 4) | async function serveCommand(): Promise<void> {

FILE: cli/src/tasks/sourcemaps.ts
  function walkDirectory (line 7) | function walkDirectory(dirPath: string) {
  function inlineSourceMaps (line 29) | async function inlineSourceMaps(config: Config, platformName: string): P...

FILE: cli/src/tasks/sync.ts
  function syncCommand (line 13) | async function syncCommand(
  function sync (line 45) | async function sync(config: Config, platformName: string, deployment: bo...

FILE: cli/src/tasks/telemetry.ts
  constant THANK_YOU (line 6) | const THANK_YOU =
  function telemetryCommand (line 10) | async function telemetryCommand(onOrOff?: string): Promise<void> {
  function interpretEnabled (line 32) | function interpretEnabled(onOrOff?: string): boolean | undefined {

FILE: cli/src/tasks/update.ts
  function updateCommand (line 21) | async function updateCommand(config: Config, selectedPlatformName: strin...
  function addUpdateChecks (line 48) | async function addUpdateChecks(config: Config, platforms: string[]): Pro...
  function updateChecks (line 70) | function updateChecks(config: Config, platforms: string[]): CheckFunctio...
  function update (line 86) | async function update(config: Config, platformName: string, deployment: ...

FILE: cli/src/telemetry.ts
  constant THANK_YOU (line 15) | const THANK_YOU =
  type CommandMetricData (line 20) | interface CommandMetricData {
  type Metric (line 31) | interface Metric<N extends string, D> {
  type CommanderAction (line 39) | type CommanderAction = (...args: any[]) => void | Promise<void>;
  function telemetryAction (line 41) | function telemetryAction(config: Config, action: CommanderAction): Comma...
  function sendMetric (line 109) | async function sendMetric<D>(
  function getAppIdentifier (line 132) | async function getAppIdentifier(config: Config): Promise<string | null> {
  function getFullCommandName (line 156) | function getFullCommandName(cmd: Command): string {

FILE: cli/src/util/cli.ts
  constant ENV_PATHS (line 6) | const ENV_PATHS = envPaths('capacitor', { suffix: '' });
  type CommanderAction (line 8) | type CommanderAction = (...args: any[]) => void | Promise<void>;
  function wrapAction (line 10) | function wrapAction(action: CommanderAction): CommanderAction {

FILE: cli/src/util/fs.ts
  type ReaddirPOptions (line 24) | interface ReaddirPOptions {
  type WalkerItem (line 33) | interface WalkerItem {
  function readdirp (line 38) | async function readdirp(dir: string, { filter }: ReaddirPOptions): Promi...

FILE: cli/src/util/iosplugin.ts
  function getPluginFiles (line 12) | async function getPluginFiles(plugins: Plugin[]): Promise<string[]> {
  function findPluginClasses (line 36) | async function findPluginClasses(files: string[]): Promise<string[]> {
  function writePluginJSON (line 58) | async function writePluginJSON(config: Config, classList: string[]): Pro...
  function generateIOSPackageJSON (line 65) | async function generateIOSPackageJSON(config: Config, plugins: Plugin[])...

FILE: cli/src/util/js.ts
  function formatJSObject (line 3) | function formatJSObject(o: { [key: string]: any }): string {

FILE: cli/src/util/livereload.ts
  class CapLiveReload (line 8) | class CapLiveReload {
    method constructor (line 17) | constructor() {
    method getIpAddress (line 21) | getIpAddress(name?: string, family?: any) {
    method editExtConfigForLiveReload (line 116) | async editExtConfigForLiveReload(
    method editCapConfigForLiveReload (line 144) | async editCapConfigForLiveReload(
    method revertCapConfigForLiveReload (line 172) | async revertCapConfigForLiveReload(): Promise<void> {

FILE: cli/src/util/monorepotools.ts
  function findMonorepoRoot (line 10) | function findMonorepoRoot(currentPath: string): string {
  function findNXMonorepoRoot (line 32) | function findNXMonorepoRoot(currentPath: string): string {
  function findPackagePath (line 52) | function findPackagePath(
  function findPackageRelativePathInMonorepo (line 75) | function findPackageRelativePathInMonorepo(packageName: string, currentP...
  function isMonorepo (line 89) | function isMonorepo(currentPath: string): boolean {
  function isNXMonorepo (line 103) | function isNXMonorepo(currentPath: string): boolean {

FILE: cli/src/util/native-run.ts
  function runNativeRun (line 12) | async function runNativeRun(args: readonly string[], options: RunCommand...
  function getPlatformTargets (line 26) | async function getPlatformTargets(platformName: string): Promise<Platfor...

FILE: cli/src/util/node.ts
  type NodeModuleWithCompile (line 6) | interface NodeModuleWithCompile extends NodeJS.Module {
  function resolveNode (line 50) | function resolveNode(root: string, ...pathSegments: string[]): string | ...

FILE: cli/src/util/promise.ts
  function allSerial (line 1) | function allSerial<T>(funcs: (() => Promise<T>)[]): Promise<T[]> {
  type PromiseExecutor (line 8) | type PromiseExecutor<T> = (resolve: (value: T | PromiseLike<T>) => void,...
  type PromiseOnFulfilled (line 10) | type PromiseOnFulfilled<T, TResult> = ((value: T) => TResult | PromiseLi...
  type PromiseOnRejected (line 12) | type PromiseOnRejected<TResult> = ((reason: any) => TResult | PromiseLik...
  class LazyPromise (line 14) | class LazyPromise<T> extends Promise<T> {
    method constructor (line 18) | constructor(executor: PromiseExecutor<T>) {
    method then (line 26) | then<TResult1 = T, TResult2 = never>(
    method catch (line 34) | catch<TResult = never>(onrejected?: PromiseOnRejected<TResult>): Promi...
  function lazy (line 40) | function lazy<T>(fn: () => T | Promise<T>): LazyPromise<T> {

FILE: cli/src/util/spm.ts
  type SwiftPlugin (line 17) | interface SwiftPlugin {
  function checkPackageManager (line 27) | async function checkPackageManager(config: Config): Promise<'Cocoapods' ...
  function findPackageSwiftFile (line 36) | async function findPackageSwiftFile(config: Config): Promise<string> {
  function generatePackageFile (line 41) | async function generatePackageFile(config: Config, plugins: Plugin[]): P...
  function checkPluginsForPackageSwift (line 53) | async function checkPluginsForPackageSwift(config: Config, plugins: Plug...
  function extractSPMPackageDirectory (line 68) | async function extractSPMPackageDirectory(config: Config): Promise<void> {
  function removeCocoapodsFiles (line 87) | async function removeCocoapodsFiles(config: Config): Promise<void> {
  function generatePackageText (line 98) | async function generatePackageText(config: Config, plugins: Plugin[]): P...
  function runCocoapodsDeintegrate (line 149) | async function runCocoapodsDeintegrate(config: Config): Promise<void> {
  function addInfoPlistDebugIfNeeded (line 168) | async function addInfoPlistDebugIfNeeded(config: Config): Promise<void> {
  function pluginsWithPackageSwift (line 193) | async function pluginsWithPackageSwift(plugins: Plugin[]): Promise<Plugi...

FILE: cli/src/util/subprocess.ts
  type RunCommandOptions (line 3) | interface RunCommandOptions {
  function runCommand (line 7) | async function runCommand(
  function getCommandOutput (line 26) | async function getCommandOutput(
  function isInstalled (line 38) | async function isInstalled(command: string): Promise<boolean> {

FILE: cli/src/util/template.ts
  function extractTemplate (line 4) | async function extractTemplate(src: string, dir: string): Promise<void> {

FILE: cli/src/util/uuid.ts
  function uuidv4 (line 1) | function uuidv4(): string {

FILE: cli/src/util/xml.ts
  function readXML (line 4) | async function readXML(path: string): Promise<any> {
  function parseXML (line 17) | function parseXML(xmlStr: string, options?: xml2js.OptionsV2): any {
  function writeXML (line 28) | async function writeXML(object: any): Promise<any> {
  function buildXmlElement (line 41) | function buildXmlElement(configElement: any, rootName: string): string {

FILE: cli/test/framework-detection.spec.ts
  function addDep (line 158) | function addDep(config: Config, depName: string) {

FILE: cli/test/util.ts
  constant CORDOVA_PLUGIN_ID (line 13) | const CORDOVA_PLUGIN_ID = 'cool-cordova-plugin';
  constant APP_ID (line 14) | const APP_ID = 'com.getcapacitor.cli.test';
  constant APP_NAME (line 15) | const APP_NAME = 'Capacitor CLI Test';
  function makeConfig (line 17) | async function makeConfig(appRoot: string): Promise<Config> {
  function run (line 24) | async function run(appRoot: string, capCommand: string): Promise<string> {
  function mktmp (line 36) | function mktmp(): Promise<{
  constant APP_INDEX (line 54) | const APP_INDEX = `
  function installPlatform (line 67) | async function installPlatform(appDir: string, platform: string): Promis...
  function makeAppDir (line 72) | async function makeAppDir(monoRepoLike = false): Promise<void> {
  constant CODOVA_PLUGIN_JS (line 118) | const CODOVA_PLUGIN_JS = `
  constant CORDOVA_PLUGIN_XML (line 128) | const CORDOVA_PLUGIN_XML = `
  constant CORDOVA_PLUGIN_PACKAGE (line 157) | const CORDOVA_PLUGIN_PACKAGE = `
  function makeCordovaPlugin (line 174) | async function makeCordovaPlugin(cordovaPluginPath: string) {
  class MappedFS (line 187) | class MappedFS {
    method constructor (line 189) | constructor(rootDir: string) {
    method read (line 192) | async read(path: string): Promise<string> {
    method exists (line 195) | async exists(path: string): Promise<boolean> {

FILE: core/cordova.js
  function build (line 38) | function build(module) {
  function extractParamName (line 330) | function extractParamName(callee, argIndex) {
  function checkArgs (line 334) | function checkArgs(spec, functionName, args, opt_callee) {
  function getValue (line 374) | function getValue(value, defaultValue) {
  function uint8ToBase64 (line 425) | function uint8ToBase64(rawData) {
  function each (line 453) | function each(objects, func, context) {
  function clobber (line 461) | function clobber(obj, key, value) {
  function assignOrWrapInDeprecateGetter (line 477) | function assignOrWrapInDeprecateGetter(obj, key, value, message) {
  function include (line 490) | function include(parent, objects, clobber, merge) {
  function recursiveMerge (line 534) | function recursiveMerge(target, src) {
  function checkSubscriptionArgument (line 683) | function checkSubscriptionArgument(argument) {
  function massageArgsJsToNative (line 839) | function massageArgsJsToNative(args) {
  function massageMessageNativeToJs (line 866) | function massageMessageNativeToJs(message) {
  function convertMessageToArgsNativeToJs (line 883) | function convertMessageToArgsNativeToJs(message) {
  function proxyChanged (line 953) | function proxyChanged() {
  function handleBridgeChange (line 962) | function handleBridgeChange() {
  function pokeNative (line 983) | function pokeNative() {
  function cordovaExec (line 1049) | function cordovaExec() {
  function execProxy (line 1057) | function execProxy() {
  function logUnfiredChannels (line 1114) | function logUnfiredChannels(arr) {
  function replaceNavigator (line 1132) | function replaceNavigator(origNavigator) {
  function addEntry (line 1231) | function addEntry(strategy, moduleName, symbolPath, opt_deprecationMessa...
  function prepareNamespace (line 1258) | function prepareNamespace(symbolPath, context) {
  function onScriptLoadingComplete (line 1334) | function onScriptLoadingComplete(moduleList, finishPluginLoading) {
  function UUIDcreatePart (line 1498) | function UUIDcreatePart(length) {

FILE: core/native-bridge.ts
  constant CAPACITOR_HTTP_INTERCEPTOR (line 125) | const CAPACITOR_HTTP_INTERCEPTOR = '/_capacitor_http_interceptor_';
  constant CAPACITOR_HTTP_INTERCEPTOR_URL_PARAM (line 126) | const CAPACITOR_HTTP_INTERCEPTOR_URL_PARAM = 'u';
  type PatchedXMLHttpRequestConstructor (line 616) | interface PatchedXMLHttpRequestConstructor extends XMLHttpRequest {
  function initNativeBridge (line 921) | function initNativeBridge(win: WindowCapacitor) {

FILE: core/src/core-plugins.ts
  type WebViewPlugin (line 6) | interface WebViewPlugin extends Plugin {
  type WebViewPath (line 13) | interface WebViewPath {
  type CapacitorCookiesPlugin (line 36) | interface CapacitorCookiesPlugin {
  type HttpCookie (line 56) | interface HttpCookie {
  type HttpCookieMap (line 71) | interface HttpCookieMap {
  type HttpCookieExtras (line 75) | interface HttpCookieExtras {
  type GetCookieOptions (line 86) | type GetCookieOptions = Omit<HttpCookie, 'key' | 'value'>;
  type SetCookieOptions (line 87) | type SetCookieOptions = HttpCookie & HttpCookieExtras;
  type DeleteCookieOptions (line 88) | type DeleteCookieOptions = Omit<HttpCookie, 'value'>;
  type ClearCookieOptions (line 89) | type ClearCookieOptions = Omit<HttpCookie, 'key' | 'value'>;
  class CapacitorCookiesPluginWeb (line 91) | class CapacitorCookiesPluginWeb extends WebPlugin implements CapacitorCo...
    method getCookies (line 92) | async getCookies(): Promise<HttpCookieMap> {
    method setCookie (line 106) | async setCookie(options: SetCookieOptions): Promise<void> {
    method deleteCookie (line 124) | async deleteCookie(options: DeleteCookieOptions): Promise<void> {
    method clearCookies (line 132) | async clearCookies(): Promise<void> {
    method clearAllCookies (line 143) | async clearAllCookies(): Promise<void> {
  type CapacitorHttpPlugin (line 159) | interface CapacitorHttpPlugin {
  type HttpResponseType (line 189) | type HttpResponseType = 'arraybuffer' | 'blob' | 'json' | 'text' | 'docu...
  type HttpOptions (line 191) | interface HttpOptions {
  type HttpParams (line 251) | interface HttpParams {
  type HttpHeaders (line 258) | interface HttpHeaders {
  type HttpResponse (line 265) | interface HttpResponse {
  class CapacitorHttpPluginWeb (line 399) | class CapacitorHttpPluginWeb extends WebPlugin implements CapacitorHttpP...
    method request (line 404) | async request(options: HttpOptions): Promise<HttpResponse> {
    method get (line 455) | async get(options: HttpOptions): Promise<HttpResponse> {
    method post (line 463) | async post(options: HttpOptions): Promise<HttpResponse> {
    method put (line 471) | async put(options: HttpOptions): Promise<HttpResponse> {
    method patch (line 479) | async patch(options: HttpOptions): Promise<HttpResponse> {
    method delete (line 487) | async delete(options: HttpOptions): Promise<HttpResponse> {
  type SystemBarsStyle (line 503) | enum SystemBarsStyle {
  type SystemBarsAnimation (line 531) | type SystemBarsAnimation = 'FADE' | 'NONE';
  type SystemBarType (line 536) | enum SystemBarType {
  type SystemBarsStyleOptions (line 551) | interface SystemBarsStyleOptions {
  type SystemBarsVisibilityOptions (line 572) | interface SystemBarsVisibilityOptions {
  type SystemBarsAnimationOptions (line 594) | interface SystemBarsAnimationOptions {
  type SystemBarsPlugin (line 607) | interface SystemBarsPlugin {
  class SystemBarsPluginWeb (line 639) | class SystemBarsPluginWeb extends WebPlugin implements SystemBarsPlugin {
    method setStyle (line 640) | async setStyle(): Promise<void> {
    method setAnimation (line 644) | async setAnimation(): Promise<void> {
    method show (line 648) | async show(): Promise<void> {
    method hide (line 652) | async hide(): Promise<void> {

FILE: core/src/definitions-internal.ts
  type PluginHeaderMethod (line 3) | interface PluginHeaderMethod {
  type PluginHeader (line 8) | interface PluginHeader {
  type CapacitorInstance (line 18) | interface CapacitorInstance extends CapacitorGlobal {
  type MessageCallData (line 94) | interface MessageCallData {
  type ErrorCallData (line 102) | interface ErrorCallData {
  type CallData (line 113) | type CallData = MessageCallData | ErrorCallData;
  type PluginResult (line 118) | interface PluginResult {
  type StoredCallback (line 132) | interface StoredCallback {
  type CapacitorCustomPlatformInstance (line 138) | interface CapacitorCustomPlatformInstance {
  type WindowCapacitor (line 143) | interface WindowCapacitor {
  type CapFormDataEntry (line 186) | interface CapFormDataEntry {

FILE: core/src/definitions.ts
  type CapacitorGlobal (line 3) | interface CapacitorGlobal {
  type RegisterPlugin (line 61) | type RegisterPlugin = <T>(pluginName: string, implementations?: Readonly...
  type PluginImplementations (line 70) | type PluginImplementations = {
  type Plugin (line 74) | interface Plugin {
  type PermissionState (line 79) | type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | ...
  type PluginListenerHandle (line 81) | interface PluginListenerHandle {
  type PluginResultData (line 85) | interface PluginResultData {
  type PluginResultError (line 89) | interface PluginResultError {
  type PluginCallback (line 93) | type PluginCallback = (data: PluginResultData, error?: PluginResultError...

FILE: core/src/runtime.ts
  type RegisteredPlugin (line 10) | interface RegisteredPlugin {
  method get (line 165) | get(_, prop) {

FILE: core/src/tests/build-treeshaking.js
  function validateBuildTreeshaking (line 5) | async function validateBuildTreeshaking() {

FILE: core/src/tests/events.spec.ts
  method createEvent (line 12) | createEvent() {
  method dispatchEvent (line 19) | dispatchEvent() {
  method fireDocumentEvent (line 63) | fireDocumentEvent() {
  method dispatchEvent (line 94) | dispatchEvent() {

FILE: core/src/tests/plugin.spec.ts
  method mph (line 115) | mph() {
  method mph (line 139) | mph() {
  method addListener (line 263) | async addListener(_eventName: string, fn: any) {
  method removeAllListeners (line 319) | async removeAllListeners() {
  type AwesomePlugin (line 356) | interface AwesomePlugin extends Plugin {

FILE: core/src/tests/web-plugin.spec.ts
  class MockPlugin (line 13) | class MockPlugin extends WebPlugin {
    method trigger (line 14) | trigger() {
    method triggerRetained (line 20) | triggerRetained() {
    method getListeners (line 38) | getListeners() {
    method getWindowListeners (line 42) | getWindowListeners() {
    method registerFakeWindowListener (line 46) | registerFakeWindowListener() {

FILE: core/src/util.ts
  type ExceptionCode (line 3) | enum ExceptionCode {
  type ExceptionData (line 22) | interface ExceptionData {
  class CapacitorException (line 26) | class CapacitorException extends Error {
    method constructor (line 27) | constructor(

FILE: core/src/web-plugin.ts
  class WebPlugin (line 9) | class WebPlugin implements Plugin {
    method addListener (line 14) | addListener(eventName: string, listenerFunc: ListenerCallback): Promis...
    method removeAllListeners (line 43) | async removeAllListeners(): Promise<void> {
    method notifyListeners (line 51) | protected notifyListeners(eventName: string, data: any, retainUntilCon...
    method hasListeners (line 71) | protected hasListeners(eventName: string): boolean {
    method registerWindowListener (line 75) | protected registerWindowListener(windowEventName: string, pluginEventN...
    method unimplemented (line 86) | protected unimplemented(msg = 'not implemented'): CapacitorException {
    method unavailable (line 90) | protected unavailable(msg = 'not available'): CapacitorException {
    method removeListener (line 94) | private async removeListener(eventName: string, listenerFunc: Listener...
    method addWindowListener (line 110) | private addWindowListener(handle: WindowListenerHandle): void {
    method removeWindowListener (line 115) | private removeWindowListener(handle: WindowListenerHandle): void {
    method sendRetainedArgumentsForEvent (line 124) | private sendRetainedArgumentsForEvent(eventName: string): void {
  type ListenerCallback (line 138) | type ListenerCallback = (err: any, ...args: any[]) => void;
  type WindowListenerHandle (line 140) | interface WindowListenerHandle {

FILE: ios/Capacitor/Capacitor/CAPBridgedPlugin.h
  function protocol (line 16) | protocol CAPBridgedPlugin <NSObject>

FILE: ios/Capacitor/Capacitor/CAPPluginMethod.h
  type CAPPluginMethodArgumentNullability (line 4) | typedef enum {
  type NSString (line 9) | typedef NSString CAPPluginReturnType;

FILE: ios/Capacitor/Capacitor/assets/native-bridge.js
  class CapacitorException (line 26) | class CapacitorException extends Error {
    method constructor (line 27) | constructor(message, code, data) {
  function initNativeBridge (line 826) | function initNativeBridge(win) {

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVCommandDelegate.h
  type NSURL (line 25) | typedef NSURL* (^ UrlTransformerBlock)(NSURL*);

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVCommandDelegateImpl.h
  function interface (line 28) | interface CDVCommandDelegateImpl : NSObject <CDVCommandDelegate>{

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVConfigParser.h
  function interface (line 21) | interface CDVConfigParser : NSObject <NSXMLParserDelegate>

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVInvokedUrlCommand.h
  function interface (line 22) | interface CDVInvokedUrlCommand : NSObject {

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVPlugin.h
  function interface (line 48) | interface CDVPlugin : NSObject {}

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVPluginResult.h
  function interface (line 52) | interface CDVPluginResult : NSObject {}

FILE: ios/CapacitorCordova/CapacitorCordova/Classes/Public/CDVURLProtocol.h
  function interface (line 25) | interface CDVURLProtocol : NSURLProtocol {}

FILE: ios/scripts/pods_helpers.rb
  function assertDeploymentTarget (line 1) | def assertDeploymentTarget(installer)
Condensed preview — 458 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,326K chars).
[
  {
    "path": ".eslintignore",
    "chars": 312,
    "preview": "build\ncli/assets\ndist\ntypes\nandroid/capacitor/src/main/assets/native-bridge.js\nios/Capacitor/Capacitor/assets/native-bri"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.yml",
    "chars": 2227,
    "preview": "name: Bug Report\ndescription: File a bug report\ntitle: \"[Bug]: \"\nlabels: [\"triage\"]\ntype: \"bug\"\nbody:\n  - type: markdown"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 483,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: ⚙️ Request a new plugin\n    url: https://github.com/capacitor-commu"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.yml",
    "chars": 1433,
    "preview": "name: Feature Request\ndescription: Request a new feature\ntitle: \"[Feature]: \"\nlabels: [\"triage\"]\nbody:\n  - type: markdow"
  },
  {
    "path": ".github/bot.yml",
    "chars": 317,
    "preview": "tasks:\n  - name: add-label\n    on:\n      issues:\n        types: [labeled]\n    condition: 'payload.label.name == \"needs r"
  },
  {
    "path": ".github/ionic-issue-bot.yml",
    "chars": 1595,
    "preview": "triage:\n  label: triage\n  dryRun: false\n\nlockClosed:\n  days: 30\n  maxIssuesPerRun: 100\n  message: >\n    Thanks for the i"
  },
  {
    "path": ".github/workflows/capacitor-bot.yml",
    "chars": 609,
    "preview": "name: Capacitor Bot\n\non:\n  push:\n    branches: [main]\n  issues:\n    types: [opened, edited, labeled]\n  pull_request:\n   "
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 3723,
    "preview": "name: CI\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n    types:\n      - 'synchronize'\n      - 'opened'\n    b"
  },
  {
    "path": ".github/workflows/needs-reply.yml",
    "chars": 574,
    "preview": "name: Close old issues that need reply\n\non:\n  schedule:\n    - cron: \"0 0 * * *\"\n\njobs:\n  build:\n    runs-on: ubuntu-late"
  },
  {
    "path": ".github/workflows/publish-android.yml",
    "chars": 1685,
    "preview": "name: Publish Native Android Library\n\non: \n  workflow_call:\n    secrets:\n      ANDROID_OSSRH_USERNAME:\n        required:"
  },
  {
    "path": ".github/workflows/publish-ios.yml",
    "chars": 788,
    "preview": "name: Publish Native iOS Library\n\non:\n  workflow_call:\n    secrets:\n      COCOAPODS_TRUNK_TOKEN:\n        required: true\n"
  },
  {
    "path": ".github/workflows/publish-latest.yml",
    "chars": 1091,
    "preview": "name: Publish Latest\n\non: workflow_dispatch\n\npermissions:\n  contents: write\n  id-token: write\n  packages: write\n\njobs:\n "
  },
  {
    "path": ".github/workflows/publish-npm-alpha.yml",
    "chars": 920,
    "preview": "name: Publish NPM Alpha\n\non: workflow_dispatch\n\npermissions:\n  contents: write\n  id-token: write\n\njobs:\n  deploy-npm-alp"
  },
  {
    "path": ".github/workflows/publish-npm-beta.yml",
    "chars": 909,
    "preview": "name: Publish NPM Beta\n\non: workflow_dispatch\n\npermissions:\n  contents: write\n  id-token: write\n\njobs:\n  deploy-npm-beta"
  },
  {
    "path": ".github/workflows/publish-npm-dev.yml",
    "chars": 1219,
    "preview": "name: Publish NPM Dev\n\non: workflow_dispatch\n\npermissions:\n  contents: write\n  id-token: write\n\njobs:\n  deploy-npm-dev:\n"
  },
  {
    "path": ".github/workflows/publish-npm-latest-from-pre.yml",
    "chars": 1104,
    "preview": "name: Publish NPM Latest From Prerelease\n\non:\n  workflow_call:\n    secrets:\n      CAP_GH_RELEASE_TOKEN:\n        required"
  },
  {
    "path": ".github/workflows/publish-npm-latest.yml",
    "chars": 1079,
    "preview": "name: Publish NPM Latest\n\non:\n  workflow_call:\n    secrets:\n      CAP_GH_RELEASE_TOKEN:\n        required: true\n      NPM"
  },
  {
    "path": ".github/workflows/publish-npm-nightly.yml",
    "chars": 977,
    "preview": "name: Publish NPM Nightly\n\non:\n schedule:\n   - cron: '0 15 * * 1-5'\n\npermissions:\n  contents: write\n  id-token: write\n\nj"
  },
  {
    "path": ".github/workflows/publish-npm-rc.yml",
    "chars": 903,
    "preview": "name: Publish NPM RC\n\non: workflow_dispatch\n\npermissions:\n  contents: write\n  id-token: write\n\njobs:\n  deploy-npm-rc:\n  "
  },
  {
    "path": ".github/workflows/publish-spm-release.yaml",
    "chars": 546,
    "preview": "name: Publish SPM Release\n\non:\n  push:\n    tags:\n      - \"*\"\n\njobs:\n  publish-spm:\n    runs-on: ubuntu-latest\n    steps:"
  },
  {
    "path": ".gitignore",
    "chars": 394,
    "preview": ".idea/\ndist/\ntypes/\n.sourcemaps\nxcuserdata/\nnode_modules/\nPods/\n*.map\n.DS_Store\nPodfile.lock\nBuild/*\nbuild/\nIndex/\n.*.sw"
  },
  {
    "path": ".npmrc",
    "chars": 18,
    "preview": "package-lock=false"
  },
  {
    "path": ".prettierignore",
    "chars": 317,
    "preview": "build\ncore/types\ncli/assets\ndist\nandroid/capacitor/src/main/assets/native-bridge.js\nios/Capacitor/Capacitor/assets/nativ"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 1101,
    "preview": "{\n  \"version\": \"0.2.0\",\n  \"configurations\": [\n    {\n      \"type\": \"node\",\n      \"request\": \"launch\",\n      \"name\": \"Debu"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 205932,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 1149,
    "preview": "# Contributor Code of Conduct\n\nAs contributors and maintainers of the Capacitor project, we pledge to respect everyone w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 4899,
    "preview": "# Contributing to Capacitor\n\nThis guide provides instructions for contributing to Capacitor through [issues & discussion"
  },
  {
    "path": "LICENSE",
    "chars": 1075,
    "preview": "MIT License\n\nCopyright (c) 2017-present Drifty Co.\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "README.md",
    "chars": 3717,
    "preview": "<br />\n<div align=\"center\">\n  <img src=\"https://user-images.githubusercontent.com/236501/105104854-e5e42e80-5a67-11eb-8c"
  },
  {
    "path": "android/.gitignore",
    "chars": 118,
    "preview": "*.iml\n.gradle\n/local.properties\n/.idea/workspace.xml\n/.idea/libraries\n.DS_Store\n/build\n/captures\n.externalNativeBuild\n"
  },
  {
    "path": "android/CHANGELOG.md",
    "chars": 63310,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "android/LICENSE",
    "chars": 1075,
    "preview": "MIT License\n\nCopyright (c) 2017-present Drifty Co.\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "android/capacitor/.gitignore",
    "chars": 7,
    "preview": "/build\n"
  },
  {
    "path": "android/capacitor/build.gradle",
    "chars": 4039,
    "preview": "ext {\n    androidxActivityVersion = project.hasProperty('androidxActivityVersion') ? rootProject.ext.androidxActivityVer"
  },
  {
    "path": "android/capacitor/gradle.properties",
    "chars": 987,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "android/capacitor/lint-baseline.xml",
    "chars": 6278,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<issues format=\"5\" by=\"lint 4.1.1\" client=\"gradle\" variant=\"all\" version=\"4.1.1\">"
  },
  {
    "path": "android/capacitor/lint.xml",
    "chars": 360,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<lint>\n    <issue id=\"GradleDependency\" severity=\"ignore\" />\n    <issue id=\"Andro"
  },
  {
    "path": "android/capacitor/proguard-rules.pro",
    "chars": 1014,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "android/capacitor/settings.gradle",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "android/capacitor/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.java",
    "chars": 785,
    "preview": "package com.getcapacitor.android;\n\nimport static org.junit.Assert.*;\n\nimport android.content.Context;\nimport androidx.te"
  },
  {
    "path": "android/capacitor/src/main/AndroidManifest.xml",
    "chars": 120,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n</manifest>"
  },
  {
    "path": "android/capacitor/src/main/assets/native-bridge.js",
    "chars": 53467,
    "preview": "\n/*! Capacitor: https://capacitorjs.com/ - MIT License */\n/* Generated File. Do not edit. */\n\nvar nativeBridge = (functi"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/AndroidProtocolHandler.java",
    "chars": 3723,
    "preview": "// Copyright 2012 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style licen"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/App.java",
    "chars": 1525,
    "preview": "package com.getcapacitor;\n\nimport androidx.annotation.Nullable;\n\npublic class App {\n\n    /**\n     * Interface for callba"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/AppUUID.java",
    "chars": 2346,
    "preview": "package com.getcapacitor;\n\nimport android.content.Context;\nimport android.content.SharedPreferences;\nimport androidx.app"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/Bridge.java",
    "chars": 59489,
    "preview": "package com.getcapacitor;\n\nimport android.annotation.SuppressLint;\nimport android.app.Activity;\nimport android.content.A"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/BridgeActivity.java",
    "chars": 6664,
    "preview": "package com.getcapacitor;\n\nimport android.content.Intent;\nimport android.content.res.Configuration;\nimport android.os.Bu"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/BridgeWebChromeClient.java",
    "chars": 17689,
    "preview": "package com.getcapacitor;\n\nimport android.Manifest;\nimport android.annotation.SuppressLint;\nimport android.app.Activity;"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/BridgeWebViewClient.java",
    "chars": 3896,
    "preview": "package com.getcapacitor;\n\nimport android.graphics.Bitmap;\nimport android.net.Uri;\nimport android.webkit.RenderProcessGo"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/CapConfig.java",
    "chars": 25220,
    "preview": "package com.getcapacitor;\n\nimport static com.getcapacitor.Bridge.CAPACITOR_HTTPS_SCHEME;\nimport static com.getcapacitor."
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/CapacitorWebView.java",
    "chars": 1789,
    "preview": "package com.getcapacitor;\n\nimport android.content.Context;\nimport android.os.Build;\nimport android.util.AttributeSet;\nim"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/FileUtils.java",
    "chars": 11587,
    "preview": "/**\n * Portions adopted from react-native-image-crop-picker\n *\n * MIT License\n\n * Copyright (c) 2017 Ivan Pusic\n\n * Perm"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/InvalidPluginException.java",
    "chars": 149,
    "preview": "package com.getcapacitor;\n\nclass InvalidPluginException extends Exception {\n\n    public InvalidPluginException(String s)"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/InvalidPluginMethodException.java",
    "chars": 334,
    "preview": "package com.getcapacitor;\n\nclass InvalidPluginMethodException extends Exception {\n\n    public InvalidPluginMethodExcepti"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSArray.java",
    "chars": 1212,
    "preview": "package com.getcapacitor;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.List;\nimport org.js"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSExport.java",
    "chars": 7561,
    "preview": "package com.getcapacitor;\n\nimport static com.getcapacitor.FileUtils.readFileFromAssets;\n\nimport android.content.Context;"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSExportException.java",
    "chars": 297,
    "preview": "package com.getcapacitor;\n\npublic class JSExportException extends Exception {\n\n    public JSExportException(String s) {\n"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSInjector.java",
    "chars": 3932,
    "preview": "package com.getcapacitor;\n\nimport java.io.ByteArrayInputStream;\nimport java.io.InputStream;\nimport java.io.InputStreamRe"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSObject.java",
    "chars": 4203,
    "preview": "package com.getcapacitor;\n\nimport androidx.annotation.Nullable;\nimport java.util.ArrayList;\nimport java.util.Iterator;\ni"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/JSValue.java",
    "chars": 1997,
    "preview": "package com.getcapacitor;\n\nimport org.json.JSONException;\n\n/**\n * Represents a single user-data value of any type on the"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/Logger.java",
    "chars": 2273,
    "preview": "package com.getcapacitor;\n\nimport android.text.TextUtils;\nimport android.util.Log;\n\npublic class Logger {\n\n    public st"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/MessageHandler.java",
    "chars": 6347,
    "preview": "package com.getcapacitor;\n\nimport android.webkit.JavascriptInterface;\nimport android.webkit.WebView;\nimport androidx.web"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/NativePlugin.java",
    "chars": 980,
    "preview": "package com.getcapacitor;\n\nimport com.getcapacitor.annotation.CapacitorPlugin;\nimport java.lang.annotation.Retention;\nim"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PermissionState.java",
    "chars": 606,
    "preview": "package com.getcapacitor;\n\nimport java.util.Locale;\n\n/**\n * Represents the state of a permission\n *\n * @since 3.0.0\n */\n"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/Plugin.java",
    "chars": 38581,
    "preview": "package com.getcapacitor;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.Intent;\ni"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginCall.java",
    "chars": 10471,
    "preview": "package com.getcapacitor;\n\nimport androidx.annotation.Nullable;\nimport java.util.ArrayList;\nimport java.util.List;\nimpor"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginConfig.java",
    "chars": 3788,
    "preview": "package com.getcapacitor;\n\nimport com.getcapacitor.util.JSONUtils;\nimport org.json.JSONObject;\n\n/**\n * Represents the co"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginHandle.java",
    "chars": 5320,
    "preview": "package com.getcapacitor;\n\nimport com.getcapacitor.annotation.CapacitorPlugin;\nimport java.lang.reflect.InvocationTarget"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginInvocationException.java",
    "chars": 322,
    "preview": "package com.getcapacitor;\n\nclass PluginInvocationException extends Exception {\n\n    public PluginInvocationException(Str"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginLoadException.java",
    "chars": 358,
    "preview": "package com.getcapacitor;\n\n/**\n * Thrown when a plugin fails to instantiate\n */\npublic class PluginLoadException extends"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginManager.java",
    "chars": 2123,
    "preview": "package com.getcapacitor;\n\nimport android.content.res.AssetManager;\nimport java.io.BufferedReader;\nimport java.io.IOExce"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginMethod.java",
    "chars": 347,
    "preview": "package com.getcapacitor;\n\nimport java.lang.annotation.Retention;\nimport java.lang.annotation.RetentionPolicy;\n\n@Retenti"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginMethodHandle.java",
    "chars": 735,
    "preview": "package com.getcapacitor;\n\nimport java.lang.reflect.Method;\n\npublic class PluginMethodHandle {\n\n    // The reflect metho"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/PluginResult.java",
    "chars": 2392,
    "preview": "package com.getcapacitor;\n\nimport java.text.DateFormat;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/ProcessedRoute.java",
    "chars": 723,
    "preview": "package com.getcapacitor;\n\n/**\n * An data class used in conjunction with RouteProcessor.\n *\n * @see com.getcapacitor.Rou"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/RouteProcessor.java",
    "chars": 178,
    "preview": "package com.getcapacitor;\n\n/**\n * An interface used in the processing of routes\n */\npublic interface RouteProcessor {\n  "
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/ServerPath.java",
    "chars": 421,
    "preview": "package com.getcapacitor;\n\npublic class ServerPath {\n\n    public enum PathType {\n        BASE_PATH,\n        ASSET_PATH\n "
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/UriMatcher.java",
    "chars": 6049,
    "preview": "/*\n * Copyright (C) 2006 The Android Open Source Project\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/WebViewListener.java",
    "chars": 1987,
    "preview": "package com.getcapacitor;\n\nimport android.webkit.RenderProcessGoneDetail;\nimport android.webkit.WebView;\n\n/**\n * Provide"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/WebViewLocalServer.java",
    "chars": 30499,
    "preview": "/*\nCopyright 2015 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou "
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/annotation/ActivityCallback.java",
    "chars": 302,
    "preview": "package com.getcapacitor.annotation;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nim"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/annotation/CapacitorPlugin.java",
    "chars": 1134,
    "preview": "package com.getcapacitor.annotation;\n\nimport android.content.Intent;\nimport com.getcapacitor.PluginCall;\nimport java.lan"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/annotation/Permission.java",
    "chars": 590,
    "preview": "package com.getcapacitor.annotation;\n\nimport java.lang.annotation.Retention;\nimport java.lang.annotation.RetentionPolicy"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/annotation/PermissionCallback.java",
    "chars": 304,
    "preview": "package com.getcapacitor.annotation;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nim"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/cordova/CapacitorCordovaCookieManager.java",
    "chars": 1067,
    "preview": "package com.getcapacitor.cordova;\n\nimport android.webkit.CookieManager;\nimport android.webkit.WebView;\nimport org.apache"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaInterfaceImpl.java",
    "chars": 1405,
    "preview": "package com.getcapacitor.cordova;\n\nimport android.util.Pair;\nimport androidx.appcompat.app.AppCompatActivity;\nimport jav"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/cordova/MockCordovaWebViewImpl.java",
    "chars": 7753,
    "preview": "package com.getcapacitor.cordova;\n\nimport android.content.Context;\nimport android.content.Intent;\nimport android.os.Hand"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookieManager.java",
    "chars": 8981,
    "preview": "package com.getcapacitor.plugin;\n\nimport com.getcapacitor.Bridge;\nimport com.getcapacitor.Logger;\nimport java.net.Cookie"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorCookies.java",
    "chars": 3997,
    "preview": "package com.getcapacitor.plugin;\n\nimport android.webkit.JavascriptInterface;\nimport com.getcapacitor.JSObject;\nimport co"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/CapacitorHttp.java",
    "chars": 3830,
    "preview": "package com.getcapacitor.plugin;\n\nimport android.Manifest;\nimport android.webkit.JavascriptInterface;\nimport com.getcapa"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/SystemBars.java",
    "chars": 13336,
    "preview": "package com.getcapacitor.plugin;\n\nimport android.content.Context;\nimport android.content.pm.PackageInfo;\nimport android."
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/WebView.java",
    "chars": 1497,
    "preview": "package com.getcapacitor.plugin;\n\nimport android.app.Activity;\nimport android.content.SharedPreferences;\nimport com.getc"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/util/AssetUtil.java",
    "chars": 10148,
    "preview": "package com.getcapacitor.plugin.util;\n\nimport android.content.ContentResolver;\nimport android.content.Context;\nimport an"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/util/CapacitorHttpUrlConnection.java",
    "chars": 18264,
    "preview": "package com.getcapacitor.plugin.util;\n\nimport android.os.Build;\nimport android.os.LocaleList;\nimport android.text.TextUt"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/util/HttpRequestHandler.java",
    "chars": 18181,
    "preview": "package com.getcapacitor.plugin.util;\n\nimport android.text.TextUtils;\nimport android.util.Base64;\nimport com.getcapacito"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/util/ICapacitorHttpUrlConnection.java",
    "chars": 384,
    "preview": "package com.getcapacitor.plugin.util;\n\nimport java.io.IOException;\nimport java.io.InputStream;\n\n/**\n * This interface wa"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/plugin/util/MimeType.java",
    "chars": 358,
    "preview": "package com.getcapacitor.plugin.util;\n\nenum MimeType {\n    APPLICATION_JSON(\"application/json\"),\n    APPLICATION_VND_API"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/util/HostMask.java",
    "chars": 3400,
    "preview": "package com.getcapacitor.util;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.Collections;\nimpor"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/util/InternalUtils.java",
    "chars": 1051,
    "preview": "package com.getcapacitor.util;\n\nimport android.content.pm.PackageInfo;\nimport android.content.pm.PackageManager;\nimport "
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/util/JSONUtils.java",
    "chars": 5087,
    "preview": "package com.getcapacitor.util;\n\nimport org.json.JSONArray;\nimport org.json.JSONException;\nimport org.json.JSONObject;\n\n/"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/util/PermissionHelper.java",
    "chars": 4396,
    "preview": "package com.getcapacitor.util;\n\nimport android.content.Context;\nimport android.content.pm.PackageInfo;\nimport android.co"
  },
  {
    "path": "android/capacitor/src/main/java/com/getcapacitor/util/WebColor.java",
    "chars": 1135,
    "preview": "package com.getcapacitor.util;\n\nimport android.graphics.Color;\n\npublic class WebColor {\n\n    /**\n     * Parse the color "
  },
  {
    "path": "android/capacitor/src/main/res/layout/capacitor_bridge_layout_main.xml",
    "chars": 617,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android=\"http://schema"
  },
  {
    "path": "android/capacitor/src/main/res/layout/no_webview.xml",
    "chars": 488,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    andr"
  },
  {
    "path": "android/capacitor/src/main/res/values/colors.xml",
    "chars": 348,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources xmlns:tools=\"http://schemas.android.com/tools\">\n    <color tools:ignor"
  },
  {
    "path": "android/capacitor/src/main/res/values/strings.xml",
    "chars": 105,
    "preview": "<resources>\n    <string name=\"no_webview_text\">This app requires a WebView to work</string>\n</resources>\n"
  },
  {
    "path": "android/capacitor/src/main/res/values/styles.xml",
    "chars": 212,
    "preview": "<resources>\n    <style name=\"AppTheme.NoActionBar\" parent=\"Theme.AppCompat.NoActionBar\">\n        <item name=\"windowActio"
  },
  {
    "path": "android/capacitor/src/test/java/android/util/Log.java",
    "chars": 709,
    "preview": "package android.util;\n\npublic class Log {\n\n    public static int d(String tag, String msg) {\n        System.out.println("
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/ConfigBuildingTest.java",
    "chars": 3888,
    "preview": "package com.getcapacitor;\n\nimport static org.junit.Assert.*;\n\nimport android.app.Activity;\nimport org.json.JSONArray;\nim"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/ConfigReadingTest.java",
    "chars": 4244,
    "preview": "package com.getcapacitor;\n\nimport static org.junit.Assert.assertEquals;\nimport static org.junit.Assert.assertFalse;\nimpo"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/ExampleUnitTest.java",
    "chars": 396,
    "preview": "package com.getcapacitor;\n\nimport static org.junit.Assert.*;\n\nimport org.junit.Test;\n\n/**\n * Example local unit test, wh"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/JSObjectTest.java",
    "chars": 6975,
    "preview": "package com.getcapacitor;\n\nimport static org.junit.Assert.*;\n\nimport org.json.JSONException;\nimport org.junit.Test;\n\npub"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/PluginMethodHandleTest.java",
    "chars": 1411,
    "preview": "package com.getcapacitor;\n\nimport static org.junit.Assert.assertEquals;\nimport static org.mockito.BDDMockito.given;\nimpo"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/plugin/util/HttpRequestHandlerTest.java",
    "chars": 1287,
    "preview": "package com.getcapacitor.plugin.util;\n\nimport static org.junit.Assert.*;\n\nimport com.getcapacitor.JSObject;\nimport com.g"
  },
  {
    "path": "android/capacitor/src/test/java/com/getcapacitor/util/HostMaskTest.java",
    "chars": 2872,
    "preview": "package com.getcapacitor.util;\n\nimport static org.junit.Assert.*;\n\nimport com.getcapacitor.util.HostMask.Util;\nimport or"
  },
  {
    "path": "android/capacitor/src/test/resources/configs/bad.json",
    "chars": 604,
    "preview": "{\n  \"appId\": \"com.capacitorjs.testshostapp\",\n  \"appName\": \"testshostapp\",\n  \"npmClient\": \"npm\",\n  \"webDir\": \"build\",\n  \""
  },
  {
    "path": "android/capacitor/src/test/resources/configs/flat.json",
    "chars": 326,
    "preview": "{\n  \"appId\": \"com.capacitorjs.testshostapp\",\n  \"appName\": \"testshostapp\",\n  \"npmClient\": \"npm\",\n  \"webDir\": \"build\",\n  \""
  },
  {
    "path": "android/capacitor/src/test/resources/configs/hierarchy.json",
    "chars": 563,
    "preview": "{\n  \"appId\": \"com.capacitorjs.testshostapp\",\n  \"appName\": \"testshostapp\",\n  \"npmClient\": \"npm\",\n  \"webDir\": \"build\",\n  \""
  },
  {
    "path": "android/capacitor/src/test/resources/configs/nonjson.json",
    "chars": 22,
    "preview": "This is not even JSON."
  },
  {
    "path": "android/capacitor/src/test/resources/configs/server.json",
    "chars": 514,
    "preview": "{\n  \"appId\": \"com.capacitorjs.testshostapp\",\n  \"appName\": \"testshostapp\",\n  \"npmClient\": \"npm\",\n  \"webDir\": \"build\",\n  \""
  },
  {
    "path": "android/gradle/wrapper/gradle-wrapper.properties",
    "chars": 253,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "android/gradle.properties",
    "chars": 987,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "android/gradlew",
    "chars": 8710,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "android/gradlew.bat",
    "chars": 2937,
    "preview": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "android/package.json",
    "chars": 811,
    "preview": "{\n  \"name\": \"@capacitor/android\",\n  \"version\": \"8.2.0\",\n  \"description\": \"Capacitor: Cross-platform apps with JavaScript"
  },
  {
    "path": "android/scripts/publish-module.gradle",
    "chars": 2385,
    "preview": "apply plugin: 'maven-publish'\napply plugin: 'signing'\n\ndef LIB_VERSION = System.getenv('CAP_VERSION')\n\ntask androidSourc"
  },
  {
    "path": "android/scripts/publish-root.gradle",
    "chars": 1507,
    "preview": "// Create variables with empty default values\next[\"signing.keyId\"] = ''\next[\"signing.key\"] = ''\next[\"signing.password\"] "
  },
  {
    "path": "android/settings.gradle",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "android-template/.gitignore",
    "chars": 1824,
    "preview": "# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore\n\n# Built application"
  },
  {
    "path": "android-template/app/.gitignore",
    "chars": 26,
    "preview": "/build/*\n!/build/.npmkeep\n"
  },
  {
    "path": "android-template/app/build.gradle",
    "chars": 2140,
    "preview": "apply plugin: 'com.android.application'\n\nandroid {\n    namespace = \"com.getcapacitor.myapp\"\n    compileSdk = rootProject"
  },
  {
    "path": "android-template/app/proguard-rules.pro",
    "chars": 751,
    "preview": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguar"
  },
  {
    "path": "android-template/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java",
    "chars": 774,
    "preview": "package com.getcapacitor.myapp;\n\nimport static org.junit.Assert.*;\n\nimport android.content.Context;\nimport androidx.test"
  },
  {
    "path": "android-template/app/src/main/AndroidManifest.xml",
    "chars": 1537,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <appli"
  },
  {
    "path": "android-template/app/src/main/java/com/getcapacitor/myapp/MainActivity.java",
    "chars": 126,
    "preview": "package com.getcapacitor.myapp;\n\nimport com.getcapacitor.BridgeActivity;\n\npublic class MainActivity extends BridgeActivi"
  },
  {
    "path": "android-template/app/src/main/res/drawable/ic_launcher_background.xml",
    "chars": 5606,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:wi"
  },
  {
    "path": "android-template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml",
    "chars": 1880,
    "preview": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:aapt=\"http://schemas.android.com/aapt\"\n    "
  },
  {
    "path": "android-template/app/src/main/res/layout/activity_main.xml",
    "chars": 535,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android=\"http://schema"
  },
  {
    "path": "android-template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
    "chars": 265,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <b"
  },
  {
    "path": "android-template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml",
    "chars": 265,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <b"
  },
  {
    "path": "android-template/app/src/main/res/values/ic_launcher_background.xml",
    "chars": 120,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"ic_launcher_background\">#FFFFFF</color>\n</resources>"
  },
  {
    "path": "android-template/app/src/main/res/values/strings.xml",
    "chars": 296,
    "preview": "<?xml version='1.0' encoding='utf-8'?>\n<resources>\n    <string name=\"app_name\">My App</string>\n    <string name=\"title_a"
  },
  {
    "path": "android-template/app/src/main/res/values/styles.xml",
    "chars": 823,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" pare"
  },
  {
    "path": "android-template/app/src/main/res/xml/file_paths.xml",
    "chars": 213,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<paths xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <external-"
  },
  {
    "path": "android-template/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java",
    "chars": 402,
    "preview": "package com.getcapacitor.myapp;\n\nimport static org.junit.Assert.*;\n\nimport org.junit.Test;\n\n/**\n * Example local unit te"
  },
  {
    "path": "android-template/build.gradle",
    "chars": 637,
    "preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n    \n"
  },
  {
    "path": "android-template/gradle/wrapper/gradle-wrapper.properties",
    "chars": 253,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "android-template/gradle.properties",
    "chars": 987,
    "preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
  },
  {
    "path": "android-template/gradlew",
    "chars": 8710,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "android-template/gradlew.bat",
    "chars": 2937,
    "preview": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "android-template/settings.gradle",
    "chars": 208,
    "preview": "include ':app'\ninclude ':capacitor-cordova-android-plugins'\nproject(':capacitor-cordova-android-plugins').projectDir = n"
  },
  {
    "path": "android-template/variables.gradle",
    "chars": 498,
    "preview": "ext {\n    minSdkVersion = 24\n    compileSdkVersion = 36\n    targetSdkVersion = 36\n    androidxActivityVersion = '1.11.0'"
  },
  {
    "path": "capacitor-cordova-android-plugins/build.gradle",
    "chars": 1634,
    "preview": "ext {\n    androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompat"
  },
  {
    "path": "capacitor-cordova-android-plugins/src/main/AndroidManifest.xml",
    "chars": 120,
    "preview": "<?xml version='1.0' encoding='utf-8'?>\n<manifest xmlns:android='http://schemas.android.com/apk/res/android'>\n</manifest>"
  },
  {
    "path": "capacitor-cordova-android-plugins/src/main/java/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "capacitor-cordova-android-plugins/src/main/res/.gitkeep",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "capacitor-cordova-ios-plugins/CordovaPluginsResources.podspec",
    "chars": 379,
    "preview": "Pod::Spec.new do |s|\n  s.name = 'CordovaPluginsResources'\n  s.version = '0.0.105'\n  s.summary = 'Resources for Cordova p"
  },
  {
    "path": "capacitor-cordova-ios-plugins/resources/.gitkeep",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "capacitor-cordova-ios-plugins/sources/.gitkeep",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "cli/.gitignore",
    "chars": 25,
    "preview": "assets/**/*.tar.gz\ndist/\n"
  },
  {
    "path": "cli/.npmignore",
    "chars": 195,
    "preview": "assets/android-template/app/build/*\n!assets/android-template/app/build/.npmkeep\nassets/android-template/.gradle\nassets/a"
  },
  {
    "path": "cli/.npmrc",
    "chars": 18,
    "preview": "package-lock=false"
  },
  {
    "path": "cli/CHANGELOG.md",
    "chars": 65015,
    "preview": "# Change Log\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://co"
  },
  {
    "path": "cli/LICENSE",
    "chars": 1075,
    "preview": "MIT License\n\nCopyright (c) 2017-present Drifty Co.\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "cli/README.md",
    "chars": 2326,
    "preview": "# Capacitor CLI\n\nThe Capacitor command-line interface (CLI) is a tool for creating and managing Capacitor applications. "
  },
  {
    "path": "cli/bin/capacitor",
    "chars": 523,
    "preview": "#!/usr/bin/env node\n'use strict';\n\nvar satisfies = require('semver/functions/satisfies');\nvar packageJson = require('../"
  },
  {
    "path": "cli/package.json",
    "chars": 2175,
    "preview": "{\n  \"name\": \"@capacitor/cli\",\n  \"version\": \"8.2.0\",\n  \"description\": \"Capacitor: Cross-platform apps with JavaScript and"
  },
  {
    "path": "cli/src/android/add.ts",
    "chars": 1898,
    "preview": "import { pathExists, writeFile } from 'fs-extra';\nimport { homedir } from 'os';\nimport { join } from 'path';\n\nimport c f"
  },
  {
    "path": "cli/src/android/build.ts",
    "chars": 4257,
    "preview": "import { join } from 'path';\n\nimport c from '../colors';\nimport { runTask } from '../common';\nimport type { Config } fro"
  },
  {
    "path": "cli/src/android/common.ts",
    "chars": 4221,
    "preview": "import { copy, remove, mkdirp, readFile, pathExists, writeFile } from 'fs-extra';\nimport { join, resolve } from 'path';\n"
  },
  {
    "path": "cli/src/android/doctor.ts",
    "chars": 6651,
    "preview": "import { pathExists, readFile } from 'fs-extra';\nimport { join, extname, parse } from 'path';\n\nimport c from '../colors'"
  },
  {
    "path": "cli/src/android/open.ts",
    "chars": 1079,
    "preview": "import Debug from 'debug';\nimport { pathExists } from 'fs-extra';\nimport open from 'open';\n\nimport c from '../colors';\ni"
  },
  {
    "path": "cli/src/android/run.ts",
    "chars": 2228,
    "preview": "import Debug from 'debug';\nimport { resolve } from 'path';\n\nimport c from '../colors';\nimport { parseApkNameFromFlavor, "
  },
  {
    "path": "cli/src/android/update.ts",
    "chars": 15231,
    "preview": "import Debug from 'debug';\nimport { copy, remove, pathExists, readFile, writeFile, writeJSON } from 'fs-extra';\nimport {"
  },
  {
    "path": "cli/src/colors.ts",
    "chars": 515,
    "preview": "import type { Colors } from '@ionic/cli-framework-output';\nimport kleur from 'kleur';\n\nexport const strong = kleur.bold;"
  },
  {
    "path": "cli/src/common.ts",
    "chars": 16673,
    "preview": "import { prettyPath } from '@ionic/utils-terminal';\nimport { readJSON, pathExists } from 'fs-extra';\nimport { dirname, j"
  },
  {
    "path": "cli/src/config.ts",
    "chars": 15563,
    "preview": "import Debug from 'debug';\nimport { existsSync, pathExists, readFile, readJSON, writeFile, writeJSON } from 'fs-extra';\n"
  },
  {
    "path": "cli/src/cordova.ts",
    "chars": 36538,
    "preview": "import { copy, ensureDir, mkdirp, pathExists, readFile, remove, writeFile } from 'fs-extra';\nimport { basename, extname,"
  },
  {
    "path": "cli/src/declarations.ts",
    "chars": 19637,
    "preview": "export interface CapacitorConfig {\n  /**\n   * The unique identifier of your packaged app.\n   *\n   * This is also known a"
  },
  {
    "path": "cli/src/definitions.ts",
    "chars": 4917,
    "preview": "import type { CapacitorConfig, PluginsConfig } from './declarations';\n\ntype DeepReadonly<T> = { readonly [P in keyof T]:"
  },
  {
    "path": "cli/src/errors.ts",
    "chars": 518,
    "preview": "export abstract class BaseException<T> extends Error {\n  constructor(\n    readonly message: string,\n    readonly code: T"
  },
  {
    "path": "cli/src/framework-configs.ts",
    "chars": 2616,
    "preview": "import type { Config, FrameworkConfig } from './definitions';\n\nconst FRAMEWORK_CONFIGS: FrameworkConfig[] = [\n  {\n    na"
  },
  {
    "path": "cli/src/index.ts",
    "chars": 14157,
    "preview": "import { Option, program } from 'commander';\nimport { resolve } from 'path';\n\nimport c from './colors';\nimport { loadCon"
  },
  {
    "path": "cli/src/ios/add.ts",
    "chars": 432,
    "preview": "import c from '../colors';\nimport { runTask } from '../common';\nimport type { Config } from '../definitions';\nimport { e"
  },
  {
    "path": "cli/src/ios/build.ts",
    "chars": 3444,
    "preview": "import { writeFileSync, unlinkSync } from 'fs-extra';\nimport { basename, join } from 'path';\nimport { rimraf } from 'rim"
  },
  {
    "path": "cli/src/ios/common.ts",
    "chars": 4511,
    "preview": "import { execSync } from 'child_process';\nimport { readFile, readFileSync, writeFile } from 'fs-extra';\nimport { join, r"
  },
  {
    "path": "cli/src/ios/doctor.ts",
    "chars": 1406,
    "preview": "import { check, checkWebDir } from '../common';\nimport type { Config } from '../definitions';\nimport { fatal } from '../"
  },
  {
    "path": "cli/src/ios/open.ts",
    "chars": 405,
    "preview": "import open from 'open';\n\nimport { wait } from '../common';\nimport type { Config } from '../definitions';\n\nexport async "
  },
  {
    "path": "cli/src/ios/run.ts",
    "chars": 2405,
    "preview": "import Debug from 'debug';\nimport { basename, resolve } from 'path';\n\nimport c from '../colors';\nimport { promptForPlatf"
  },
  {
    "path": "cli/src/ios/update.ts",
    "chars": 20070,
    "preview": "import { copy, remove, pathExists, readFile, realpath, writeFile } from 'fs-extra';\nimport { basename, dirname, join, re"
  },
  {
    "path": "cli/src/ipc.ts",
    "chars": 1974,
    "preview": "import { fork } from '@ionic/utils-subprocess';\nimport Debug from 'debug';\nimport { open, mkdirp } from 'fs-extra';\nimpo"
  },
  {
    "path": "cli/src/log.ts",
    "chars": 1441,
    "preview": "import {\n  LOGGER_LEVELS,\n  StreamOutputStrategy,\n  TTYOutputStrategy,\n  createDefaultLogger,\n} from '@ionic/cli-framewo"
  },
  {
    "path": "cli/src/plugin.ts",
    "chars": 6003,
    "preview": "import { readJSON } from 'fs-extra';\nimport { dirname, join } from 'path';\n\nimport c from './colors';\nimport type { Conf"
  },
  {
    "path": "cli/src/sysconfig.ts",
    "chars": 1364,
    "preview": "import Debug from 'debug';\nimport { readJSON, writeJSON, mkdirp } from 'fs-extra';\nimport { dirname, resolve } from 'pat"
  },
  {
    "path": "cli/src/tasks/add.ts",
    "chars": 5180,
    "preview": "import { prettyPath } from '@ionic/utils-terminal';\nimport { pathExists } from 'fs-extra';\n\nimport { addAndroid, createL"
  },
  {
    "path": "cli/src/tasks/build.ts",
    "chars": 3486,
    "preview": "import { buildAndroid } from '../android/build';\nimport { selectPlatforms, promptForPlatform } from '../common';\nimport "
  },
  {
    "path": "cli/src/tasks/config.ts",
    "chars": 740,
    "preview": "import util from 'util';\n\nimport type { Config } from '../definitions';\nimport { output } from '../log';\n\nexport async f"
  },
  {
    "path": "cli/src/tasks/copy.ts",
    "chars": 10610,
    "preview": "import { copy as fsCopy, pathExists, remove, writeJSON } from 'fs-extra';\nimport { basename, join, relative, resolve } f"
  },
  {
    "path": "cli/src/tasks/create.ts",
    "chars": 217,
    "preview": "import c from '../colors';\nimport { fatal } from '../errors';\n\nexport async function createCommand(): Promise<void> {\n  "
  },
  {
    "path": "cli/src/tasks/doctor.ts",
    "chars": 2767,
    "preview": "import { readJSON } from 'fs-extra';\n\nimport { doctorAndroid } from '../android/doctor';\nimport c from '../colors';\nimpo"
  }
]

// ... and 258 more files (download for full content)

About this extraction

This page contains the full source code of the ionic-team/capacitor GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 458 files (2.1 MB), approximately 579.4k tokens, and a symbol index with 1413 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!