diff --git a/speech-recognition/.eslintignore b/speech-recognition/.eslintignore
new file mode 100644
index 00000000..9d0b71a3
--- /dev/null
+++ b/speech-recognition/.eslintignore
@@ -0,0 +1,2 @@
+build
+dist
diff --git a/speech-recognition/.npmrc b/speech-recognition/.npmrc
new file mode 100644
index 00000000..cffe8cde
--- /dev/null
+++ b/speech-recognition/.npmrc
@@ -0,0 +1 @@
+save-exact=true
diff --git a/speech-recognition/.prettierignore b/speech-recognition/.prettierignore
new file mode 100644
index 00000000..9d0b71a3
--- /dev/null
+++ b/speech-recognition/.prettierignore
@@ -0,0 +1,2 @@
+build
+dist
diff --git a/speech-recognition/CHANGELOG.md b/speech-recognition/CHANGELOG.md
new file mode 100644
index 00000000..8ea8b84b
--- /dev/null
+++ b/speech-recognition/CHANGELOG.md
@@ -0,0 +1,42 @@
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+### [6.0.1](https://github.com/capacitor-community/speech-recognition/compare/v6.0.0...v6.0.1) (2024-06-28)
+
+
+### Bug Fixes
+
+* **ios:** proper isListening return ([#103](https://github.com/capacitor-community/speech-recognition/issues/103)) ([daf40a7](https://github.com/capacitor-community/speech-recognition/commit/daf40a73fda9b1caa5e84df41bf15ff687617742))
+
+## [6.0.0](https://github.com/capacitor-community/speech-recognition/compare/v5.1.0...v6.0.0) (2024-06-07)
+
+
+### ⚠ BREAKING CHANGES
+
+* Remove deprecated permission methods (#94)
+* Update to Capacitor 6 (#86)
+* use correct name on rollup (#93)
+
+### Features
+
+* Remove deprecated permission methods ([#94](https://github.com/capacitor-community/speech-recognition/issues/94)) ([77d89b8](https://github.com/capacitor-community/speech-recognition/commit/77d89b86117a9e1adc88abfafc8c9327ea5fef8d))
+* Update to Capacitor 6 ([#86](https://github.com/capacitor-community/speech-recognition/issues/86)) ([8e2f62b](https://github.com/capacitor-community/speech-recognition/commit/8e2f62b5ed37fdb8acf33c31b4e7157d03a47739))
+
+
+### Bug Fixes
+
+* correct since for isListening and listeningState ([#92](https://github.com/capacitor-community/speech-recognition/issues/92)) ([8b9445c](https://github.com/capacitor-community/speech-recognition/commit/8b9445caf09093422d761c6b3f91ed330d273047))
+* **ios:** add missing listeningState stopped cases ([#95](https://github.com/capacitor-community/speech-recognition/issues/95)) ([19f98d1](https://github.com/capacitor-community/speech-recognition/commit/19f98d13b6a9454373a7d1af57e83f49fa823174))
+* use correct name on rollup ([#93](https://github.com/capacitor-community/speech-recognition/issues/93)) ([d8fefbc](https://github.com/capacitor-community/speech-recognition/commit/d8fefbc13594c7949e3bc687355c7308d9f90d8d))
+
+## [5.1.0](https://github.com/capacitor-community/speech-recognition/compare/v5.0.0...v5.1.0) (2024-03-27)
+
+
+### Features
+
+* add `isListening` method and `listeningState` listener ([#83](https://github.com/capacitor-community/speech-recognition/issues/83)) ([5a9b532](https://github.com/capacitor-community/speech-recognition/commit/5a9b532f316df7585b94e65bff77b642df5eb32e))
+
+# Changelog
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
diff --git a/speech-recognition/CONTRIBUTING.md b/speech-recognition/CONTRIBUTING.md
new file mode 100644
index 00000000..999f36e2
--- /dev/null
+++ b/speech-recognition/CONTRIBUTING.md
@@ -0,0 +1,66 @@
+# Contributing
+
+This guide provides instructions for contributing to this Capacitor plugin.
+
+## Developing
+
+### Local Setup
+
+1. Fork and clone the repo.
+2. Install the dependencies.
+
+ ```shell
+ npm install
+ ```
+
+3. Install SwiftLint if you're on macOS.
+
+ ```shell
+ brew install swiftlint
+ ```
+
+### Scripts
+
+#### `npm run build`
+
+Build the plugin web assets and generate plugin API documentation using [`@capacitor/docgen`](https://github.com/ionic-team/capacitor-docgen).
+
+It will compile the TypeScript code from `src/` into ESM JavaScript in `dist/esm/`. These files are used in apps with bundlers when your plugin is imported.
+
+Then, Rollup will bundle the code into a single file at `dist/plugin.js`. This file is used in apps without bundlers by including it as a script in `index.html`.
+
+#### `npm run verify`
+
+Build and validate the web and native projects.
+
+This is useful to run in CI to verify that the plugin builds for all platforms.
+
+#### `npm run lint` / `npm run fmt`
+
+Check formatting and code quality, autoformat/autofix if possible.
+
+This template is integrated with ESLint, Prettier, and SwiftLint. Using these tools is completely optional, but the [Capacitor Community](https://github.com/capacitor-community/) strives to have consistent code style and structure for easier cooperation.
+
+## Versioning
+
+Don't change the plugin version manually, the version change is automated with `standard-version` package.
+
+## Publishing
+
+First run:
+
+```shell
+npm run release
+```
+
+That will update the plugin version and update the `CHANGELOG.md` file with latest changes. Then it will ask you to run:
+
+```shell
+git push --follow-tags origin master && npm publish
+```
+
+That creates a tag on gitbhub and publishes the package on npm.
+
+Go to the [github tags section](https://github.com/capacitor-community/speech-recognition/tags), pick the latest tag and create a release for it.
+
+> **Note**: The [`files`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files) array in `package.json` specifies which files get published. If you rename files/directories or add files elsewhere, you may need to update it.
diff --git a/speech-recognition/CapacitorCommunitySpeechRecognition.podspec b/speech-recognition/CapacitorCommunitySpeechRecognition.podspec
new file mode 100644
index 00000000..273dde35
--- /dev/null
+++ b/speech-recognition/CapacitorCommunitySpeechRecognition.podspec
@@ -0,0 +1,17 @@
+require 'json'
+
+package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
+
+Pod::Spec.new do |s|
+ s.name = 'CapacitorCommunitySpeechRecognition'
+ s.version = package['version']
+ s.summary = package['description']
+ s.license = package['license']
+ s.homepage = package['repository']['url']
+ s.author = package['author']
+ s.source = { :git => package['repository']['url'], :tag => s.version.to_s }
+ s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
+ s.ios.deployment_target = '13.0'
+ s.dependency 'Capacitor'
+ s.swift_version = '5.1'
+end
diff --git a/speech-recognition/LICENSE b/speech-recognition/LICENSE
new file mode 100644
index 00000000..00dbd906
--- /dev/null
+++ b/speech-recognition/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) COPYRIGHT_YEAR COPYRIGHT_HOLDER
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/speech-recognition/README.md b/speech-recognition/README.md
new file mode 100644
index 00000000..1cbb84d1
--- /dev/null
+++ b/speech-recognition/README.md
@@ -0,0 +1,370 @@
+# Capacitor Speech Recognition Plugin
+
+Capacitor community plugin for speech recognition.
+
+## Maintainers
+
+| Maintainer | GitHub | Social |
+| --------------- | ------------------------------------------- | ------------------------------------------------ |
+| Priyank Patel | [priyankpat](https://github.com/priyankpat) | [@priyankpat\_](https://twitter.com/priyankpat_) |
+| Matteo Padovano | [mrbatista](https://github.com/mrbatista) | [@mrba7ista](https://twitter.com/mrba7ista) |
+
+Maintenance Status: Actively Maintained
+
+## Installation
+
+To use npm
+
+```bash
+npm install @capacitor-community/speech-recognition
+```
+
+To use yarn
+
+```bash
+yarn add @capacitor-community/speech-recognition
+```
+
+Sync native files
+
+```bash
+npx cap sync
+```
+
+## iOS
+
+iOS requires the following usage descriptions be added and filled out for your app in `Info.plist`:
+
+- `NSSpeechRecognitionUsageDescription` (`Privacy - Speech Recognition Usage Description`)
+- `NSMicrophoneUsageDescription` (`Privacy - Microphone Usage Description`)
+
+## Android
+
+No further action required.
+
+## Supported methods
+
+
+
+* [`available()`](#available)
+* [`record(...)`](#record)
+* [`startMicrophoneStream()`](#startmicrophonestream)
+* [`stopMicrophoneStream()`](#stopmicrophonestream)
+* [`stopRecording()`](#stoprecording)
+* [`start(...)`](#start)
+* [`stop()`](#stop)
+* [`getSupportedLanguages()`](#getsupportedlanguages)
+* [`isListening()`](#islistening)
+* [`checkPermissions()`](#checkpermissions)
+* [`requestPermissions()`](#requestpermissions)
+* [`addListener('partialResults', ...)`](#addlistenerpartialresults-)
+* [`addListener('listeningState', ...)`](#addlistenerlisteningstate-)
+* [`removeAllListeners()`](#removealllisteners)
+* [Interfaces](#interfaces)
+* [Type Aliases](#type-aliases)
+
+
+
+## Example
+
+```typescript
+import { SpeechRecognition } from "@capacitor-community/speech-recognition";
+
+SpeechRecognition.available();
+
+SpeechRecognition.start({
+ language: "en-US",
+ maxResults: 2,
+ prompt: "Say something",
+ partialResults: true,
+ popup: true,
+});
+// listen to partial results
+SpeechRecognition.addListener("partialResults", (data: any) => {
+ console.log("partialResults was fired", data.matches);
+});
+
+// stop listening partial results
+SpeechRecognition.removeAllListeners();
+
+SpeechRecognition.stop();
+
+SpeechRecognition.getSupportedLanguages();
+
+SpeechRecognition.checkPermissions();
+
+SpeechRecognition.requestPermissions();
+
+SpeechRecognition.hasPermission();
+
+SpeechRecognition.requestPermission();
+```
+
+
+
+
+### available()
+
+```typescript
+available() => Promise<{ available: boolean; }>
+```
+
+This method will check if speech recognition feature is available on the device.
+
+**Returns:** Promise<{ available: boolean; }>
+
+--------------------
+
+
+### record(...)
+
+```typescript
+record(options?: RecordOptions | undefined) => Promise
+```
+
+Start recording audio to a file
+
+| Param | Type |
+| ------------- | ------------------------------------------------------- |
+| **`options`** | RecordOptions |
+
+**Returns:** Promise<RecordingResult>
+
+--------------------
+
+
+### startMicrophoneStream()
+
+```typescript
+startMicrophoneStream() => Promise
+```
+
+Start streaming microphone data for visualization
+
+**Returns:** Promise<RecordingResult>
+
+--------------------
+
+
+### stopMicrophoneStream()
+
+```typescript
+stopMicrophoneStream() => Promise
+```
+
+Stop streaming microphone data
+
+**Returns:** Promise<RecordingResult>
+
+--------------------
+
+
+### stopRecording()
+
+```typescript
+stopRecording() => Promise
+```
+
+--------------------
+
+
+### start(...)
+
+```typescript
+start(options?: UtteranceOptions | undefined) => Promise<{ matches?: string[]; }>
+```
+
+This method will start to listen for utterance.
+
+if `partialResults` is `true`, the function respond directly without result and
+event `partialResults` will be emit for each partial result, until stopped.
+
+| Param | Type |
+| ------------- | ------------------------------------------------------------- |
+| **`options`** | UtteranceOptions |
+
+**Returns:** Promise<{ matches?: string[]; }>
+
+--------------------
+
+
+### stop()
+
+```typescript
+stop() => Promise
+```
+
+This method will stop listening for utterance
+
+--------------------
+
+
+### getSupportedLanguages()
+
+```typescript
+getSupportedLanguages() => Promise<{ languages: any[]; }>
+```
+
+This method will return list of languages supported by the speech recognizer.
+
+It's not available on Android 13 and newer.
+
+**Returns:** Promise<{ languages: any[]; }>
+
+--------------------
+
+
+### isListening()
+
+```typescript
+isListening() => Promise<{ listening: boolean; }>
+```
+
+This method will check if speech recognition is listening.
+
+**Returns:** Promise<{ listening: boolean; }>
+
+**Since:** 5.1.0
+
+--------------------
+
+
+### checkPermissions()
+
+```typescript
+checkPermissions() => Promise
+```
+
+Check the speech recognition permission.
+
+**Returns:** Promise<PermissionStatus>
+
+**Since:** 5.0.0
+
+--------------------
+
+
+### requestPermissions()
+
+```typescript
+requestPermissions() => Promise
+```
+
+Request the speech recognition permission.
+
+**Returns:** Promise<PermissionStatus>
+
+**Since:** 5.0.0
+
+--------------------
+
+
+### addListener('partialResults', ...)
+
+```typescript
+addListener(eventName: 'partialResults', listenerFunc: (data: { matches: string[]; }) => void) => Promise
+```
+
+Called when partialResults set to true and result received.
+
+On Android it doesn't work if popup is true.
+
+Provides partial result.
+
+| Param | Type |
+| ------------------ | ------------------------------------------------------ |
+| **`eventName`** | 'partialResults' |
+| **`listenerFunc`** | (data: { matches: string[]; }) => void |
+
+**Returns:** Promise<PluginListenerHandle>
+
+**Since:** 2.0.2
+
+--------------------
+
+
+### addListener('listeningState', ...)
+
+```typescript
+addListener(eventName: 'listeningState', listenerFunc: (data: { status: 'started' | 'stopped'; }) => void) => Promise
+```
+
+Called when listening state changed.
+
+| Param | Type |
+| ------------------ | ------------------------------------------------------------------- |
+| **`eventName`** | 'listeningState' |
+| **`listenerFunc`** | (data: { status: 'started' \| 'stopped'; }) => void |
+
+**Returns:** Promise<PluginListenerHandle>
+
+**Since:** 5.1.0
+
+--------------------
+
+
+### removeAllListeners()
+
+```typescript
+removeAllListeners() => Promise
+```
+
+Remove all the listeners that are attached to this plugin.
+
+**Since:** 4.0.0
+
+--------------------
+
+
+### Interfaces
+
+
+#### RecordingResult
+
+| Prop | Type | Description |
+| ------------ | ----------------------------------- | ------------------------------- |
+| **`path`** | string | Path to the recorded audio file |
+| **`status`** | 'started' \| 'stopped' | |
+
+
+#### RecordOptions
+
+| Prop | Type |
+| ---------------- | ------------------- |
+| **`fileName`** | string |
+| **`outputPath`** | string |
+
+
+#### UtteranceOptions
+
+| Prop | Type | Description |
+| -------------------- | -------------------- | ---------------------------------------------------------------- |
+| **`language`** | string | key returned from `getSupportedLanguages()` |
+| **`maxResults`** | number | maximum number of results to return (5 is max) |
+| **`prompt`** | string | prompt message to display on popup (Android only) |
+| **`popup`** | boolean | display popup window when listening for utterance (Android only) |
+| **`partialResults`** | boolean | return partial results if found |
+
+
+#### PermissionStatus
+
+| Prop | Type | Description | Since |
+| ----------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- |
+| **`speechRecognition`** | PermissionState | Permission state for speechRecognition alias. On Android it requests/checks RECORD_AUDIO permission On iOS it requests/checks the speech recognition and microphone permissions. | 5.0.0 |
+
+
+#### PluginListenerHandle
+
+| Prop | Type |
+| ------------ | ----------------------------------------- |
+| **`remove`** | () => Promise<void> |
+
+
+### Type Aliases
+
+
+#### PermissionState
+
+'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'
+
+
diff --git a/speech-recognition/android/.npmignore b/speech-recognition/android/.npmignore
new file mode 100644
index 00000000..796b96d1
--- /dev/null
+++ b/speech-recognition/android/.npmignore
@@ -0,0 +1 @@
+/build
diff --git a/speech-recognition/android/build.gradle b/speech-recognition/android/build.gradle
new file mode 100644
index 00000000..3abaea0e
--- /dev/null
+++ b/speech-recognition/android/build.gradle
@@ -0,0 +1,57 @@
+ext {
+ junitVersion = project.hasProperty('junitVersion') ? rootProject.ext.junitVersion : '4.13.2'
+ androidxAppCompatVersion = project.hasProperty('androidxAppCompatVersion') ? rootProject.ext.androidxAppCompatVersion : '1.6.1'
+ androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.5'
+ androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.5.1'
+}
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:8.2.1'
+ }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+ namespace "com.getcapacitor.community.speechrecognition.speechrecognition"
+ compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
+ defaultConfig {
+ minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
+ targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
+ versionCode 1
+ versionName '1.0'
+ testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+ lintOptions {
+ abortOnError false
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
+ }
+}
+
+repositories {
+ google()
+ mavenCentral()
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation project(':capacitor-android')
+ implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion"
+ testImplementation "junit:junit:$junitVersion"
+ androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
+ androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
+}
diff --git a/speech-recognition/android/gradle.properties b/speech-recognition/android/gradle.properties
new file mode 100644
index 00000000..ec594217
--- /dev/null
+++ b/speech-recognition/android/gradle.properties
@@ -0,0 +1,20 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+
+# Supports AndroidX
+android.useAndroidX=true
diff --git a/speech-recognition/android/gradle/wrapper/gradle-wrapper.jar b/speech-recognition/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..033e24c4
Binary files /dev/null and b/speech-recognition/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/speech-recognition/android/gradle/wrapper/gradle-wrapper.properties b/speech-recognition/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..c747538f
--- /dev/null
+++ b/speech-recognition/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/speech-recognition/android/gradlew b/speech-recognition/android/gradlew
new file mode 100755
index 00000000..fcb6fca1
--- /dev/null
+++ b/speech-recognition/android/gradlew
@@ -0,0 +1,248 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/speech-recognition/android/gradlew.bat b/speech-recognition/android/gradlew.bat
new file mode 100644
index 00000000..6689b85b
--- /dev/null
+++ b/speech-recognition/android/gradlew.bat
@@ -0,0 +1,92 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/speech-recognition/android/proguard-rules.pro b/speech-recognition/android/proguard-rules.pro
new file mode 100644
index 00000000..f1b42451
--- /dev/null
+++ b/speech-recognition/android/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/speech-recognition/android/settings.gradle b/speech-recognition/android/settings.gradle
new file mode 100644
index 00000000..1e5b8431
--- /dev/null
+++ b/speech-recognition/android/settings.gradle
@@ -0,0 +1,2 @@
+include ':capacitor-android'
+project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
\ No newline at end of file
diff --git a/speech-recognition/android/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.java b/speech-recognition/android/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.java
new file mode 100644
index 00000000..58020e16
--- /dev/null
+++ b/speech-recognition/android/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.getcapacitor.android;
+
+import static org.junit.Assert.*;
+
+import android.content.Context;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+
+ @Test
+ public void useAppContext() throws Exception {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ assertEquals("com.getcapacitor.android", appContext.getPackageName());
+ }
+}
diff --git a/speech-recognition/android/src/main/AndroidManifest.xml b/speech-recognition/android/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..5201e68c
--- /dev/null
+++ b/speech-recognition/android/src/main/AndroidManifest.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Constants.java b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Constants.java
new file mode 100644
index 00000000..1c3645dd
--- /dev/null
+++ b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Constants.java
@@ -0,0 +1,19 @@
+package com.getcapacitor.community.speechrecognition;
+
+import android.Manifest;
+
+public interface Constants {
+ int REQUEST_CODE_PERMISSION = 2001;
+ int REQUEST_CODE_SPEECH = 2002;
+ String IS_RECOGNITION_AVAILABLE = "isRecognitionAvailable";
+ String START_LISTENING = "startListening";
+ String STOP_LISTENING = "stopListening";
+ String GET_SUPPORTED_LANGUAGES = "getSupportedLanguages";
+ String HAS_PERMISSION = "hasPermission";
+ String REQUEST_PERMISSION = "requestPermission";
+ int MAX_RESULTS = 5;
+ String NOT_AVAILABLE = "Speech recognition service is not available.";
+ String MISSING_PERMISSION = "Missing permission";
+ String RECORD_AUDIO_PERMISSION = Manifest.permission.RECORD_AUDIO;
+ String ERROR = "Could not get list of languages";
+}
diff --git a/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Receiver.java b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Receiver.java
new file mode 100644
index 00000000..63011772
--- /dev/null
+++ b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/Receiver.java
@@ -0,0 +1,52 @@
+package com.getcapacitor.community.speechrecognition;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.speech.RecognizerIntent;
+import com.getcapacitor.JSArray;
+import com.getcapacitor.JSObject;
+import com.getcapacitor.PluginCall;
+import java.util.List;
+
+public class Receiver extends BroadcastReceiver implements Constants {
+
+ public static final String TAG = "Receiver";
+
+ private List supportedLanguagesList;
+ private String languagePref;
+ private PluginCall call;
+
+ public Receiver(PluginCall call) {
+ super();
+ this.call = call;
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Bundle extras = getResultExtras(true);
+
+ if (extras.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE)) {
+ languagePref = extras.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
+ }
+
+ if (extras.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) {
+ supportedLanguagesList = extras.getStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
+
+ JSArray languagesList = new JSArray(supportedLanguagesList);
+ call.resolve(new JSObject().put("languages", languagesList));
+ return;
+ }
+
+ call.reject(ERROR);
+ }
+
+ public List getSupportedLanguages() {
+ return supportedLanguagesList;
+ }
+
+ public String getLanguagePreference() {
+ return languagePref;
+ }
+}
diff --git a/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/SpeechRecognition.java b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/SpeechRecognition.java
new file mode 100644
index 00000000..0f3fcabd
--- /dev/null
+++ b/speech-recognition/android/src/main/java/com/getcapacitor/community/speechrecognition/SpeechRecognition.java
@@ -0,0 +1,375 @@
+package com.getcapacitor.community.speechrecognition;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Build;
+import android.os.Bundle;
+import android.speech.RecognitionListener;
+import android.speech.RecognizerIntent;
+import android.speech.SpeechRecognizer;
+import androidx.activity.result.ActivityResult;
+import com.getcapacitor.JSArray;
+import com.getcapacitor.JSObject;
+import com.getcapacitor.Logger;
+import com.getcapacitor.PermissionState;
+import com.getcapacitor.Plugin;
+import com.getcapacitor.PluginCall;
+import com.getcapacitor.PluginMethod;
+import com.getcapacitor.annotation.ActivityCallback;
+import com.getcapacitor.annotation.CapacitorPlugin;
+import com.getcapacitor.annotation.Permission;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.concurrent.locks.ReentrantLock;
+import org.json.JSONArray;
+
+@CapacitorPlugin(
+ permissions = { @Permission(strings = { Manifest.permission.RECORD_AUDIO }, alias = SpeechRecognition.SPEECH_RECOGNITION) }
+)
+public class SpeechRecognition extends Plugin implements Constants {
+
+ public static final String TAG = "SpeechRecognition";
+ private static final String LISTENING_EVENT = "listeningState";
+ static final String SPEECH_RECOGNITION = "speechRecognition";
+
+ private Receiver languageReceiver;
+ private SpeechRecognizer speechRecognizer;
+
+ private final ReentrantLock lock = new ReentrantLock();
+ private boolean listening = false;
+
+ private JSONArray previousPartialResults = new JSONArray();
+
+ @Override
+ public void load() {
+ super.load();
+ bridge
+ .getWebView()
+ .post(
+ () -> {
+ speechRecognizer = SpeechRecognizer.createSpeechRecognizer(bridge.getActivity());
+ SpeechRecognitionListener listener = new SpeechRecognitionListener();
+ speechRecognizer.setRecognitionListener(listener);
+ Logger.info(getLogTag(), "Instantiated SpeechRecognizer in load()");
+ }
+ );
+ }
+
+ @PluginMethod
+ public void available(PluginCall call) {
+ Logger.info(getLogTag(), "Called for available(): " + isSpeechRecognitionAvailable());
+ boolean val = isSpeechRecognitionAvailable();
+ JSObject result = new JSObject();
+ result.put("available", val);
+ call.resolve(result);
+ }
+
+ @PluginMethod
+ public void start(PluginCall call) {
+ if (!isSpeechRecognitionAvailable()) {
+ call.unavailable(NOT_AVAILABLE);
+ return;
+ }
+
+ if (getPermissionState(SPEECH_RECOGNITION) != PermissionState.GRANTED) {
+ call.reject(MISSING_PERMISSION);
+ return;
+ }
+
+ String language = call.getString("language", Locale.getDefault().toString());
+ int maxResults = call.getInt("maxResults", MAX_RESULTS);
+ String prompt = call.getString("prompt", null);
+ boolean partialResults = call.getBoolean("partialResults", false);
+ boolean popup = call.getBoolean("popup", false);
+ beginListening(language, maxResults, prompt, partialResults, popup, call);
+ }
+
+ @PluginMethod
+ public void stop(final PluginCall call) {
+ try {
+ stopListening();
+ } catch (Exception ex) {
+ call.reject(ex.getLocalizedMessage());
+ }
+ }
+
+ @PluginMethod
+ public void getSupportedLanguages(PluginCall call) {
+ if (languageReceiver == null) {
+ languageReceiver = new Receiver(call);
+ }
+
+ List supportedLanguages = languageReceiver.getSupportedLanguages();
+ if (supportedLanguages != null) {
+ JSONArray languages = new JSONArray(supportedLanguages);
+ call.resolve(new JSObject().put("languages", languages));
+ return;
+ }
+
+ Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ detailsIntent.setPackage("com.google.android.googlequicksearchbox");
+ }
+ bridge.getActivity().sendOrderedBroadcast(detailsIntent, null, languageReceiver, null, Activity.RESULT_OK, null, null);
+ }
+
+ @PluginMethod
+ public void isListening(PluginCall call) {
+ call.resolve(new JSObject().put("listening", SpeechRecognition.this.listening));
+ }
+
+ @ActivityCallback
+ private void listeningResult(PluginCall call, ActivityResult result) {
+ if (call == null) {
+ return;
+ }
+
+ int resultCode = result.getResultCode();
+ if (resultCode == Activity.RESULT_OK) {
+ try {
+ ArrayList matchesList = result.getData().getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
+ JSObject resultObj = new JSObject();
+ resultObj.put("matches", new JSArray(matchesList));
+ call.resolve(resultObj);
+ } catch (Exception ex) {
+ call.reject(ex.getMessage());
+ }
+ } else {
+ call.reject(Integer.toString(resultCode));
+ }
+
+ SpeechRecognition.this.lock.lock();
+ SpeechRecognition.this.listening(false);
+ SpeechRecognition.this.lock.unlock();
+ }
+
+ private boolean isSpeechRecognitionAvailable() {
+ return SpeechRecognizer.isRecognitionAvailable(bridge.getContext());
+ }
+
+ private void listening(boolean value) {
+ this.listening = value;
+ }
+
+ private void beginListening(
+ String language,
+ int maxResults,
+ String prompt,
+ final boolean partialResults,
+ boolean showPopup,
+ PluginCall call
+ ) {
+ Logger.info(getLogTag(), "Beginning to listen for audible speech");
+
+ final Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
+ intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
+ intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
+ intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, maxResults);
+ intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, bridge.getActivity().getPackageName());
+ intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, partialResults);
+ intent.putExtra("android.speech.extra.DICTATION_MODE", partialResults);
+
+ if (prompt != null) {
+ intent.putExtra(RecognizerIntent.EXTRA_PROMPT, prompt);
+ }
+
+ if (showPopup) {
+ startActivityForResult(call, intent, "listeningResult");
+ } else {
+ bridge
+ .getWebView()
+ .post(
+ () -> {
+ try {
+ SpeechRecognition.this.lock.lock();
+
+ if (speechRecognizer != null) {
+ speechRecognizer.cancel();
+ speechRecognizer.destroy();
+ speechRecognizer = null;
+ }
+
+ speechRecognizer = SpeechRecognizer.createSpeechRecognizer(bridge.getActivity());
+ SpeechRecognitionListener listener = new SpeechRecognitionListener();
+ listener.setCall(call);
+ listener.setPartialResults(partialResults);
+ speechRecognizer.setRecognitionListener(listener);
+ speechRecognizer.startListening(intent);
+ SpeechRecognition.this.listening(true);
+ if (partialResults) {
+ call.resolve();
+ }
+ } catch (Exception ex) {
+ call.reject(ex.getMessage());
+ } finally {
+ SpeechRecognition.this.lock.unlock();
+ }
+ }
+ );
+ }
+ }
+
+ private void stopListening() {
+ bridge
+ .getWebView()
+ .post(
+ () -> {
+ try {
+ SpeechRecognition.this.lock.lock();
+ if (SpeechRecognition.this.listening) {
+ speechRecognizer.stopListening();
+ SpeechRecognition.this.listening(false);
+ }
+ } catch (Exception ex) {
+ throw ex;
+ } finally {
+ SpeechRecognition.this.lock.unlock();
+ }
+ }
+ );
+ }
+
+ private class SpeechRecognitionListener implements RecognitionListener {
+
+ private PluginCall call;
+ private boolean partialResults;
+
+ public void setCall(PluginCall call) {
+ this.call = call;
+ }
+
+ public void setPartialResults(boolean partialResults) {
+ this.partialResults = partialResults;
+ }
+
+ @Override
+ public void onReadyForSpeech(Bundle params) {}
+
+ @Override
+ public void onBeginningOfSpeech() {
+ try {
+ SpeechRecognition.this.lock.lock();
+ // Notify listeners that recording has started
+ JSObject ret = new JSObject();
+ ret.put("status", "started");
+ SpeechRecognition.this.notifyListeners(LISTENING_EVENT, ret);
+ } finally {
+ SpeechRecognition.this.lock.unlock();
+ }
+ }
+
+ @Override
+ public void onRmsChanged(float rmsdB) {}
+
+ @Override
+ public void onBufferReceived(byte[] buffer) {}
+
+ @Override
+ public void onEndOfSpeech() {
+ bridge
+ .getWebView()
+ .post(
+ () -> {
+ try {
+ SpeechRecognition.this.lock.lock();
+ SpeechRecognition.this.listening(false);
+
+ JSObject ret = new JSObject();
+ ret.put("status", "stopped");
+ SpeechRecognition.this.notifyListeners(LISTENING_EVENT, ret);
+ } finally {
+ SpeechRecognition.this.lock.unlock();
+ }
+ }
+ );
+ }
+
+ @Override
+ public void onError(int error) {
+ SpeechRecognition.this.stopListening();
+ String errorMssg = getErrorText(error);
+
+ if (this.call != null) {
+ call.reject(errorMssg);
+ }
+ }
+
+ @Override
+ public void onResults(Bundle results) {
+ ArrayList matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
+
+ try {
+ JSArray jsArray = new JSArray(matches);
+
+ if (this.call != null) {
+ if (!this.partialResults) {
+ this.call.resolve(new JSObject().put("status", "success").put("matches", jsArray));
+ } else {
+ JSObject ret = new JSObject();
+ ret.put("matches", jsArray);
+ notifyListeners("partialResults", ret);
+ }
+ }
+ } catch (Exception ex) {
+ this.call.resolve(new JSObject().put("status", "error").put("message", ex.getMessage()));
+ }
+ }
+
+ @Override
+ public void onPartialResults(Bundle partialResults) {
+ ArrayList matches = partialResults.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
+ JSArray matchesJSON = new JSArray(matches);
+
+ try {
+ if (matches != null && matches.size() > 0 && !previousPartialResults.equals(matchesJSON)) {
+ previousPartialResults = matchesJSON;
+ JSObject ret = new JSObject();
+ ret.put("matches", previousPartialResults);
+ notifyListeners("partialResults", ret);
+ }
+ } catch (Exception ex) {}
+ }
+
+ @Override
+ public void onEvent(int eventType, Bundle params) {}
+ }
+
+ private String getErrorText(int errorCode) {
+ String message;
+ switch (errorCode) {
+ case SpeechRecognizer.ERROR_AUDIO:
+ message = "Audio recording error";
+ break;
+ case SpeechRecognizer.ERROR_CLIENT:
+ message = "Client side error";
+ break;
+ case SpeechRecognizer.ERROR_INSUFFICIENT_PERMISSIONS:
+ message = "Insufficient permissions";
+ break;
+ case SpeechRecognizer.ERROR_NETWORK:
+ message = "Network error";
+ break;
+ case SpeechRecognizer.ERROR_NETWORK_TIMEOUT:
+ message = "Network timeout";
+ break;
+ case SpeechRecognizer.ERROR_NO_MATCH:
+ message = "No match";
+ break;
+ case SpeechRecognizer.ERROR_RECOGNIZER_BUSY:
+ message = "RecognitionService busy";
+ break;
+ case SpeechRecognizer.ERROR_SERVER:
+ message = "error from server";
+ break;
+ case SpeechRecognizer.ERROR_SPEECH_TIMEOUT:
+ message = "No speech input";
+ break;
+ default:
+ message = "Didn't understand, please try again.";
+ break;
+ }
+ return message;
+ }
+}
diff --git a/speech-recognition/android/src/main/res/layout/bridge_layout_main.xml b/speech-recognition/android/src/main/res/layout/bridge_layout_main.xml
new file mode 100644
index 00000000..56fec154
--- /dev/null
+++ b/speech-recognition/android/src/main/res/layout/bridge_layout_main.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/speech-recognition/android/src/main/res/values/colors.xml b/speech-recognition/android/src/main/res/values/colors.xml
new file mode 100644
index 00000000..045e125f
--- /dev/null
+++ b/speech-recognition/android/src/main/res/values/colors.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/speech-recognition/android/src/main/res/values/strings.xml b/speech-recognition/android/src/main/res/values/strings.xml
new file mode 100644
index 00000000..6789e139
--- /dev/null
+++ b/speech-recognition/android/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ Just a simple string
+
diff --git a/speech-recognition/android/src/main/res/values/styles.xml b/speech-recognition/android/src/main/res/values/styles.xml
new file mode 100644
index 00000000..f11f7450
--- /dev/null
+++ b/speech-recognition/android/src/main/res/values/styles.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/speech-recognition/android/src/test/java/com/getcapacitor/ExampleUnitTest.java b/speech-recognition/android/src/test/java/com/getcapacitor/ExampleUnitTest.java
new file mode 100644
index 00000000..a0fed0cf
--- /dev/null
+++ b/speech-recognition/android/src/test/java/com/getcapacitor/ExampleUnitTest.java
@@ -0,0 +1,18 @@
+package com.getcapacitor;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+
+ @Test
+ public void addition_isCorrect() throws Exception {
+ assertEquals(4, 2 + 2);
+ }
+}
diff --git a/speech-recognition/dist/docs.json b/speech-recognition/dist/docs.json
new file mode 100644
index 00000000..072832e0
--- /dev/null
+++ b/speech-recognition/dist/docs.json
@@ -0,0 +1,439 @@
+{
+ "api": {
+ "name": "SpeechRecognitionPlugin",
+ "slug": "speechrecognitionplugin",
+ "docs": "",
+ "tags": [],
+ "methods": [
+ {
+ "name": "available",
+ "signature": "() => Promise<{ available: boolean; }>",
+ "parameters": [],
+ "returns": "Promise<{ available: boolean; }>",
+ "tags": [
+ {
+ "name": "param",
+ "text": "none"
+ },
+ {
+ "name": "returns",
+ "text": "available - boolean true/false for availability"
+ }
+ ],
+ "docs": "This method will check if speech recognition feature is available on the device.",
+ "complexTypes": [],
+ "slug": "available"
+ },
+ {
+ "name": "record",
+ "signature": "(options?: RecordOptions | undefined) => Promise",
+ "parameters": [
+ {
+ "name": "options",
+ "docs": "",
+ "type": "RecordOptions | undefined"
+ }
+ ],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "returns",
+ "text": "Promise with the path to the recorded file"
+ }
+ ],
+ "docs": "Start recording audio to a file",
+ "complexTypes": [
+ "RecordingResult",
+ "RecordOptions"
+ ],
+ "slug": "record"
+ },
+ {
+ "name": "startMicrophoneStream",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [],
+ "docs": "Start streaming microphone data for visualization",
+ "complexTypes": [
+ "RecordingResult"
+ ],
+ "slug": "startmicrophonestream"
+ },
+ {
+ "name": "stopMicrophoneStream",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [],
+ "docs": "Stop streaming microphone data",
+ "complexTypes": [
+ "RecordingResult"
+ ],
+ "slug": "stopmicrophonestream"
+ },
+ {
+ "name": "stopRecording",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [],
+ "docs": "",
+ "complexTypes": [],
+ "slug": "stoprecording"
+ },
+ {
+ "name": "start",
+ "signature": "(options?: UtteranceOptions | undefined) => Promise<{ matches?: string[]; }>",
+ "parameters": [
+ {
+ "name": "options",
+ "docs": "",
+ "type": "UtteranceOptions | undefined"
+ }
+ ],
+ "returns": "Promise<{ matches?: string[] | undefined; }>",
+ "tags": [
+ {
+ "name": "param",
+ "text": "options"
+ },
+ {
+ "name": "returns",
+ "text": "void or array of string results"
+ }
+ ],
+ "docs": "This method will start to listen for utterance.\n\nif `partialResults` is `true`, the function respond directly without result and\nevent `partialResults` will be emit for each partial result, until stopped.",
+ "complexTypes": [
+ "UtteranceOptions"
+ ],
+ "slug": "start"
+ },
+ {
+ "name": "stop",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "param",
+ "text": "none"
+ },
+ {
+ "name": "returns",
+ "text": "void"
+ }
+ ],
+ "docs": "This method will stop listening for utterance",
+ "complexTypes": [],
+ "slug": "stop"
+ },
+ {
+ "name": "getSupportedLanguages",
+ "signature": "() => Promise<{ languages: any[]; }>",
+ "parameters": [],
+ "returns": "Promise<{ languages: any[]; }>",
+ "tags": [
+ {
+ "name": "param",
+ "text": "none"
+ },
+ {
+ "name": "returns",
+ "text": "languages - array string of languages"
+ }
+ ],
+ "docs": "This method will return list of languages supported by the speech recognizer.\n\nIt's not available on Android 13 and newer.",
+ "complexTypes": [],
+ "slug": "getsupportedlanguages"
+ },
+ {
+ "name": "isListening",
+ "signature": "() => Promise<{ listening: boolean; }>",
+ "parameters": [],
+ "returns": "Promise<{ listening: boolean; }>",
+ "tags": [
+ {
+ "name": "param",
+ "text": "none"
+ },
+ {
+ "name": "returns",
+ "text": "boolean true/false if speech recognition is currently listening"
+ },
+ {
+ "name": "since",
+ "text": "5.1.0"
+ }
+ ],
+ "docs": "This method will check if speech recognition is listening.",
+ "complexTypes": [],
+ "slug": "islistening"
+ },
+ {
+ "name": "checkPermissions",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "since",
+ "text": "5.0.0"
+ }
+ ],
+ "docs": "Check the speech recognition permission.",
+ "complexTypes": [
+ "PermissionStatus"
+ ],
+ "slug": "checkpermissions"
+ },
+ {
+ "name": "requestPermissions",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "since",
+ "text": "5.0.0"
+ }
+ ],
+ "docs": "Request the speech recognition permission.",
+ "complexTypes": [
+ "PermissionStatus"
+ ],
+ "slug": "requestpermissions"
+ },
+ {
+ "name": "addListener",
+ "signature": "(eventName: 'partialResults', listenerFunc: (data: { matches: string[]; }) => void) => Promise",
+ "parameters": [
+ {
+ "name": "eventName",
+ "docs": "",
+ "type": "'partialResults'"
+ },
+ {
+ "name": "listenerFunc",
+ "docs": "",
+ "type": "(data: { matches: string[]; }) => void"
+ }
+ ],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "since",
+ "text": "2.0.2"
+ }
+ ],
+ "docs": "Called when partialResults set to true and result received.\n\nOn Android it doesn't work if popup is true.\n\nProvides partial result.",
+ "complexTypes": [
+ "PluginListenerHandle"
+ ],
+ "slug": "addlistenerpartialresults-"
+ },
+ {
+ "name": "addListener",
+ "signature": "(eventName: 'listeningState', listenerFunc: (data: { status: 'started' | 'stopped'; }) => void) => Promise",
+ "parameters": [
+ {
+ "name": "eventName",
+ "docs": "",
+ "type": "'listeningState'"
+ },
+ {
+ "name": "listenerFunc",
+ "docs": "",
+ "type": "(data: { status: 'started' | 'stopped'; }) => void"
+ }
+ ],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "since",
+ "text": "5.1.0"
+ }
+ ],
+ "docs": "Called when listening state changed.",
+ "complexTypes": [
+ "PluginListenerHandle"
+ ],
+ "slug": "addlistenerlisteningstate-"
+ },
+ {
+ "name": "removeAllListeners",
+ "signature": "() => Promise",
+ "parameters": [],
+ "returns": "Promise",
+ "tags": [
+ {
+ "name": "since",
+ "text": "4.0.0"
+ }
+ ],
+ "docs": "Remove all the listeners that are attached to this plugin.",
+ "complexTypes": [],
+ "slug": "removealllisteners"
+ }
+ ],
+ "properties": []
+ },
+ "interfaces": [
+ {
+ "name": "RecordingResult",
+ "slug": "recordingresult",
+ "docs": "",
+ "tags": [],
+ "methods": [],
+ "properties": [
+ {
+ "name": "path",
+ "tags": [],
+ "docs": "Path to the recorded audio file",
+ "complexTypes": [],
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "tags": [],
+ "docs": "",
+ "complexTypes": [],
+ "type": "'started' | 'stopped' | undefined"
+ }
+ ]
+ },
+ {
+ "name": "RecordOptions",
+ "slug": "recordoptions",
+ "docs": "",
+ "tags": [],
+ "methods": [],
+ "properties": [
+ {
+ "name": "fileName",
+ "tags": [],
+ "docs": "",
+ "complexTypes": [],
+ "type": "string | undefined"
+ },
+ {
+ "name": "outputPath",
+ "tags": [],
+ "docs": "",
+ "complexTypes": [],
+ "type": "string | undefined"
+ }
+ ]
+ },
+ {
+ "name": "UtteranceOptions",
+ "slug": "utteranceoptions",
+ "docs": "",
+ "tags": [],
+ "methods": [],
+ "properties": [
+ {
+ "name": "language",
+ "tags": [],
+ "docs": "key returned from `getSupportedLanguages()`",
+ "complexTypes": [],
+ "type": "string | undefined"
+ },
+ {
+ "name": "maxResults",
+ "tags": [],
+ "docs": "maximum number of results to return (5 is max)",
+ "complexTypes": [],
+ "type": "number | undefined"
+ },
+ {
+ "name": "prompt",
+ "tags": [],
+ "docs": "prompt message to display on popup (Android only)",
+ "complexTypes": [],
+ "type": "string | undefined"
+ },
+ {
+ "name": "popup",
+ "tags": [],
+ "docs": "display popup window when listening for utterance (Android only)",
+ "complexTypes": [],
+ "type": "boolean | undefined"
+ },
+ {
+ "name": "partialResults",
+ "tags": [],
+ "docs": "return partial results if found",
+ "complexTypes": [],
+ "type": "boolean | undefined"
+ }
+ ]
+ },
+ {
+ "name": "PermissionStatus",
+ "slug": "permissionstatus",
+ "docs": "",
+ "tags": [],
+ "methods": [],
+ "properties": [
+ {
+ "name": "speechRecognition",
+ "tags": [
+ {
+ "text": "5.0.0",
+ "name": "since"
+ }
+ ],
+ "docs": "Permission state for speechRecognition alias.\n\nOn Android it requests/checks RECORD_AUDIO permission\n\nOn iOS it requests/checks the speech recognition and microphone permissions.",
+ "complexTypes": [
+ "PermissionState"
+ ],
+ "type": "PermissionState"
+ }
+ ]
+ },
+ {
+ "name": "PluginListenerHandle",
+ "slug": "pluginlistenerhandle",
+ "docs": "",
+ "tags": [],
+ "methods": [],
+ "properties": [
+ {
+ "name": "remove",
+ "tags": [],
+ "docs": "",
+ "complexTypes": [],
+ "type": "() => Promise"
+ }
+ ]
+ }
+ ],
+ "enums": [],
+ "typeAliases": [
+ {
+ "name": "PermissionState",
+ "slug": "permissionstate",
+ "docs": "",
+ "types": [
+ {
+ "text": "'prompt'",
+ "complexTypes": []
+ },
+ {
+ "text": "'prompt-with-rationale'",
+ "complexTypes": []
+ },
+ {
+ "text": "'granted'",
+ "complexTypes": []
+ },
+ {
+ "text": "'denied'",
+ "complexTypes": []
+ }
+ ]
+ }
+ ],
+ "pluginConfigs": []
+}
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/definitions.d.ts b/speech-recognition/dist/esm/definitions.d.ts
new file mode 100644
index 00000000..3ab80277
--- /dev/null
+++ b/speech-recognition/dist/esm/definitions.d.ts
@@ -0,0 +1,153 @@
+import type { PermissionState, PluginListenerHandle } from '@capacitor/core';
+export interface PermissionStatus {
+ /**
+ * Permission state for speechRecognition alias.
+ *
+ * On Android it requests/checks RECORD_AUDIO permission
+ *
+ * On iOS it requests/checks the speech recognition and microphone permissions.
+ *
+ * @since 5.0.0
+ */
+ speechRecognition: PermissionState;
+}
+export interface RecordOptions {
+ fileName?: string;
+ outputPath?: string;
+}
+export interface RecordingResult {
+ /**
+ * Path to the recorded audio file
+ */
+ path: string;
+ status?: 'started' | 'stopped';
+}
+export interface AudioData {
+ buffer: number[];
+}
+export interface SpeechRecognitionPlugin {
+ /**
+ * This method will check if speech recognition feature is available on the device.
+ * @param none
+ * @returns available - boolean true/false for availability
+ */
+ available(): Promise<{
+ available: boolean;
+ }>;
+ /**
+ * Start recording audio to a file
+ * @returns Promise with the path to the recorded file
+ */
+ record(options?: RecordOptions): Promise;
+ /**
+ * Start streaming microphone data for visualization
+ */
+ startMicrophoneStream(): Promise;
+ /**
+ * Stop streaming microphone data
+ */
+ stopMicrophoneStream(): Promise; /**
+ * Stop the current recording
+ * @returns Promise that resolves when recording is stopped
+ */
+ stopRecording(): Promise;
+ /**
+ * This method will start to listen for utterance.
+ *
+ * if `partialResults` is `true`, the function respond directly without result and
+ * event `partialResults` will be emit for each partial result, until stopped.
+ *
+ * @param options
+ * @returns void or array of string results
+ */
+ start(options?: UtteranceOptions): Promise<{
+ matches?: string[];
+ }>;
+ /**
+ * This method will stop listening for utterance
+ * @param none
+ * @returns void
+ */
+ stop(): Promise;
+ /**
+ * This method will return list of languages supported by the speech recognizer.
+ *
+ * It's not available on Android 13 and newer.
+ *
+ * @param none
+ * @returns languages - array string of languages
+ */
+ getSupportedLanguages(): Promise<{
+ languages: any[];
+ }>;
+ /**
+ * This method will check if speech recognition is listening.
+ * @param none
+ * @returns boolean true/false if speech recognition is currently listening
+ *
+ * @since 5.1.0
+ */
+ isListening(): Promise<{
+ listening: boolean;
+ }>;
+ /**
+ * Check the speech recognition permission.
+ *
+ * @since 5.0.0
+ */
+ checkPermissions(): Promise;
+ /**
+ * Request the speech recognition permission.
+ *
+ * @since 5.0.0
+ */
+ requestPermissions(): Promise;
+ /**
+ * Called when partialResults set to true and result received.
+ *
+ * On Android it doesn't work if popup is true.
+ *
+ * Provides partial result.
+ *
+ * @since 2.0.2
+ */
+ addListener(eventName: 'partialResults', listenerFunc: (data: {
+ matches: string[];
+ }) => void): Promise;
+ /**
+ * Called when listening state changed.
+ *
+ * @since 5.1.0
+ */
+ addListener(eventName: 'listeningState', listenerFunc: (data: {
+ status: 'started' | 'stopped';
+ }) => void): Promise;
+ /**
+ * Remove all the listeners that are attached to this plugin.
+ *
+ * @since 4.0.0
+ */
+ removeAllListeners(): Promise;
+}
+export interface UtteranceOptions {
+ /**
+ * key returned from `getSupportedLanguages()`
+ */
+ language?: string;
+ /**
+ * maximum number of results to return (5 is max)
+ */
+ maxResults?: number;
+ /**
+ * prompt message to display on popup (Android only)
+ */
+ prompt?: string;
+ /**
+ * display popup window when listening for utterance (Android only)
+ */
+ popup?: boolean;
+ /**
+ * return partial results if found
+ */
+ partialResults?: boolean;
+}
diff --git a/speech-recognition/dist/esm/definitions.js b/speech-recognition/dist/esm/definitions.js
new file mode 100644
index 00000000..497acb52
--- /dev/null
+++ b/speech-recognition/dist/esm/definitions.js
@@ -0,0 +1,2 @@
+export {};
+//# sourceMappingURL=definitions.js.map
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/definitions.js.map b/speech-recognition/dist/esm/definitions.js.map
new file mode 100644
index 00000000..6cd49d91
--- /dev/null
+++ b/speech-recognition/dist/esm/definitions.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PermissionState, PluginListenerHandle } from '@capacitor/core';\n\nexport interface PermissionStatus {\n /**\n * Permission state for speechRecognition alias.\n *\n * On Android it requests/checks RECORD_AUDIO permission\n *\n * On iOS it requests/checks the speech recognition and microphone permissions.\n *\n * @since 5.0.0\n */\n speechRecognition: PermissionState;\n}\n\nexport interface RecordOptions {\n fileName?: string;\n outputPath?: string;\n}\n\nexport interface RecordingResult {\n /**\n * Path to the recorded audio file\n */\n path: string;\n status?: 'started' | 'stopped';\n}\n\nexport interface AudioData {\n buffer: number[];\n}\n\n\nexport interface SpeechRecognitionPlugin {\n /**\n * This method will check if speech recognition feature is available on the device.\n * @param none\n * @returns available - boolean true/false for availability\n */\n available(): Promise<{ available: boolean }>;\n /**\n * Start recording audio to a file\n * @returns Promise with the path to the recorded file\n */\n record(options?: RecordOptions): Promise;\n\n/**\n * Start streaming microphone data for visualization\n */\n startMicrophoneStream(): Promise;\n\n /**\n * Stop streaming microphone data\n */\n stopMicrophoneStream(): Promise; /**\n * Stop the current recording\n * @returns Promise that resolves when recording is stopped\n */\n stopRecording(): Promise;\n /**\n * This method will start to listen for utterance.\n *\n * if `partialResults` is `true`, the function respond directly without result and\n * event `partialResults` will be emit for each partial result, until stopped.\n *\n * @param options\n * @returns void or array of string results\n */\n start(options?: UtteranceOptions): Promise<{ matches?: string[] }>;\n /**\n * This method will stop listening for utterance\n * @param none\n * @returns void\n */\n stop(): Promise;\n /**\n * This method will return list of languages supported by the speech recognizer.\n *\n * It's not available on Android 13 and newer.\n *\n * @param none\n * @returns languages - array string of languages\n */\n getSupportedLanguages(): Promise<{ languages: any[] }>;\n /**\n * This method will check if speech recognition is listening.\n * @param none\n * @returns boolean true/false if speech recognition is currently listening\n *\n * @since 5.1.0\n */\n isListening(): Promise<{ listening: boolean }>;\n /**\n * Check the speech recognition permission.\n *\n * @since 5.0.0\n */\n checkPermissions(): Promise;\n /**\n * Request the speech recognition permission.\n *\n * @since 5.0.0\n */\n requestPermissions(): Promise;\n /**\n * Called when partialResults set to true and result received.\n *\n * On Android it doesn't work if popup is true.\n *\n * Provides partial result.\n *\n * @since 2.0.2\n */\n addListener(\n eventName: 'partialResults',\n listenerFunc: (data: { matches: string[] }) => void,\n ): Promise;\n\n /**\n * Called when listening state changed.\n *\n * @since 5.1.0\n */\n addListener(\n eventName: 'listeningState',\n listenerFunc: (data: { status: 'started' | 'stopped' }) => void,\n ): Promise;\n /**\n * Remove all the listeners that are attached to this plugin.\n *\n * @since 4.0.0\n */\n removeAllListeners(): Promise;\n}\n\nexport interface UtteranceOptions {\n /**\n * key returned from `getSupportedLanguages()`\n */\n language?: string;\n /**\n * maximum number of results to return (5 is max)\n */\n maxResults?: number;\n /**\n * prompt message to display on popup (Android only)\n */\n prompt?: string;\n /**\n * display popup window when listening for utterance (Android only)\n */\n popup?: boolean;\n /**\n * return partial results if found\n */\n partialResults?: boolean;\n}\n"]}
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/index.d.ts b/speech-recognition/dist/esm/index.d.ts
new file mode 100644
index 00000000..6482fc3e
--- /dev/null
+++ b/speech-recognition/dist/esm/index.d.ts
@@ -0,0 +1,4 @@
+import type { SpeechRecognitionPlugin } from './definitions';
+declare const SpeechRecognition: SpeechRecognitionPlugin;
+export * from './definitions';
+export { SpeechRecognition };
diff --git a/speech-recognition/dist/esm/index.js b/speech-recognition/dist/esm/index.js
new file mode 100644
index 00000000..a8237554
--- /dev/null
+++ b/speech-recognition/dist/esm/index.js
@@ -0,0 +1,7 @@
+import { registerPlugin } from '@capacitor/core';
+const SpeechRecognition = registerPlugin('SpeechRecognition', {
+ web: () => import('./web').then(m => new m.SpeechRecognitionWeb()),
+});
+export * from './definitions';
+export { SpeechRecognition };
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/index.js.map b/speech-recognition/dist/esm/index.js.map
new file mode 100644
index 00000000..ca7faeb0
--- /dev/null
+++ b/speech-recognition/dist/esm/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,iBAAiB,GAAG,cAAc,CACtC,mBAAmB,EACnB;IACE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC;CACnE,CACF,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type { SpeechRecognitionPlugin } from './definitions';\n\nconst SpeechRecognition = registerPlugin(\n 'SpeechRecognition',\n {\n web: () => import('./web').then(m => new m.SpeechRecognitionWeb()),\n },\n);\n\nexport * from './definitions';\nexport { SpeechRecognition };\n"]}
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/web.d.ts b/speech-recognition/dist/esm/web.d.ts
new file mode 100644
index 00000000..285ee73e
--- /dev/null
+++ b/speech-recognition/dist/esm/web.d.ts
@@ -0,0 +1,29 @@
+import { WebPlugin } from '@capacitor/core';
+import type { PermissionStatus, SpeechRecognitionPlugin, UtteranceOptions, RecordingResult, RecordOptions } from './definitions';
+export declare class SpeechRecognitionWeb extends WebPlugin implements SpeechRecognitionPlugin {
+ available(): Promise<{
+ available: boolean;
+ }>;
+ startMicrophoneStream(): Promise;
+ stopMicrophoneStream(): Promise;
+ record(_options?: RecordOptions): Promise;
+ stopRecording(): Promise;
+ start(_options?: UtteranceOptions): Promise<{
+ matches?: string[];
+ }>;
+ stop(): Promise;
+ getSupportedLanguages(): Promise<{
+ languages: any[];
+ }>;
+ hasPermission(): Promise<{
+ permission: boolean;
+ }>;
+ isListening(): Promise<{
+ listening: boolean;
+ }>;
+ requestPermission(): Promise;
+ checkPermissions(): Promise;
+ requestPermissions(): Promise;
+}
+declare const SpeechRecognition: SpeechRecognitionWeb;
+export { SpeechRecognition };
diff --git a/speech-recognition/dist/esm/web.js b/speech-recognition/dist/esm/web.js
new file mode 100644
index 00000000..e629e916
--- /dev/null
+++ b/speech-recognition/dist/esm/web.js
@@ -0,0 +1,45 @@
+import { WebPlugin } from '@capacitor/core';
+export class SpeechRecognitionWeb extends WebPlugin {
+ available() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ async startMicrophoneStream() {
+ throw this.unimplemented('Not implemented on web.');
+ }
+ async stopMicrophoneStream() {
+ throw this.unimplemented('Not implemented on web.');
+ }
+ async record(_options) {
+ throw this.unimplemented('Not implemented on web.');
+ }
+ async stopRecording() {
+ throw this.unimplemented('Not implemented on web.');
+ }
+ start(_options) {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ stop() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ getSupportedLanguages() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ hasPermission() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ isListening() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ requestPermission() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ checkPermissions() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+ requestPermissions() {
+ throw this.unimplemented('Method not implemented on web.');
+ }
+}
+const SpeechRecognition = new SpeechRecognitionWeb();
+export { SpeechRecognition };
+//# sourceMappingURL=web.js.map
\ No newline at end of file
diff --git a/speech-recognition/dist/esm/web.js.map b/speech-recognition/dist/esm/web.js.map
new file mode 100644
index 00000000..7a18762d
--- /dev/null
+++ b/speech-recognition/dist/esm/web.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU5C,MAAM,OAAO,oBACX,SAAQ,SAAS;IAGjB,SAAS;QACP,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,QAAwB;QACnC,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,QAA2B;QAC/B,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI;QACF,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,qBAAqB;QACnB,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,aAAa;QACX,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,WAAW;QACT,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,iBAAiB;QACf,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,gBAAgB;QACd,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IACD,kBAAkB;QAChB,MAAM,IAAI,CAAC,aAAa,CAAC,gCAAgC,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,iBAAiB,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,CAAC","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n PermissionStatus,\n SpeechRecognitionPlugin,\n UtteranceOptions,\n RecordingResult,\n RecordOptions\n} from './definitions';\n\nexport class SpeechRecognitionWeb\n extends WebPlugin\n implements SpeechRecognitionPlugin\n{\n available(): Promise<{ available: boolean }> {\n throw this.unimplemented('Method not implemented on web.');\n }\n async startMicrophoneStream(): Promise {\n throw this.unimplemented('Not implemented on web.');\n }\n async stopMicrophoneStream(): Promise {\n throw this.unimplemented('Not implemented on web.');\n }\n async record(_options?: RecordOptions): Promise {\n throw this.unimplemented('Not implemented on web.');\n }\n\n async stopRecording(): Promise {\n throw this.unimplemented('Not implemented on web.');\n }\n start(_options?: UtteranceOptions): Promise<{ matches?: string[] }> {\n throw this.unimplemented('Method not implemented on web.');\n }\n stop(): Promise {\n throw this.unimplemented('Method not implemented on web.');\n }\n getSupportedLanguages(): Promise<{ languages: any[] }> {\n throw this.unimplemented('Method not implemented on web.');\n }\n hasPermission(): Promise<{ permission: boolean }> {\n throw this.unimplemented('Method not implemented on web.');\n }\n isListening(): Promise<{ listening: boolean }> {\n throw this.unimplemented('Method not implemented on web.');\n }\n requestPermission(): Promise {\n throw this.unimplemented('Method not implemented on web.');\n }\n checkPermissions(): Promise {\n throw this.unimplemented('Method not implemented on web.');\n }\n requestPermissions(): Promise {\n throw this.unimplemented('Method not implemented on web.');\n }\n}\n\nconst SpeechRecognition = new SpeechRecognitionWeb();\n\nexport { SpeechRecognition };\n"]}
\ No newline at end of file
diff --git a/speech-recognition/ios/Plugin.xcodeproj/project.pbxproj b/speech-recognition/ios/Plugin.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..cf1aad8a
--- /dev/null
+++ b/speech-recognition/ios/Plugin.xcodeproj/project.pbxproj
@@ -0,0 +1,556 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 48;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 03FC29A292ACC40490383A1F /* Pods_Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */; };
+ 20C0B05DCFC8E3958A738AF2 /* Pods_PluginTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6753A823D3815DB436415E3 /* Pods_PluginTests.framework */; };
+ 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFF88201F53D600D50D53 /* Plugin.framework */; };
+ 50ADFF97201F53D600D50D53 /* PluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFF96201F53D600D50D53 /* PluginTests.swift */; };
+ 50ADFF99201F53D600D50D53 /* Plugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 50ADFF8B201F53D600D50D53 /* Plugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50ADFFA52020D75100D50D53 /* Capacitor.framework */; };
+ 50ADFFA82020EE4F00D50D53 /* Plugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 50ADFFA72020EE4F00D50D53 /* Plugin.m */; };
+ 50E1A94820377CB70090CE1A /* Plugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E1A94720377CB70090CE1A /* Plugin.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 50ADFF93201F53D600D50D53 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 50ADFF7F201F53D600D50D53 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 50ADFF87201F53D600D50D53;
+ remoteInfo = Plugin;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 50ADFF88201F53D600D50D53 /* Plugin.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 50ADFF8B201F53D600D50D53 /* Plugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Plugin.h; sourceTree = ""; };
+ 50ADFF8C201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 50ADFF91201F53D600D50D53 /* PluginTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PluginTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 50ADFF96201F53D600D50D53 /* PluginTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PluginTests.swift; sourceTree = ""; };
+ 50ADFF98201F53D600D50D53 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 50ADFFA52020D75100D50D53 /* Capacitor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 50ADFFA72020EE4F00D50D53 /* Plugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Plugin.m; sourceTree = ""; };
+ 50E1A94720377CB70090CE1A /* Plugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Plugin.swift; sourceTree = ""; };
+ 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig"; sourceTree = ""; };
+ 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Plugin.release.xcconfig"; path = "Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig"; sourceTree = ""; };
+ 96ED1B6440D6672E406C8D19 /* Pods-PluginTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PluginTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.debug.xcconfig"; sourceTree = ""; };
+ F65BB2953ECE002E1EF3E424 /* Pods-PluginTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PluginTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.release.xcconfig"; sourceTree = ""; };
+ F6753A823D3815DB436415E3 /* Pods_PluginTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PluginTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 50ADFF84201F53D600D50D53 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 50ADFFA42020D75100D50D53 /* Capacitor.framework in Frameworks */,
+ 03FC29A292ACC40490383A1F /* Pods_Plugin.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 50ADFF8E201F53D600D50D53 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 50ADFF92201F53D600D50D53 /* Plugin.framework in Frameworks */,
+ 20C0B05DCFC8E3958A738AF2 /* Pods_PluginTests.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 50ADFF7E201F53D600D50D53 = {
+ isa = PBXGroup;
+ children = (
+ 50ADFF8A201F53D600D50D53 /* Plugin */,
+ 50ADFF95201F53D600D50D53 /* PluginTests */,
+ 50ADFF89201F53D600D50D53 /* Products */,
+ 8C8E7744173064A9F6D438E3 /* Pods */,
+ A797B9EFA3DCEFEA1FBB66A9 /* Frameworks */,
+ );
+ sourceTree = "";
+ };
+ 50ADFF89201F53D600D50D53 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 50ADFF88201F53D600D50D53 /* Plugin.framework */,
+ 50ADFF91201F53D600D50D53 /* PluginTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 50ADFF8A201F53D600D50D53 /* Plugin */ = {
+ isa = PBXGroup;
+ children = (
+ 50E1A94720377CB70090CE1A /* Plugin.swift */,
+ 50ADFF8B201F53D600D50D53 /* Plugin.h */,
+ 50ADFFA72020EE4F00D50D53 /* Plugin.m */,
+ 50ADFF8C201F53D600D50D53 /* Info.plist */,
+ );
+ path = Plugin;
+ sourceTree = "";
+ };
+ 50ADFF95201F53D600D50D53 /* PluginTests */ = {
+ isa = PBXGroup;
+ children = (
+ 50ADFF96201F53D600D50D53 /* PluginTests.swift */,
+ 50ADFF98201F53D600D50D53 /* Info.plist */,
+ );
+ path = PluginTests;
+ sourceTree = "";
+ };
+ 8C8E7744173064A9F6D438E3 /* Pods */ = {
+ isa = PBXGroup;
+ children = (
+ 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */,
+ 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */,
+ 96ED1B6440D6672E406C8D19 /* Pods-PluginTests.debug.xcconfig */,
+ F65BB2953ECE002E1EF3E424 /* Pods-PluginTests.release.xcconfig */,
+ );
+ name = Pods;
+ sourceTree = "";
+ };
+ A797B9EFA3DCEFEA1FBB66A9 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 50ADFFA52020D75100D50D53 /* Capacitor.framework */,
+ 3B2A61DA5A1F2DD4F959604D /* Pods_Plugin.framework */,
+ F6753A823D3815DB436415E3 /* Pods_PluginTests.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 50ADFF85201F53D600D50D53 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 50ADFF99201F53D600D50D53 /* Plugin.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 50ADFF87201F53D600D50D53 /* Plugin */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 50ADFF9C201F53D600D50D53 /* Build configuration list for PBXNativeTarget "Plugin" */;
+ buildPhases = (
+ AB5B3E54B4E897F32C2279DA /* [CP] Check Pods Manifest.lock */,
+ 50ADFF83201F53D600D50D53 /* Sources */,
+ 50ADFF84201F53D600D50D53 /* Frameworks */,
+ 50ADFF85201F53D600D50D53 /* Headers */,
+ 50ADFF86201F53D600D50D53 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Plugin;
+ productName = Plugin;
+ productReference = 50ADFF88201F53D600D50D53 /* Plugin.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ 50ADFF90201F53D600D50D53 /* PluginTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 50ADFF9F201F53D600D50D53 /* Build configuration list for PBXNativeTarget "PluginTests" */;
+ buildPhases = (
+ 0596884F929ED6F1DE134961 /* [CP] Check Pods Manifest.lock */,
+ 50ADFF8D201F53D600D50D53 /* Sources */,
+ 50ADFF8E201F53D600D50D53 /* Frameworks */,
+ 50ADFF8F201F53D600D50D53 /* Resources */,
+ CCA81D3B7E26D0D727D24C84 /* [CP] Embed Pods Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 50ADFF94201F53D600D50D53 /* PBXTargetDependency */,
+ );
+ name = PluginTests;
+ productName = PluginTests;
+ productReference = 50ADFF91201F53D600D50D53 /* PluginTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 50ADFF7F201F53D600D50D53 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastSwiftUpdateCheck = 0920;
+ LastUpgradeCheck = 0920;
+ ORGANIZATIONNAME = "Max Lynch";
+ TargetAttributes = {
+ 50ADFF87201F53D600D50D53 = {
+ CreatedOnToolsVersion = 9.2;
+ LastSwiftMigration = 1100;
+ ProvisioningStyle = Automatic;
+ };
+ 50ADFF90201F53D600D50D53 = {
+ CreatedOnToolsVersion = 9.2;
+ LastSwiftMigration = 1100;
+ ProvisioningStyle = Automatic;
+ };
+ };
+ };
+ buildConfigurationList = 50ADFF82201F53D600D50D53 /* Build configuration list for PBXProject "Plugin" */;
+ compatibilityVersion = "Xcode 8.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 50ADFF7E201F53D600D50D53;
+ productRefGroup = 50ADFF89201F53D600D50D53 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 50ADFF87201F53D600D50D53 /* Plugin */,
+ 50ADFF90201F53D600D50D53 /* PluginTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 50ADFF86201F53D600D50D53 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 50ADFF8F201F53D600D50D53 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 0596884F929ED6F1DE134961 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-PluginTests-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ AB5B3E54B4E897F32C2279DA /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Plugin-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
+ CCA81D3B7E26D0D727D24C84 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-PluginTests/Pods-PluginTests-frameworks.sh",
+ "${BUILT_PRODUCTS_DIR}/Capacitor/Capacitor.framework",
+ "${BUILT_PRODUCTS_DIR}/CapacitorCordova/Cordova.framework",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Capacitor.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Cordova.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PluginTests/Pods-PluginTests-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 50ADFF83201F53D600D50D53 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 50E1A94820377CB70090CE1A /* Plugin.swift in Sources */,
+ 50ADFFA82020EE4F00D50D53 /* Plugin.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 50ADFF8D201F53D600D50D53 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 50ADFF97201F53D600D50D53 /* PluginTests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 50ADFF94201F53D600D50D53 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 50ADFF87201F53D600D50D53 /* Plugin */;
+ targetProxy = 50ADFF93201F53D600D50D53 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 50ADFF9A201F53D600D50D53 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 50ADFF9B201F53D600D50D53 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 50ADFF9D201F53D600D50D53 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 5E23F77F099397094342571A /* Pods-Plugin.debug.xcconfig */;
+ buildSettings = {
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Automatic;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Plugin/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)\n$(FRAMEWORK_SEARCH_PATHS)";
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SKIP_INSTALL = YES;
+ SUPPORTS_MACCATALYST = NO;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 50ADFF9E201F53D600D50D53 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 91781294A431A2A7CC6EB714 /* Pods-Plugin.release.xcconfig */;
+ buildSettings = {
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_IDENTITY = "";
+ CODE_SIGN_STYLE = Automatic;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = Plugin/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks $(FRAMEWORK_SEARCH_PATHS)";
+ ONLY_ACTIVE_ARCH = NO;
+ PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.Plugin;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SKIP_INSTALL = YES;
+ SUPPORTS_MACCATALYST = NO;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+ 50ADFFA0201F53D600D50D53 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 96ED1B6440D6672E406C8D19 /* Pods-PluginTests.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ CODE_SIGN_STYLE = Automatic;
+ INFOPLIST_FILE = PluginTests/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.PluginTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 50ADFFA1201F53D600D50D53 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = F65BB2953ECE002E1EF3E424 /* Pods-PluginTests.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
+ CODE_SIGN_STYLE = Automatic;
+ INFOPLIST_FILE = PluginTests/Info.plist;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = com.getcapacitor.PluginTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 50ADFF82201F53D600D50D53 /* Build configuration list for PBXProject "Plugin" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 50ADFF9A201F53D600D50D53 /* Debug */,
+ 50ADFF9B201F53D600D50D53 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 50ADFF9C201F53D600D50D53 /* Build configuration list for PBXNativeTarget "Plugin" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 50ADFF9D201F53D600D50D53 /* Debug */,
+ 50ADFF9E201F53D600D50D53 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 50ADFF9F201F53D600D50D53 /* Build configuration list for PBXNativeTarget "PluginTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 50ADFFA0201F53D600D50D53 /* Debug */,
+ 50ADFFA1201F53D600D50D53 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 50ADFF7F201F53D600D50D53 /* Project object */;
+}
diff --git a/speech-recognition/ios/Plugin.xcworkspace/contents.xcworkspacedata b/speech-recognition/ios/Plugin.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..afad624e
--- /dev/null
+++ b/speech-recognition/ios/Plugin.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/speech-recognition/ios/Plugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/speech-recognition/ios/Plugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/speech-recognition/ios/Plugin.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/speech-recognition/ios/Plugin/Info.plist b/speech-recognition/ios/Plugin/Info.plist
new file mode 100644
index 00000000..4bbbee6a
--- /dev/null
+++ b/speech-recognition/ios/Plugin/Info.plist
@@ -0,0 +1,42 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ NSMicrophoneUsageDescription
+ Privacy - Speech Recording for Transcription and audio visualization
+ LSApplicationCategoryType
+
+ NSSpeechRecognitionUsageDescription
+ Privacy - Microphone Usage Description
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+ NSPrincipalClass
+
+ NSPrivacyAccessedAPITypes
+
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryFileTimestamp
+ NSPrivacyAccessedAPITypeReasons
+
+ C617.1
+
+
+
+
+
diff --git a/speech-recognition/ios/Plugin/Plugin.h b/speech-recognition/ios/Plugin/Plugin.h
new file mode 100644
index 00000000..f2bd9e0b
--- /dev/null
+++ b/speech-recognition/ios/Plugin/Plugin.h
@@ -0,0 +1,10 @@
+#import
+
+//! Project version number for Plugin.
+FOUNDATION_EXPORT double PluginVersionNumber;
+
+//! Project version string for Plugin.
+FOUNDATION_EXPORT const unsigned char PluginVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
diff --git a/speech-recognition/ios/Plugin/Plugin.m b/speech-recognition/ios/Plugin/Plugin.m
new file mode 100644
index 00000000..5e2e0c18
--- /dev/null
+++ b/speech-recognition/ios/Plugin/Plugin.m
@@ -0,0 +1,21 @@
+#import
+#import
+
+// Define the plugin using the CAP_PLUGIN Macro, and
+// each method the plugin supports using the CAP_PLUGIN_METHOD macro.
+CAP_PLUGIN(SpeechRecognition, "SpeechRecognition",
+ CAP_PLUGIN_METHOD(available, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(record, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(stopRecording, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(startMicrophoneStream, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(stopMicrophoneStream, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(start, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(stop, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(getSupportedLanguages, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(hasPermission, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(isListening, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(requestPermission, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(checkPermissions, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(requestPermissions, CAPPluginReturnPromise);
+ CAP_PLUGIN_METHOD(removeAllListeners, CAPPluginReturnPromise);
+)
diff --git a/speech-recognition/ios/Plugin/Plugin.swift b/speech-recognition/ios/Plugin/Plugin.swift
new file mode 100644
index 00000000..eb12659d
--- /dev/null
+++ b/speech-recognition/ios/Plugin/Plugin.swift
@@ -0,0 +1,324 @@
+import Capacitor
+import Foundation
+import Speech
+
+extension AVAudioPCMBuffer {
+ func toArray() -> [Float] {
+ let ptr = self.floatChannelData?[0]
+ let buf = UnsafeBufferPointer(start: ptr, count: Int(self.frameLength))
+ return Array(buf)
+ }
+}
+
+@objc(SpeechRecognition)
+public class SpeechRecognition: CAPPlugin {
+
+ let defaultMatches = 5
+ let messageMissingPermission = "Missing permission"
+ let messageAccessDenied = "User denied access to speech recognition"
+ let messageRestricted = "Speech recognition restricted on this device"
+ let messageNotDetermined = "Speech recognition not determined on this device"
+ let messageAccessDeniedMicrophone = "User denied access to microphone"
+ let messageOngoing = "Ongoing speech recognition"
+ let messageUnknown = "Unknown error occured"
+
+ private var speechRecognizer: SFSpeechRecognizer?
+ private var audioEngine: AVAudioEngine?
+ private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest?
+ private var recognitionTask: SFSpeechRecognitionTask?
+ private var audioRecorder: AVAudioRecorder?
+
+ private var microphoneNode: AVAudioInputNode?
+
+ @objc func startMicrophoneStream(_ call: CAPPluginCall) {
+ let audioSession = AVAudioSession.sharedInstance()
+
+ do {
+ try audioSession.setCategory(.playAndRecord, options: .defaultToSpeaker)
+ try audioSession.setActive(true)
+
+ if audioEngine == nil {
+ audioEngine = AVAudioEngine()
+ }
+
+ guard let audioEngine = audioEngine else {
+ call.reject("Failed to create audio engine")
+ return
+ }
+
+ microphoneNode = audioEngine.inputNode
+ let format = microphoneNode?.outputFormat(forBus: 0)
+
+ // Install tap on microphone node to get real-time audio data
+ microphoneNode?.installTap(onBus: 0, bufferSize: 1024, format: format) {
+ (buffer, time) in
+ // Send audio buffer data to JavaScript
+ let data = ["buffer": buffer.toArray()]
+ self.notifyListeners("audioData", data: data)
+ }
+
+ try audioEngine.start()
+ call.resolve()
+
+ } catch {
+ call.reject("Failed to start microphone: \(error.localizedDescription)")
+ }
+ }
+
+ @objc func stopMicrophoneStream(_ call: CAPPluginCall) {
+ if let node = microphoneNode {
+ node.removeTap(onBus: 0)
+ }
+
+ audioEngine?.stop()
+ microphoneNode = nil
+
+ call.resolve()
+ }
+
+ @objc func record(_ call: CAPPluginCall) {
+ let audioSession = AVAudioSession.sharedInstance()
+
+ do {
+ try audioSession.setCategory(.playAndRecord, options: .defaultToSpeaker)
+ try audioSession.setActive(true)
+
+ // Use Documents directory
+ let documentsPath = FileManager.default.urls(
+ for: .documentDirectory, in: .userDomainMask)[0]
+ let fileName = call.getString("fileName") ?? "recording.wav"
+ let audioFilename = documentsPath.appendingPathComponent(fileName)
+
+ // Create parent directory if it doesn't exist
+ try FileManager.default.createDirectory(
+ at: documentsPath, withIntermediateDirectories: true)
+
+ let settings: [String: Any] = [
+ AVFormatIDKey: Int(kAudioFormatLinearPCM),
+ AVSampleRateKey: 44100.0,
+ AVNumberOfChannelsKey: 1,
+ AVLinearPCMBitDepthKey: 16,
+ AVLinearPCMIsFloatKey: false,
+ AVLinearPCMIsBigEndianKey: false,
+ AVEncoderAudioQualityKey: AVAudioQuality.high.rawValue,
+ ]
+
+ // Log the file path for debugging
+ print("Recording to path: \(audioFilename.path)")
+
+ // Create and start the audio recorder
+ audioRecorder = try AVAudioRecorder(url: audioFilename, settings: settings)
+ audioRecorder?.record()
+
+ // Return the file path to the caller
+ call.resolve([
+ "path": audioFilename.path
+ ])
+
+ } catch {
+ call.reject("Failed to start recording: \(error.localizedDescription)")
+ }
+ }
+
+ @objc func stopRecording(_ call: CAPPluginCall) {
+ guard let recorder = audioRecorder, recorder.isRecording else {
+ call.reject("No active recording")
+ return
+ }
+
+ recorder.stop()
+ audioRecorder = nil
+ call.resolve()
+ }
+
+ @objc func available(_ call: CAPPluginCall) {
+ guard let recognizer = SFSpeechRecognizer() else {
+ call.resolve([
+ "available": false
+ ])
+ return
+ }
+ call.resolve([
+ "available": recognizer.isAvailable
+ ])
+ }
+
+ @objc func start(_ call: CAPPluginCall) {
+ if self.audioEngine != nil {
+ if self.audioEngine!.isRunning {
+ call.reject(self.messageOngoing)
+ return
+ }
+ }
+
+ let status: SFSpeechRecognizerAuthorizationStatus = SFSpeechRecognizer.authorizationStatus()
+ if status != SFSpeechRecognizerAuthorizationStatus.authorized {
+ call.reject(self.messageMissingPermission)
+ return
+ }
+
+ AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
+ if !granted {
+ call.reject(self.messageAccessDeniedMicrophone)
+ return
+ }
+
+ let language: String = call.getString("language") ?? "en-US"
+ let maxResults: Int = call.getInt("maxResults") ?? self.defaultMatches
+ let partialResults: Bool = call.getBool("partialResults") ?? false
+
+ if self.recognitionTask != nil {
+ self.recognitionTask?.cancel()
+ self.recognitionTask = nil
+ }
+
+ self.audioEngine = AVAudioEngine.init()
+ self.speechRecognizer = SFSpeechRecognizer.init(locale: Locale(identifier: language))
+
+ let audioSession: AVAudioSession = AVAudioSession.sharedInstance()
+ do {
+ try audioSession.setCategory(
+ AVAudioSession.Category.playAndRecord,
+ options: AVAudioSession.CategoryOptions.defaultToSpeaker)
+ try audioSession.setMode(AVAudioSession.Mode.default)
+ try audioSession.setActive(
+ true, options: AVAudioSession.SetActiveOptions.notifyOthersOnDeactivation)
+ } catch {
+
+ }
+
+ self.recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
+ self.recognitionRequest?.shouldReportPartialResults = partialResults
+
+ let inputNode: AVAudioInputNode = self.audioEngine!.inputNode
+ let format: AVAudioFormat = inputNode.outputFormat(forBus: 0)
+
+ self.recognitionTask = self.speechRecognizer?.recognitionTask(
+ with: self.recognitionRequest!,
+ resultHandler: { (result, error) in
+ if result != nil {
+ let resultArray: NSMutableArray = NSMutableArray()
+ var counter: Int = 0
+
+ for transcription: SFTranscription in result!.transcriptions {
+ if maxResults > 0 && counter < maxResults {
+ resultArray.add(transcription.formattedString)
+ }
+ counter += 1
+ }
+
+ if partialResults {
+ self.notifyListeners("partialResults", data: ["matches": resultArray])
+ } else {
+ call.resolve([
+ "matches": resultArray
+ ])
+ }
+
+ if result!.isFinal {
+ self.audioEngine!.stop()
+ self.audioEngine?.inputNode.removeTap(onBus: 0)
+ self.notifyListeners("listeningState", data: ["status": "stopped"])
+ self.recognitionTask = nil
+ self.recognitionRequest = nil
+ }
+ }
+
+ if error != nil {
+ self.audioEngine!.stop()
+ self.audioEngine?.inputNode.removeTap(onBus: 0)
+ self.recognitionRequest = nil
+ self.recognitionTask = nil
+ self.notifyListeners("listeningState", data: ["status": "stopped"])
+ call.reject(error!.localizedDescription)
+ }
+ })
+
+ inputNode.installTap(onBus: 0, bufferSize: 1024, format: format) {
+ (buffer: AVAudioPCMBuffer, _: AVAudioTime) in
+ self.recognitionRequest?.append(buffer)
+ }
+
+ self.audioEngine?.prepare()
+ do {
+ try self.audioEngine?.start()
+ self.notifyListeners("listeningState", data: ["status": "started"])
+ if partialResults {
+ call.resolve()
+ }
+ } catch {
+ call.reject(self.messageUnknown)
+ }
+ }
+ }
+
+ @objc func stop(_ call: CAPPluginCall) {
+ DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
+ if let engine = self.audioEngine, engine.isRunning {
+ engine.stop()
+ self.recognitionRequest?.endAudio()
+ self.notifyListeners("listeningState", data: ["status": "stopped"])
+ }
+ call.resolve()
+ }
+ }
+
+ @objc func isListening(_ call: CAPPluginCall) {
+ let isListening = self.audioEngine?.isRunning ?? false
+ call.resolve([
+ "listening": isListening
+ ])
+ }
+
+ @objc func getSupportedLanguages(_ call: CAPPluginCall) {
+ let supportedLanguages: Set! = SFSpeechRecognizer.supportedLocales() as Set
+ let languagesArr: NSMutableArray = NSMutableArray()
+
+ for lang: Locale in supportedLanguages {
+ languagesArr.add(lang.identifier)
+ }
+
+ call.resolve([
+ "languages": languagesArr
+ ])
+ }
+
+ @objc override public func checkPermissions(_ call: CAPPluginCall) {
+ let status: SFSpeechRecognizerAuthorizationStatus = SFSpeechRecognizer.authorizationStatus()
+ let permission: String
+ switch status {
+ case .authorized:
+ permission = "granted"
+ case .denied, .restricted:
+ permission = "denied"
+ case .notDetermined:
+ permission = "prompt"
+ @unknown default:
+ permission = "prompt"
+ }
+ call.resolve(["speechRecognition": permission])
+ }
+
+ @objc override public func requestPermissions(_ call: CAPPluginCall) {
+ SFSpeechRecognizer.requestAuthorization { (status: SFSpeechRecognizerAuthorizationStatus) in
+ DispatchQueue.main.async {
+ switch status {
+ case .authorized:
+ AVAudioSession.sharedInstance().requestRecordPermission { (granted: Bool) in
+ if granted {
+ call.resolve(["speechRecognition": "granted"])
+ } else {
+ call.resolve(["speechRecognition": "denied"])
+ }
+ }
+ break
+ case .denied, .restricted, .notDetermined:
+ self.checkPermissions(call)
+ break
+ @unknown default:
+ self.checkPermissions(call)
+ }
+ }
+ }
+ }
+}
diff --git a/speech-recognition/ios/PluginTests/Info.plist b/speech-recognition/ios/PluginTests/Info.plist
new file mode 100644
index 00000000..6c40a6cd
--- /dev/null
+++ b/speech-recognition/ios/PluginTests/Info.plist
@@ -0,0 +1,22 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/speech-recognition/ios/PluginTests/PluginTests.swift b/speech-recognition/ios/PluginTests/PluginTests.swift
new file mode 100644
index 00000000..1956afce
--- /dev/null
+++ b/speech-recognition/ios/PluginTests/PluginTests.swift
@@ -0,0 +1,25 @@
+import XCTest
+import Capacitor
+@testable import Plugin
+
+class PluginTests: XCTestCase {
+
+ func testEcho() {
+ // This is an example of a functional test case for a plugin.
+ // Use XCTAssert and related functions to verify your tests produce the correct results.
+
+ let value = "Hello, World!"
+ let plugin = MyPlugin()
+
+ let call = CAPPluginCall(callbackId: "test", options: [
+ "value": value
+ ], resolve: { (result, _) in
+ let resultValue = result!.data["value"] as? String
+ XCTAssertEqual(value, resultValue)
+ }, reject: { (_) in
+ XCTFail("Error shouldn't have been called")
+ })
+
+ plugin.echo(call!)
+ }
+}
diff --git a/speech-recognition/ios/Podfile b/speech-recognition/ios/Podfile
new file mode 100644
index 00000000..a4814c11
--- /dev/null
+++ b/speech-recognition/ios/Podfile
@@ -0,0 +1,16 @@
+platform :ios, '13.0'
+
+def capacitor_pods
+ # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
+ use_frameworks!
+ pod 'Capacitor', :path => '../node_modules/@capacitor/ios'
+ pod 'CapacitorCordova', :path => '../node_modules/@capacitor/ios'
+end
+
+target 'Plugin' do
+ capacitor_pods
+end
+
+target 'PluginTests' do
+ capacitor_pods
+end
\ No newline at end of file
diff --git a/speech-recognition/ios/Podfile.lock b/speech-recognition/ios/Podfile.lock
new file mode 100644
index 00000000..f6bd72d3
--- /dev/null
+++ b/speech-recognition/ios/Podfile.lock
@@ -0,0 +1,22 @@
+PODS:
+ - Capacitor (6.0.0):
+ - CapacitorCordova
+ - CapacitorCordova (6.0.0)
+
+DEPENDENCIES:
+ - "Capacitor (from `../node_modules/@capacitor/ios`)"
+ - "CapacitorCordova (from `../node_modules/@capacitor/ios`)"
+
+EXTERNAL SOURCES:
+ Capacitor:
+ :path: "../node_modules/@capacitor/ios"
+ CapacitorCordova:
+ :path: "../node_modules/@capacitor/ios"
+
+SPEC CHECKSUMS:
+ Capacitor: 559d073c4ca6c27f8e7002c807eea94c3ba435a9
+ CapacitorCordova: 8c4bfdf69368512e85b1d8b724dd7546abeb30af
+
+PODFILE CHECKSUM: 1033dea949db4aa66cc0404a8baadac4a30dd025
+
+COCOAPODS: 1.16.2
diff --git a/speech-recognition/ios/Pods/Local Podspecs/Capacitor.podspec.json b/speech-recognition/ios/Pods/Local Podspecs/Capacitor.podspec.json
new file mode 100644
index 00000000..56f68229
--- /dev/null
+++ b/speech-recognition/ios/Pods/Local Podspecs/Capacitor.podspec.json
@@ -0,0 +1,31 @@
+{
+ "name": "Capacitor",
+ "version": "6.0.0",
+ "summary": "Capacitor for iOS",
+ "social_media_url": "https://twitter.com/capacitorjs",
+ "license": "MIT",
+ "homepage": "https://capacitorjs.com/",
+ "platforms": {
+ "ios": "13.0"
+ },
+ "authors": {
+ "Ionic Team": "hi@ionicframework.com"
+ },
+ "source": {
+ "git": "https://github.com/ionic-team/capacitor.git",
+ "tag": "6.0.0"
+ },
+ "source_files": "Capacitor/Capacitor/**/*.{swift,h,m}",
+ "module_map": "Capacitor/Capacitor/Capacitor.modulemap",
+ "resources": [
+ "Capacitor/Capacitor/assets/native-bridge.js",
+ "Capacitor/Capacitor/PrivacyInfo.xcprivacy"
+ ],
+ "dependencies": {
+ "CapacitorCordova": [
+
+ ]
+ },
+ "swift_versions": "5.1",
+ "swift_version": "5.1"
+}
diff --git a/speech-recognition/ios/Pods/Local Podspecs/CapacitorCordova.podspec.json b/speech-recognition/ios/Pods/Local Podspecs/CapacitorCordova.podspec.json
new file mode 100644
index 00000000..2790d91f
--- /dev/null
+++ b/speech-recognition/ios/Pods/Local Podspecs/CapacitorCordova.podspec.json
@@ -0,0 +1,29 @@
+{
+ "name": "CapacitorCordova",
+ "module_name": "Cordova",
+ "version": "6.0.0",
+ "summary": "Capacitor Cordova Compatibility Layer",
+ "homepage": "https://capacitorjs.com",
+ "license": "MIT",
+ "authors": {
+ "Ionic Team": "hi@ionicframework.com"
+ },
+ "source": {
+ "git": "https://github.com/ionic-team/capacitor",
+ "tag": "6.0.0"
+ },
+ "platforms": {
+ "ios": "13.0"
+ },
+ "source_files": "CapacitorCordova/CapacitorCordova/**/*.{h,m}",
+ "public_header_files": [
+ "CapacitorCordova/CapacitorCordova/Classes/Public/*.h",
+ "CapacitorCordova/CapacitorCordova/CapacitorCordova.h"
+ ],
+ "module_map": "CapacitorCordova/CapacitorCordova/CapacitorCordova.modulemap",
+ "resources": [
+ "CapacitorCordova/CapacitorCordova/PrivacyInfo.xcprivacy"
+ ],
+ "requires_arc": true,
+ "frameworks": "WebKit"
+}
diff --git a/speech-recognition/ios/Pods/Manifest.lock b/speech-recognition/ios/Pods/Manifest.lock
new file mode 100644
index 00000000..f6bd72d3
--- /dev/null
+++ b/speech-recognition/ios/Pods/Manifest.lock
@@ -0,0 +1,22 @@
+PODS:
+ - Capacitor (6.0.0):
+ - CapacitorCordova
+ - CapacitorCordova (6.0.0)
+
+DEPENDENCIES:
+ - "Capacitor (from `../node_modules/@capacitor/ios`)"
+ - "CapacitorCordova (from `../node_modules/@capacitor/ios`)"
+
+EXTERNAL SOURCES:
+ Capacitor:
+ :path: "../node_modules/@capacitor/ios"
+ CapacitorCordova:
+ :path: "../node_modules/@capacitor/ios"
+
+SPEC CHECKSUMS:
+ Capacitor: 559d073c4ca6c27f8e7002c807eea94c3ba435a9
+ CapacitorCordova: 8c4bfdf69368512e85b1d8b724dd7546abeb30af
+
+PODFILE CHECKSUM: 1033dea949db4aa66cc0404a8baadac4a30dd025
+
+COCOAPODS: 1.16.2
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/project.pbxproj b/speech-recognition/ios/Pods/Pods.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..70c3680d
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/project.pbxproj
@@ -0,0 +1,1438 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 48;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 00DD49AAA7B7FBACB25F3DCA70FF2185 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 95648C56D4E4ABD41EE8AF4CB2326B5B /* PrivacyInfo.xcprivacy */; };
+ 00E3AC2042D078DEA544CAA6CD4180A8 /* WKWebView+Capacitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E899B1AC03689EDAC12449B726FB334 /* WKWebView+Capacitor.m */; };
+ 027FC9F6CE661B44DE8435A77C6FDA4B /* CDVPlugin+Resources.m in Sources */ = {isa = PBXBuildFile; fileRef = 59D5E4DFE1C5C24A08DE24200E2D13A5 /* CDVPlugin+Resources.m */; };
+ 0499127BAC8542710DA405AF0FFE94A3 /* Pods-Plugin-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A2BC9A9C63563BFD519AB3CE4D5D9D /* Pods-Plugin-dummy.m */; };
+ 0C58F0348A989679220D52A7968B65AD /* CapacitorHttp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC328445EC3EA24D0B0319746270406C /* CapacitorHttp.swift */; };
+ 0CAF5AA5DFABA1AFBAFC9006FA117868 /* CAPBridgeProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4482B770B243ABA1FB534B9EF3183997 /* CAPBridgeProtocol.swift */; };
+ 0CDC3D7F98C3CAD813E6B7CD9A86904A /* CAPNotifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0E0F34AC2147857612A52C22DC6AD2 /* CAPNotifications.swift */; };
+ 1045EACE8E8B629DC92734306767FFB4 /* CAPPluginCall.m in Sources */ = {isa = PBXBuildFile; fileRef = BA5F5DAE2C5394EEE17B9029808226AC /* CAPPluginCall.m */; };
+ 148484B94011D20A3216BC1BA9BD0BC1 /* CAPPluginCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 05FEE9BE906E5FD3A2023A19D663CC35 /* CAPPluginCall.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 176129582238765CAF813BB1E7AB7205 /* CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = BA7554A812B86229C8EA5F6F81B321BC /* CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1B15596AD72235D0A9E68C338FED5894 /* CDVAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = 563A77979ACFFB84A79E21335EB145D7 /* CDVAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1E4541F5947B0911BB3D0A3E2B4FCFD1 /* Pods-PluginTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E74390F09A29D254E98C5610DDD5A28 /* Pods-PluginTests-dummy.m */; };
+ 21538F9E86EC068189BF4A052B2BC138 /* CAPInstanceDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 548629F623A47EB37EE3410159EA22AF /* CAPInstanceDescriptor.swift */; };
+ 2745795601B95C8ADCD9CD944EA64816 /* PluginCallResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16D9D7D1D75407542D70F279BE858C5 /* PluginCallResult.swift */; };
+ 29AD4AFDB1051F7091DFB08B64CD7EFB /* NSDictionary+CordovaPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = B31007A810171D345EEC4FA0BCB21CEA /* NSDictionary+CordovaPreferences.m */; };
+ 2D6D1E1EFD2949E677434B3B469C88E8 /* CDVPluginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 17715AB9228EA6E1D4F012B0CCEB33F5 /* CDVPluginResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2E593F392039A254C0CDD3989DEE41D7 /* CDVURLProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 817499F6B220524F650005F03DD71B4A /* CDVURLProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2EE90CB8CD51A9D111E674C30CA6713F /* JSValueEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = E07B414D8F1B660835190464D21ABC10 /* JSValueEncoder.swift */; };
+ 2EF78801E23385A00A7FED52738C450F /* TmpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 058355C86F3D67F2B6321DC4E1FC10A1 /* TmpViewController.swift */; };
+ 2F5A978C43E03ACC771F8BA4A4EFC8C3 /* CapacitorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D500B14AFB8C0E709A9582A05B81F7EA /* CapacitorExtension.swift */; };
+ 300BB1816FB64B3DFE3505C61DABC8A0 /* CDVPluginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 77A1EAF35490B5AFF5FAAD95EB018E41 /* CDVPluginManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 34DF23D0F78E37B2C73491A0A882750C /* CAPInstancePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 649B5A19BF47F4CDA5DCCFF2C64B57EA /* CAPInstancePlugin.swift */; };
+ 397E4837F8D249FCF827C9B45804EF45 /* CAPPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = F1C958D69C29CFBBDC15C97C583F4B43 /* CAPPlugin.m */; };
+ 3AD12CA3257D333D693EF402B0D37050 /* CAPBridgedJSTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 034E099A6F68B36A4512A9AEB01F41C6 /* CAPBridgedJSTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3B90DE2EBCB83B06B8DD720EC3162314 /* CAPBridgedPlugin+getMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE23228C63C46F0C4EEBEB40A001646 /* CAPBridgedPlugin+getMethod.swift */; };
+ 3FAA1B6C5055BD2E04059B17765662FE /* CAPApplicationDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83BE6CA12E14393F4ABE5A03E7C4021A /* CAPApplicationDelegateProxy.swift */; };
+ 455CD8F7855CC7A4FF370977AF09419F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */; };
+ 45D2423AA78EB59FAB2F0BDD0B1E75C5 /* DefaultPlugins.m in Sources */ = {isa = PBXBuildFile; fileRef = D7539895D20B52CA8D5ADC3349621C52 /* DefaultPlugins.m */; };
+ 461E7273DE46D278F1194EA42888CCC7 /* CAPPluginMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A5E6150D9FC87A26CC0986391626019 /* CAPPluginMethod.m */; };
+ 4AC0806A2014559389ED0D5F5864898F /* CAPBridgeViewController+CDVScreenOrientationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 11E4D3210F27C4592CE89FEB3DBAE96A /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4C6B5F2E9DA93A4D34CD6D193EAFAECB /* CapacitorCookieManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4983F575EC8224716E5A6D6B3C5C2085 /* CapacitorCookieManager.swift */; };
+ 4CA1078205A5A8CD35CFFD2F3E3726DB /* PluginConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6DA0364646B8DAC5AC1996CA4DB6D82 /* PluginConfig.swift */; };
+ 4CC2C15BF2EACE8730ACEEC3166E4E6E /* Data+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5985DDA358070FD5E8E0924F7B21993B /* Data+Capacitor.swift */; };
+ 4D6F8880738509BA1E553595FEB47F95 /* CDVCommandDelegateImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 869C4EBBF812C9DF1DEC1E1C9A0414B6 /* CDVCommandDelegateImpl.m */; };
+ 4DCBD5692A9842C29E2237EBF131565C /* CAPBridgeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA4B6D6707D7C90A6A5A0F9BEBC93AAE /* CAPBridgeViewController.swift */; };
+ 5271648081A40D55671BA56FBC8D43CE /* AppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6ECB88325A202355935E8868FC704161 /* AppDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 52D57F9B1D5180EF81CB354EFDE39C0B /* Pods-PluginTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FBD93D36D06B546B5015A4716941DCBB /* Pods-PluginTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 55EFE2AD906557A4B67F8121371C3A73 /* CAPInstanceDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = A43E09C2D3593E85EC9C672DACDC6B8E /* CAPInstanceDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 57CED43B0677CB39026183C4DE28D266 /* KeyValueStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B67934A6336DB96153F69F2885F7FE6A /* KeyValueStore.swift */; };
+ 57F75BCC4364106AEDA3D57862A0A027 /* Array+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BEB3F4052AFC1F272E8E569F38D99A8 /* Array+Capacitor.swift */; };
+ 5ADB39382AF2A449748E390C77797E83 /* NotificationHandlerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F11C8BC6D3CB7B817842AA9AFAC48F4 /* NotificationHandlerProtocol.swift */; };
+ 5B2897352536D64DA610740A510672E9 /* KeyPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B9E8896A248D0A3B628BE972B7A4486 /* KeyPath.swift */; };
+ 5D25C6861DDE1676A36EAE28ADEFEB7E /* CDVViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1612702E201BE0983D534A6F9D071A /* CDVViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5D7E32867181BC87F7B54D0022B143C2 /* CapacitorCookies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24EF261844A690BDF4EC68C25C7A5589 /* CapacitorCookies.swift */; };
+ 6436FD5818142CE6C011F59096CB5126 /* CAPFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 100A2F7039C5EC78463F4B6D919C0027 /* CAPFile.swift */; };
+ 66C1BEA5070DA09154CACF1C82386C24 /* WebViewAssetHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 467FCC173510CF0FC276F6532D770907 /* WebViewAssetHandler.swift */; };
+ 69F1FB75650D41026C8AB7D4DC6B5EF5 /* CDVInvokedUrlCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = DBDA16FB77D8D59DEB32CCFE8105EE7B /* CDVInvokedUrlCommand.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6DA5EDEC3ED099DD0674F0887286C372 /* CapacitorBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80EC617BCD4EA95F9AAC9AB3CAA3B8E1 /* CapacitorBridge.swift */; };
+ 72F1392053F0629A4CDABC370C13BC6E /* CAPInstanceConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD894B091F39A97912ACF4CFBC836D87 /* CAPInstanceConfiguration.swift */; };
+ 75C6F32607D77EDEE605063D70641A82 /* JSTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529064D5D9025BE6A79DE45A25CF473C /* JSTypes.swift */; };
+ 75FED7AF2279400A5BF6C3862FB9355F /* CapacitorCordova.h in Headers */ = {isa = PBXBuildFile; fileRef = 703752F658D442F244EA452FB74965B3 /* CapacitorCordova.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 76CB6E36ED7444EF01E0CF68D963977B /* CDVPluginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF24F4C1B1CD901AEC6C31DA750B980 /* CDVPluginManager.m */; };
+ 7AA91E8502C6B20AA53707E2C588976E /* CAPPluginMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF32033DAF5F1B50DB8C41C642EC0CB /* CAPPluginMethod.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7CE9D62121171BA6C313FBAAC145250C /* CDVWebViewProcessPoolFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0E983F534D35114FB10F2860CF307A /* CDVWebViewProcessPoolFactory.m */; };
+ 83C85B8084B10C07A2915FC96D7464E7 /* NSDictionary+CordovaPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB754CF702177D045E75886784DDA40 /* NSDictionary+CordovaPreferences.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 85F009269489F186F56C821D384F083F /* CDVInvokedUrlCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 818851AD6AAAFD56B6C49CBB95831BD2 /* CDVInvokedUrlCommand.m */; };
+ 877AAFE43D8767C5A9277971E95289D4 /* CDVCommandDelegateImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F58C13F718DDDF912C8D8F957ADC563C /* CDVCommandDelegateImpl.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8ADBB5DB517A52E496244D7F3C61993A /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E997E61FDD01E884BBF5AC59944653AB /* UIColor.swift */; };
+ 8C9938F35EF9682762937A36EBCF0D8C /* Console.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF1B07523853D822DC5BF0764E9EED19 /* Console.swift */; };
+ 8CCB724976529DED0CCB88A368B98DBB /* WebViewDelegationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 512101D8B0690EC4264E4026595E6C09 /* WebViewDelegationHandler.swift */; };
+ 8D649A3F9FFE8B6B7D6DB866677CFE97 /* CDVConfigParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 7660E6814B15B929A0F9F717B3D7AC68 /* CDVConfigParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8F1B2EB11C7A2369929B4E71D0ED1EAD /* DocLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED48CB5BF6D421A9CDA0C959348D407C /* DocLinks.swift */; };
+ 8FB38FB7DAEF8175DC26FBF29EF794B3 /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5B59AC595CB35EA245E9B30141E6924 /* Router.swift */; };
+ 8FE65960A50DAB49D78947D1DD829A55 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EDB8C9ACBBD85B912C1048908BCC00F8 /* WebKit.framework */; };
+ 926BF4474C23361F1CBB6972C18294C7 /* Capacitor.h in Headers */ = {isa = PBXBuildFile; fileRef = A0D985C80C63BDFDA02B09FBDE5F6F5A /* Capacitor.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 97AED5E6D515157B9A0DAEC0DD412BED /* CAPInstanceConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = EFC7B9E1A25EB4AE22B2BFD76CE82545 /* CAPInstanceConfiguration.m */; };
+ 98DF94563B6A5901AA43E27520CD78F0 /* CAPPlugin+LoadInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4197ED0A91C1D7947BA5FBB380806250 /* CAPPlugin+LoadInstance.swift */; };
+ 9ADD62FB5D9238F2908105EB91BB3959 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */; };
+ 9AF55497FBDEDD5F7A73314595DCE8CA /* Capacitor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C9870CDDCF99B18DB64FE413BD355A33 /* Capacitor-dummy.m */; };
+ 9C1F9C1B8E5BA5A84502172BCFE12B5E /* native-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = 3CFD655E5956A08005DD5AA421862B8B /* native-bridge.js */; };
+ A7F57A930C06BAB6B840BDEAA9781B09 /* HttpRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 878E6794B11C0E8DC0D0272E0075D3DA /* HttpRequestHandler.swift */; };
+ AE3F0F5552793D35078BC7ED891FAD7A /* CDVViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3732370A43B40B615A6E2E0FA72E51C3 /* CDVViewController.m */; };
+ AE866E6014CB92EEFB702EAA6B26DA69 /* NotificationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BC36ADDFA38A3661389DDA825FE5083 /* NotificationRouter.swift */; };
+ AF417F0017CAB8D4750C6DA49603D1F9 /* AppUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 605CC094F300E6D3154759CD45B6FE93 /* AppUUID.swift */; };
+ AFB76EBA404290D774F5D2B7500F8D26 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C006AC3D0821275FCF555E6E934B840 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */; };
+ B2E9029E480D0080EC6E60289094AB72 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9D81585547EDB4B034BE2EA0D9D56208 /* PrivacyInfo.xcprivacy */; };
+ B3212C5BA6214ADED01CB29F9800D649 /* JSExport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D81BE104344112B7A5C9F3A53EDE99A7 /* JSExport.swift */; };
+ B3AA855A84675E936255A71AD4DB9B23 /* CDVCommandDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 493CF8B368FE667CC972900CC186E9C5 /* CDVCommandDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B792996B7760D781528A1C763063A368 /* CapacitorUrlRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3DF6B2974AF73F4D12D28B80AC5F36F5 /* CapacitorUrlRequest.swift */; };
+ BB87CDD8BC95A41CC36A5F310531447D /* CAPPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = F57C5B609F6096ECA1A3472EB9598349 /* CAPPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BF6B68F1184491A2448C7FBB4B5133C6 /* CAPBridgedJSTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B30FA46B72726BE8575E32C6D723774 /* CAPBridgedJSTypes.m */; };
+ C70B7BAFB1CC9CB3BDE81CD032F7E8C0 /* CAPBridgeDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361CCAC6BE339CADD7B79EFF50187FBE /* CAPBridgeDelegate.swift */; };
+ C76B932E7394525172D7D6151E1E8C85 /* JSValueDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3913FC61666E5D3FD73A8767928B4A8 /* JSValueDecoder.swift */; };
+ C9181D44A46C8BCF730EAA4B90494821 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */; };
+ CFAEC4AE503B12B7769D5B6558D46D9B /* JS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F944F7FF0C26D29173A8EF79812831C /* JS.swift */; };
+ CFD73DDF6ECC44D5319C1C3220DDE419 /* CAPInstanceConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = C28B91C116136C7A64464B856666B322 /* CAPInstanceConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D6269E73CDF8361E771B00BA95B326A3 /* Pods-Plugin-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EFD241FB11A4273E5C38133FF35CF7D /* Pods-Plugin-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D6CD38508B1A1BA95FE5DDD0D475C48F /* CAPBridgedPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B26A9DFA84BEC3CE4BCC5439C97FEB5 /* CAPBridgedPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DAEA37C2E0F7D2B3AE9398A8FEC46341 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 0105DDBA94BC8BCB737759E84AAE7208 /* AppDelegate.m */; };
+ DC1825A1FB35A20419A2A0CD5FBA84C9 /* CDVConfigParser.m in Sources */ = {isa = PBXBuildFile; fileRef = FE5DE9C8F410DA397F9857E73F8B90AF /* CDVConfigParser.m */; };
+ E272C2D1FC899E2FA18FA93A496E09FE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */; };
+ E30ECF193303AD72B7F96836A36BEB45 /* CapacitorCordova-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB1AFA939CECAB029934DBC1EAF88742 /* CapacitorCordova-dummy.m */; };
+ E9B95392857E466198E2FFD234092B93 /* CDVWebViewProcessPoolFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 17AE58CD1ADD07DD9FEA88931D0F5D22 /* CDVWebViewProcessPoolFactory.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EA83A79FF1DD9CFD564539EBE85A4075 /* WKWebView+Capacitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBBDB22A2818944BBF894475E81CFFE6 /* WKWebView+Capacitor.swift */; };
+ EACC53C924CC079B4D4EB4B2A729F01D /* CDVPlugin+Resources.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4E33F09D7E6EA708A393DCA9D6AFB9 /* CDVPlugin+Resources.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EB99E1BE46CB187B91736F39E3ED08BB /* CAPBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7EA8211FDF54FE98FBAA044F3D7CEA0 /* CAPBridge.swift */; };
+ ED227CB506888616381FB4867D221B3A /* UIStatusBarManager+CAPHandleTapAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3763CB8B63738A487F25B9D159EDF8DE /* UIStatusBarManager+CAPHandleTapAction.m */; };
+ EF77B5C312518AF79A588746882D93CE /* CAPPluginCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6015C26B0D7D81331053C8F88F8DDC33 /* CAPPluginCall.swift */; };
+ F226824369CCC866568DC74B5ED7BD35 /* CDVPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = E836D3E3290079E51DDCB96D8A095942 /* CDVPlugin.m */; };
+ F2273535879477B590B87264FF4B0B4A /* CDVURLProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 63CA49B9FEB6B4E88D6C824BE745A921 /* CDVURLProtocol.m */; };
+ F2CB5F2716E2A29BBD97D0E536D2EC4E /* CAPInstanceDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3A58AC532D2AA4F4ED2A1732DB89F4 /* CAPInstanceDescriptor.m */; };
+ F30492DC285ED1AD4470173A3AB2C196 /* WebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC12A44AF93A0F42A7D7934B956E924 /* WebView.swift */; };
+ F34725C8044DAAA071D2B2687BCF9861 /* CDVPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 0249BF2B4AD076B27532089B9CC0180D /* CDVPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F62743280115D52A54566D7AFF46A271 /* CAPLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D73A20758871BEC6AB3CCAE68C74DBDA /* CAPLog.swift */; };
+ F75957FA306C694CA84137ECFC16A133 /* CDV.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A35816AF163353BBA815B674518D5CC /* CDV.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FBE6F2054283082FBFB0F4DB9E751E90 /* CDVPluginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 4521DB3AF260E2133CBD36522DB7BA75 /* CDVPluginResult.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 127DC55B609A0305F67450805B0C7094 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0;
+ remoteInfo = CapacitorCordova;
+ };
+ 3FE83C1640CBE5C0D9BA0420819B5E5F /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371;
+ remoteInfo = Capacitor;
+ };
+ 6DF20DB01C9B457730A36CA25BA09463 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 0ECF3D6BFCC08377AE23B027EE1D4371;
+ remoteInfo = Capacitor;
+ };
+ 845C3BC277EA5C1FE432A56E456ABCFB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0;
+ remoteInfo = CapacitorCordova;
+ };
+ BAEF81288EED2D4A7CE700D573E39499 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 400AE44335852A2D8D746557E21E8EB0;
+ remoteInfo = CapacitorCordova;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 0105DDBA94BC8BCB737759E84AAE7208 /* AppDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 0249BF2B4AD076B27532089B9CC0180D /* CDVPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPlugin.h; sourceTree = ""; };
+ 034E099A6F68B36A4512A9AEB01F41C6 /* CAPBridgedJSTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPBridgedJSTypes.h; path = Capacitor/Capacitor/CAPBridgedJSTypes.h; sourceTree = ""; };
+ 058355C86F3D67F2B6321DC4E1FC10A1 /* TmpViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TmpViewController.swift; path = Capacitor/Capacitor/TmpViewController.swift; sourceTree = ""; };
+ 05FEE9BE906E5FD3A2023A19D663CC35 /* CAPPluginCall.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPluginCall.h; path = Capacitor/Capacitor/CAPPluginCall.h; sourceTree = ""; };
+ 0EC12A44AF93A0F42A7D7934B956E924 /* WebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; };
+ 100A2F7039C5EC78463F4B6D919C0027 /* CAPFile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPFile.swift; path = Capacitor/Capacitor/CAPFile.swift; sourceTree = ""; };
+ 11DF9CA040CEBA3928A7F34FB4928E2C /* Pods-Plugin-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Plugin-Info.plist"; sourceTree = ""; };
+ 11E4D3210F27C4592CE89FEB3DBAE96A /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CAPBridgeViewController+CDVScreenOrientationDelegate.h"; path = "Capacitor/Capacitor/CAPBridgeViewController+CDVScreenOrientationDelegate.h"; sourceTree = ""; };
+ 14A79D65A53F0511F9911570922C1B93 /* CapacitorCordova.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = CapacitorCordova.modulemap; sourceTree = ""; };
+ 17115ED7528F1A0B61F0C52409715CA2 /* CapacitorCordova-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CapacitorCordova-prefix.pch"; sourceTree = ""; };
+ 17715AB9228EA6E1D4F012B0CCEB33F5 /* CDVPluginResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPluginResult.h; sourceTree = ""; };
+ 17AE58CD1ADD07DD9FEA88931D0F5D22 /* CDVWebViewProcessPoolFactory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVWebViewProcessPoolFactory.h; sourceTree = ""; };
+ 1A5E6150D9FC87A26CC0986391626019 /* CAPPluginMethod.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPluginMethod.m; path = Capacitor/Capacitor/CAPPluginMethod.m; sourceTree = ""; };
+ 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = CapacitorCordova; path = Cordova.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1B26A9DFA84BEC3CE4BCC5439C97FEB5 /* CAPBridgedPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPBridgedPlugin.h; path = Capacitor/Capacitor/CAPBridgedPlugin.h; sourceTree = ""; };
+ 1D3A58AC532D2AA4F4ED2A1732DB89F4 /* CAPInstanceDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPInstanceDescriptor.m; path = Capacitor/Capacitor/CAPInstanceDescriptor.m; sourceTree = ""; };
+ 2016A734CA851674602290F66A762B63 /* Capacitor-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Capacitor-Info.plist"; sourceTree = ""; };
+ 24EF261844A690BDF4EC68C25C7A5589 /* CapacitorCookies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorCookies.swift; sourceTree = ""; };
+ 2A1612702E201BE0983D534A6F9D071A /* CDVViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVViewController.h; sourceTree = ""; };
+ 2F11C8BC6D3CB7B817842AA9AFAC48F4 /* NotificationHandlerProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationHandlerProtocol.swift; path = Capacitor/Capacitor/NotificationHandlerProtocol.swift; sourceTree = ""; };
+ 361CCAC6BE339CADD7B79EFF50187FBE /* CAPBridgeDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeDelegate.swift; path = Capacitor/Capacitor/CAPBridgeDelegate.swift; sourceTree = ""; };
+ 3732370A43B40B615A6E2E0FA72E51C3 /* CDVViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVViewController.m; sourceTree = ""; };
+ 3763CB8B63738A487F25B9D159EDF8DE /* UIStatusBarManager+CAPHandleTapAction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIStatusBarManager+CAPHandleTapAction.m"; path = "Capacitor/Capacitor/UIStatusBarManager+CAPHandleTapAction.m"; sourceTree = ""; };
+ 3B9E8896A248D0A3B628BE972B7A4486 /* KeyPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyPath.swift; path = Capacitor/Capacitor/KeyPath.swift; sourceTree = ""; };
+ 3CFD655E5956A08005DD5AA421862B8B /* native-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; path = "native-bridge.js"; sourceTree = ""; };
+ 3DF6B2974AF73F4D12D28B80AC5F36F5 /* CapacitorUrlRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorUrlRequest.swift; sourceTree = ""; };
+ 401B4870616B3D09347BE1F13F95D477 /* Pods-Plugin.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Plugin.modulemap"; sourceTree = ""; };
+ 4197ED0A91C1D7947BA5FBB380806250 /* CAPPlugin+LoadInstance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CAPPlugin+LoadInstance.swift"; path = "Capacitor/Capacitor/CAPPlugin+LoadInstance.swift"; sourceTree = ""; };
+ 4482B770B243ABA1FB534B9EF3183997 /* CAPBridgeProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeProtocol.swift; path = Capacitor/Capacitor/CAPBridgeProtocol.swift; sourceTree = ""; };
+ 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Capacitor; path = Capacitor.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4521DB3AF260E2133CBD36522DB7BA75 /* CDVPluginResult.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPluginResult.m; sourceTree = ""; };
+ 45AEE2D3BD43D61882B01AAE2B8F11E4 /* Pods-PluginTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PluginTests-acknowledgements.plist"; sourceTree = ""; };
+ 467FCC173510CF0FC276F6532D770907 /* WebViewAssetHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebViewAssetHandler.swift; path = Capacitor/Capacitor/WebViewAssetHandler.swift; sourceTree = ""; };
+ 47F881CAB117FE10E92963EF6CC91861 /* Pods-PluginTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PluginTests.debug.xcconfig"; sourceTree = ""; };
+ 493CF8B368FE667CC972900CC186E9C5 /* CDVCommandDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVCommandDelegate.h; sourceTree = ""; };
+ 4983F575EC8224716E5A6D6B3C5C2085 /* CapacitorCookieManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorCookieManager.swift; sourceTree = ""; };
+ 4B7B23985828F9D35ECCA1361A486792 /* Pods-Plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Plugin"; path = Pods_Plugin.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4C006AC3D0821275FCF555E6E934B840 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CAPBridgeViewController+CDVScreenOrientationDelegate.m"; path = "Capacitor/Capacitor/CAPBridgeViewController+CDVScreenOrientationDelegate.m"; sourceTree = ""; };
+ 50F35474E793D3079F51A1423D50322D /* Capacitor.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Capacitor.debug.xcconfig; sourceTree = ""; };
+ 512101D8B0690EC4264E4026595E6C09 /* WebViewDelegationHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WebViewDelegationHandler.swift; path = Capacitor/Capacitor/WebViewDelegationHandler.swift; sourceTree = ""; };
+ 529064D5D9025BE6A79DE45A25CF473C /* JSTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSTypes.swift; path = Capacitor/Capacitor/JSTypes.swift; sourceTree = ""; };
+ 535AEEBA96B786E87F23F75310B8CB74 /* Pods-Plugin-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Plugin-acknowledgements.plist"; sourceTree = ""; };
+ 548629F623A47EB37EE3410159EA22AF /* CAPInstanceDescriptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstanceDescriptor.swift; path = Capacitor/Capacitor/CAPInstanceDescriptor.swift; sourceTree = ""; };
+ 563A77979ACFFB84A79E21335EB145D7 /* CDVAvailability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVAvailability.h; sourceTree = ""; };
+ 58DEAF78291AAC1E83073B9084B45542 /* Pods-PluginTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-PluginTests"; path = Pods_PluginTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5985DDA358070FD5E8E0924F7B21993B /* Data+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Capacitor.swift"; path = "Capacitor/Capacitor/Data+Capacitor.swift"; sourceTree = ""; };
+ 59D5E4DFE1C5C24A08DE24200E2D13A5 /* CDVPlugin+Resources.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CDVPlugin+Resources.m"; sourceTree = ""; };
+ 5A35816AF163353BBA815B674518D5CC /* CDV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDV.h; sourceTree = ""; };
+ 5D4E33F09D7E6EA708A393DCA9D6AFB9 /* CDVPlugin+Resources.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CDVPlugin+Resources.h"; sourceTree = ""; };
+ 5E899B1AC03689EDAC12449B726FB334 /* WKWebView+Capacitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "WKWebView+Capacitor.m"; path = "Capacitor/Capacitor/WKWebView+Capacitor.m"; sourceTree = ""; };
+ 6015C26B0D7D81331053C8F88F8DDC33 /* CAPPluginCall.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPPluginCall.swift; path = Capacitor/Capacitor/CAPPluginCall.swift; sourceTree = ""; };
+ 605CC094F300E6D3154759CD45B6FE93 /* AppUUID.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppUUID.swift; path = Capacitor/Capacitor/AppUUID.swift; sourceTree = ""; };
+ 63CA49B9FEB6B4E88D6C824BE745A921 /* CDVURLProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVURLProtocol.m; sourceTree = ""; };
+ 649B5A19BF47F4CDA5DCCFF2C64B57EA /* CAPInstancePlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstancePlugin.swift; path = Capacitor/Capacitor/CAPInstancePlugin.swift; sourceTree = ""; };
+ 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
+ 6ECB88325A202355935E8868FC704161 /* AppDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 6F1715C2DEF7461A3964E29A0FCB6D3D /* Pods-Plugin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Plugin.release.xcconfig"; sourceTree = ""; };
+ 703752F658D442F244EA452FB74965B3 /* CapacitorCordova.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CapacitorCordova.h; path = CapacitorCordova/CapacitorCordova/CapacitorCordova.h; sourceTree = ""; };
+ 7660E6814B15B929A0F9F717B3D7AC68 /* CDVConfigParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVConfigParser.h; sourceTree = ""; };
+ 77A1EAF35490B5AFF5FAAD95EB018E41 /* CDVPluginManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVPluginManager.h; sourceTree = ""; };
+ 7D967D566F7C3FD1B78180239E63BC92 /* Pods-PluginTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PluginTests.release.xcconfig"; sourceTree = ""; };
+ 7E0E0F34AC2147857612A52C22DC6AD2 /* CAPNotifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPNotifications.swift; path = Capacitor/Capacitor/CAPNotifications.swift; sourceTree = ""; };
+ 7E74390F09A29D254E98C5610DDD5A28 /* Pods-PluginTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PluginTests-dummy.m"; sourceTree = ""; };
+ 7EFD241FB11A4273E5C38133FF35CF7D /* Pods-Plugin-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Plugin-umbrella.h"; sourceTree = ""; };
+ 80EC617BCD4EA95F9AAC9AB3CAA3B8E1 /* CapacitorBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CapacitorBridge.swift; path = Capacitor/Capacitor/CapacitorBridge.swift; sourceTree = ""; };
+ 817499F6B220524F650005F03DD71B4A /* CDVURLProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVURLProtocol.h; sourceTree = ""; };
+ 818851AD6AAAFD56B6C49CBB95831BD2 /* CDVInvokedUrlCommand.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVInvokedUrlCommand.m; sourceTree = ""; };
+ 83BE6CA12E14393F4ABE5A03E7C4021A /* CAPApplicationDelegateProxy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPApplicationDelegateProxy.swift; path = Capacitor/Capacitor/CAPApplicationDelegateProxy.swift; sourceTree = ""; };
+ 869C4EBBF812C9DF1DEC1E1C9A0414B6 /* CDVCommandDelegateImpl.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVCommandDelegateImpl.m; sourceTree = ""; };
+ 878E6794B11C0E8DC0D0272E0075D3DA /* HttpRequestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HttpRequestHandler.swift; sourceTree = ""; };
+ 8F944F7FF0C26D29173A8EF79812831C /* JS.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JS.swift; path = Capacitor/Capacitor/JS.swift; sourceTree = ""; };
+ 939147BBA617256FB279F110F9DD2227 /* Pods-PluginTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PluginTests-Info.plist"; sourceTree = ""; };
+ 95648C56D4E4ABD41EE8AF4CB2326B5B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = CapacitorCordova/CapacitorCordova/PrivacyInfo.xcprivacy; sourceTree = ""; };
+ 9B30FA46B72726BE8575E32C6D723774 /* CAPBridgedJSTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPBridgedJSTypes.m; path = Capacitor/Capacitor/CAPBridgedJSTypes.m; sourceTree = ""; };
+ 9BC36ADDFA38A3661389DDA825FE5083 /* NotificationRouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NotificationRouter.swift; path = Capacitor/Capacitor/NotificationRouter.swift; sourceTree = ""; };
+ 9BEB3F4052AFC1F272E8E569F38D99A8 /* Array+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Capacitor.swift"; path = "Capacitor/Capacitor/Array+Capacitor.swift"; sourceTree = ""; };
+ 9D81585547EDB4B034BE2EA0D9D56208 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Capacitor/Capacitor/PrivacyInfo.xcprivacy; sourceTree = ""; };
+ 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ A0D985C80C63BDFDA02B09FBDE5F6F5A /* Capacitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Capacitor.h; path = Capacitor/Capacitor/Capacitor.h; sourceTree = ""; };
+ A1E5822FC61F9421CF2456D453B75418 /* Pods-PluginTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PluginTests-acknowledgements.markdown"; sourceTree = ""; };
+ A43E09C2D3593E85EC9C672DACDC6B8E /* CAPInstanceDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPInstanceDescriptor.h; path = Capacitor/Capacitor/CAPInstanceDescriptor.h; sourceTree = ""; };
+ AA4B6D6707D7C90A6A5A0F9BEBC93AAE /* CAPBridgeViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridgeViewController.swift; path = Capacitor/Capacitor/CAPBridgeViewController.swift; sourceTree = ""; };
+ AB23217D412C120E51CE4FC5F03A3527 /* CapacitorCordova.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = CapacitorCordova.modulemap; path = CapacitorCordova/CapacitorCordova/CapacitorCordova.modulemap; sourceTree = ""; };
+ AC328445EC3EA24D0B0319746270406C /* CapacitorHttp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CapacitorHttp.swift; sourceTree = ""; };
+ AD894B091F39A97912ACF4CFBC836D87 /* CAPInstanceConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPInstanceConfiguration.swift; path = Capacitor/Capacitor/CAPInstanceConfiguration.swift; sourceTree = ""; };
+ B03A777C244FAEA1BE8CD3E9096CB41B /* CapacitorCordova.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCordova.release.xcconfig; sourceTree = ""; };
+ B31007A810171D345EEC4FA0BCB21CEA /* NSDictionary+CordovaPreferences.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+CordovaPreferences.m"; sourceTree = ""; };
+ B5A2BC9A9C63563BFD519AB3CE4D5D9D /* Pods-Plugin-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Plugin-dummy.m"; sourceTree = ""; };
+ B67934A6336DB96153F69F2885F7FE6A /* KeyValueStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = KeyValueStore.swift; path = Capacitor/Capacitor/KeyValueStore.swift; sourceTree = ""; };
+ B6ACD1E8895E541D2AAA00D1AA8A5366 /* CapacitorCordova.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CapacitorCordova.debug.xcconfig; sourceTree = ""; };
+ B6DA0364646B8DAC5AC1996CA4DB6D82 /* PluginConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PluginConfig.swift; path = Capacitor/Capacitor/PluginConfig.swift; sourceTree = ""; };
+ BA5F5DAE2C5394EEE17B9029808226AC /* CAPPluginCall.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPluginCall.m; path = Capacitor/Capacitor/CAPPluginCall.m; sourceTree = ""; };
+ BA7554A812B86229C8EA5F6F81B321BC /* CDVScreenOrientationDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVScreenOrientationDelegate.h; sourceTree = ""; };
+ BCF32033DAF5F1B50DB8C41C642EC0CB /* CAPPluginMethod.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPluginMethod.h; path = Capacitor/Capacitor/CAPPluginMethod.h; sourceTree = ""; };
+ C28B91C116136C7A64464B856666B322 /* CAPInstanceConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPInstanceConfiguration.h; path = Capacitor/Capacitor/CAPInstanceConfiguration.h; sourceTree = ""; };
+ C6E3C256CDF6737FDBD363893A1A9631 /* Capacitor.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Capacitor.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ C818B5D2E7E4FE4DB6A541C59C3F46A2 /* Pods-Plugin-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Plugin-acknowledgements.markdown"; sourceTree = ""; };
+ C9870CDDCF99B18DB64FE413BD355A33 /* Capacitor-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Capacitor-dummy.m"; sourceTree = ""; };
+ CE0E983F534D35114FB10F2860CF307A /* CDVWebViewProcessPoolFactory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVWebViewProcessPoolFactory.m; sourceTree = ""; };
+ CF80221FA9CE809EEE159B1AE2206780 /* CapacitorCordova-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "CapacitorCordova-Info.plist"; sourceTree = ""; };
+ D16D9D7D1D75407542D70F279BE858C5 /* PluginCallResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PluginCallResult.swift; path = Capacitor/Capacitor/PluginCallResult.swift; sourceTree = ""; };
+ D270CA36CCC04D75B45920C620AEAE72 /* Capacitor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Capacitor.modulemap; sourceTree = ""; };
+ D3913FC61666E5D3FD73A8767928B4A8 /* JSValueDecoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSValueDecoder.swift; sourceTree = ""; };
+ D500B14AFB8C0E709A9582A05B81F7EA /* CapacitorExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CapacitorExtension.swift; path = Capacitor/Capacitor/CapacitorExtension.swift; sourceTree = ""; };
+ D585E1B9BF72861652A5256F71241D37 /* Capacitor.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Capacitor.release.xcconfig; sourceTree = ""; };
+ D675757DBDED4F579C45B611BB53DAC9 /* CapacitorCordova.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = CapacitorCordova.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
+ D6A9D9102A6C05CE4B93BA2C13954FE9 /* Pods-PluginTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-PluginTests-frameworks.sh"; sourceTree = ""; };
+ D73A20758871BEC6AB3CCAE68C74DBDA /* CAPLog.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPLog.swift; path = Capacitor/Capacitor/CAPLog.swift; sourceTree = ""; };
+ D7539895D20B52CA8D5ADC3349621C52 /* DefaultPlugins.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = DefaultPlugins.m; sourceTree = ""; };
+ D81BE104344112B7A5C9F3A53EDE99A7 /* JSExport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSExport.swift; path = Capacitor/Capacitor/JSExport.swift; sourceTree = ""; };
+ DAA5DBF72380C5466DCBC107B7747A60 /* Pods-Plugin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Plugin.debug.xcconfig"; sourceTree = ""; };
+ DBBDB22A2818944BBF894475E81CFFE6 /* WKWebView+Capacitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "WKWebView+Capacitor.swift"; path = "Capacitor/Capacitor/WKWebView+Capacitor.swift"; sourceTree = ""; };
+ DBDA16FB77D8D59DEB32CCFE8105EE7B /* CDVInvokedUrlCommand.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVInvokedUrlCommand.h; sourceTree = ""; };
+ DF1B07523853D822DC5BF0764E9EED19 /* Console.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Console.swift; sourceTree = ""; };
+ E07B414D8F1B660835190464D21ABC10 /* JSValueEncoder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = JSValueEncoder.swift; sourceTree = ""; };
+ E5B59AC595CB35EA245E9B30141E6924 /* Router.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Router.swift; path = Capacitor/Capacitor/Router.swift; sourceTree = ""; };
+ E836D3E3290079E51DDCB96D8A095942 /* CDVPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPlugin.m; sourceTree = ""; };
+ E8950E00418A9BCE1D0E315A85B496FB /* Pods-PluginTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PluginTests.modulemap"; sourceTree = ""; };
+ E8B0050ADDF2B0F4CB17DE2B2B6DFC69 /* Capacitor-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Capacitor-prefix.pch"; sourceTree = ""; };
+ E997E61FDD01E884BBF5AC59944653AB /* UIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIColor.swift; path = Capacitor/Capacitor/UIColor.swift; sourceTree = ""; };
+ ECE23228C63C46F0C4EEBEB40A001646 /* CAPBridgedPlugin+getMethod.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CAPBridgedPlugin+getMethod.swift"; path = "Capacitor/Capacitor/CAPBridgedPlugin+getMethod.swift"; sourceTree = ""; };
+ ECF24F4C1B1CD901AEC6C31DA750B980 /* CDVPluginManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVPluginManager.m; sourceTree = ""; };
+ ED001DBFC4DFBFB5A051A6771A4BA01D /* Capacitor.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = Capacitor.modulemap; path = Capacitor/Capacitor/Capacitor.modulemap; sourceTree = ""; };
+ ED48CB5BF6D421A9CDA0C959348D407C /* DocLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DocLinks.swift; path = Capacitor/Capacitor/DocLinks.swift; sourceTree = ""; };
+ EDB8C9ACBBD85B912C1048908BCC00F8 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; };
+ EFC7B9E1A25EB4AE22B2BFD76CE82545 /* CAPInstanceConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPInstanceConfiguration.m; path = Capacitor/Capacitor/CAPInstanceConfiguration.m; sourceTree = ""; };
+ F1C958D69C29CFBBDC15C97C583F4B43 /* CAPPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CAPPlugin.m; path = Capacitor/Capacitor/CAPPlugin.m; sourceTree = ""; };
+ F57C5B609F6096ECA1A3472EB9598349 /* CAPPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CAPPlugin.h; path = Capacitor/Capacitor/CAPPlugin.h; sourceTree = ""; };
+ F58C13F718DDDF912C8D8F957ADC563C /* CDVCommandDelegateImpl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CDVCommandDelegateImpl.h; sourceTree = ""; };
+ F7EA8211FDF54FE98FBAA044F3D7CEA0 /* CAPBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CAPBridge.swift; path = Capacitor/Capacitor/CAPBridge.swift; sourceTree = ""; };
+ FAB754CF702177D045E75886784DDA40 /* NSDictionary+CordovaPreferences.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+CordovaPreferences.h"; sourceTree = ""; };
+ FB1AFA939CECAB029934DBC1EAF88742 /* CapacitorCordova-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CapacitorCordova-dummy.m"; sourceTree = ""; };
+ FBD93D36D06B546B5015A4716941DCBB /* Pods-PluginTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PluginTests-umbrella.h"; sourceTree = ""; };
+ FE5DE9C8F410DA397F9857E73F8B90AF /* CDVConfigParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CDVConfigParser.m; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 137FD195E06C68002F8038D781EE1CE1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 455CD8F7855CC7A4FF370977AF09419F /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 254647EE38576F1E6FE680A4D9BA22B3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E272C2D1FC899E2FA18FA93A496E09FE /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 99733E4961DE174D9B6CA2DA2212F8E3 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ C9181D44A46C8BCF730EAA4B90494821 /* Foundation.framework in Frameworks */,
+ 8FE65960A50DAB49D78947D1DD829A55 /* WebKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ BE6852BD46B2A3BD6CE203149CED67C2 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9ADD62FB5D9238F2908105EB91BB3959 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 0EC29E0DBDD1AA7F3CADB821A3286B96 /* Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 14A79D65A53F0511F9911570922C1B93 /* CapacitorCordova.modulemap */,
+ FB1AFA939CECAB029934DBC1EAF88742 /* CapacitorCordova-dummy.m */,
+ CF80221FA9CE809EEE159B1AE2206780 /* CapacitorCordova-Info.plist */,
+ 17115ED7528F1A0B61F0C52409715CA2 /* CapacitorCordova-prefix.pch */,
+ B6ACD1E8895E541D2AAA00D1AA8A5366 /* CapacitorCordova.debug.xcconfig */,
+ B03A777C244FAEA1BE8CD3E9096CB41B /* CapacitorCordova.release.xcconfig */,
+ );
+ name = "Support Files";
+ path = "../../../ios/Pods/Target Support Files/CapacitorCordova";
+ sourceTree = "";
+ };
+ 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ D436BFCF28DC3F91BC057EA7A5D1DD60 /* iOS */,
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 21D8C95B1BEEF7A6D874CF3A60C0818A /* Plugins */ = {
+ isa = PBXGroup;
+ children = (
+ 4983F575EC8224716E5A6D6B3C5C2085 /* CapacitorCookieManager.swift */,
+ 24EF261844A690BDF4EC68C25C7A5589 /* CapacitorCookies.swift */,
+ AC328445EC3EA24D0B0319746270406C /* CapacitorHttp.swift */,
+ 3DF6B2974AF73F4D12D28B80AC5F36F5 /* CapacitorUrlRequest.swift */,
+ DF1B07523853D822DC5BF0764E9EED19 /* Console.swift */,
+ D7539895D20B52CA8D5ADC3349621C52 /* DefaultPlugins.m */,
+ 878E6794B11C0E8DC0D0272E0075D3DA /* HttpRequestHandler.swift */,
+ 0EC12A44AF93A0F42A7D7934B956E924 /* WebView.swift */,
+ );
+ name = Plugins;
+ path = Capacitor/Capacitor/Plugins;
+ sourceTree = "";
+ };
+ 740E12C899D56C459793F8D89BE2D003 /* Targets Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ 8C0C94AB912114BEDD51A64682444E19 /* Pods-Plugin */,
+ F22F323547F39068C402A67FCA68E7C2 /* Pods-PluginTests */,
+ );
+ name = "Targets Support Files";
+ sourceTree = "";
+ };
+ 8C0C94AB912114BEDD51A64682444E19 /* Pods-Plugin */ = {
+ isa = PBXGroup;
+ children = (
+ 401B4870616B3D09347BE1F13F95D477 /* Pods-Plugin.modulemap */,
+ C818B5D2E7E4FE4DB6A541C59C3F46A2 /* Pods-Plugin-acknowledgements.markdown */,
+ 535AEEBA96B786E87F23F75310B8CB74 /* Pods-Plugin-acknowledgements.plist */,
+ B5A2BC9A9C63563BFD519AB3CE4D5D9D /* Pods-Plugin-dummy.m */,
+ 11DF9CA040CEBA3928A7F34FB4928E2C /* Pods-Plugin-Info.plist */,
+ 7EFD241FB11A4273E5C38133FF35CF7D /* Pods-Plugin-umbrella.h */,
+ DAA5DBF72380C5466DCBC107B7747A60 /* Pods-Plugin.debug.xcconfig */,
+ 6F1715C2DEF7461A3964E29A0FCB6D3D /* Pods-Plugin.release.xcconfig */,
+ );
+ name = "Pods-Plugin";
+ path = "Target Support Files/Pods-Plugin";
+ sourceTree = "";
+ };
+ 8D9964217F2EEB12752C3B7E09079D20 /* Pod */ = {
+ isa = PBXGroup;
+ children = (
+ ED001DBFC4DFBFB5A051A6771A4BA01D /* Capacitor.modulemap */,
+ C6E3C256CDF6737FDBD363893A1A9631 /* Capacitor.podspec */,
+ );
+ name = Pod;
+ sourceTree = "";
+ };
+ A4E15BAF88F61EBE5480D5FC881F9152 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ B83E6620F8659B77710988289B2666DC /* Public */,
+ );
+ name = Classes;
+ path = CapacitorCordova/CapacitorCordova/Classes;
+ sourceTree = "";
+ };
+ B4641ABF5ECED9CF77DF2100CD120734 /* Codable */ = {
+ isa = PBXGroup;
+ children = (
+ D3913FC61666E5D3FD73A8767928B4A8 /* JSValueDecoder.swift */,
+ E07B414D8F1B660835190464D21ABC10 /* JSValueEncoder.swift */,
+ );
+ name = Codable;
+ path = Capacitor/Capacitor/Codable;
+ sourceTree = "";
+ };
+ B479BBBCE5EE0CCF5B51E4DCA1CC2197 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */,
+ 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */,
+ 4B7B23985828F9D35ECCA1361A486792 /* Pods-Plugin */,
+ 58DEAF78291AAC1E83073B9084B45542 /* Pods-PluginTests */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ B80D21DD6B0715BE70978B3A57B6D882 /* assets */ = {
+ isa = PBXGroup;
+ children = (
+ 3CFD655E5956A08005DD5AA421862B8B /* native-bridge.js */,
+ );
+ name = assets;
+ path = Capacitor/Capacitor/assets;
+ sourceTree = "";
+ };
+ B83E6620F8659B77710988289B2666DC /* Public */ = {
+ isa = PBXGroup;
+ children = (
+ 6ECB88325A202355935E8868FC704161 /* AppDelegate.h */,
+ 0105DDBA94BC8BCB737759E84AAE7208 /* AppDelegate.m */,
+ 5A35816AF163353BBA815B674518D5CC /* CDV.h */,
+ 563A77979ACFFB84A79E21335EB145D7 /* CDVAvailability.h */,
+ 493CF8B368FE667CC972900CC186E9C5 /* CDVCommandDelegate.h */,
+ F58C13F718DDDF912C8D8F957ADC563C /* CDVCommandDelegateImpl.h */,
+ 869C4EBBF812C9DF1DEC1E1C9A0414B6 /* CDVCommandDelegateImpl.m */,
+ 7660E6814B15B929A0F9F717B3D7AC68 /* CDVConfigParser.h */,
+ FE5DE9C8F410DA397F9857E73F8B90AF /* CDVConfigParser.m */,
+ DBDA16FB77D8D59DEB32CCFE8105EE7B /* CDVInvokedUrlCommand.h */,
+ 818851AD6AAAFD56B6C49CBB95831BD2 /* CDVInvokedUrlCommand.m */,
+ 0249BF2B4AD076B27532089B9CC0180D /* CDVPlugin.h */,
+ E836D3E3290079E51DDCB96D8A095942 /* CDVPlugin.m */,
+ 5D4E33F09D7E6EA708A393DCA9D6AFB9 /* CDVPlugin+Resources.h */,
+ 59D5E4DFE1C5C24A08DE24200E2D13A5 /* CDVPlugin+Resources.m */,
+ 77A1EAF35490B5AFF5FAAD95EB018E41 /* CDVPluginManager.h */,
+ ECF24F4C1B1CD901AEC6C31DA750B980 /* CDVPluginManager.m */,
+ 17715AB9228EA6E1D4F012B0CCEB33F5 /* CDVPluginResult.h */,
+ 4521DB3AF260E2133CBD36522DB7BA75 /* CDVPluginResult.m */,
+ BA7554A812B86229C8EA5F6F81B321BC /* CDVScreenOrientationDelegate.h */,
+ 817499F6B220524F650005F03DD71B4A /* CDVURLProtocol.h */,
+ 63CA49B9FEB6B4E88D6C824BE745A921 /* CDVURLProtocol.m */,
+ 2A1612702E201BE0983D534A6F9D071A /* CDVViewController.h */,
+ 3732370A43B40B615A6E2E0FA72E51C3 /* CDVViewController.m */,
+ 17AE58CD1ADD07DD9FEA88931D0F5D22 /* CDVWebViewProcessPoolFactory.h */,
+ CE0E983F534D35114FB10F2860CF307A /* CDVWebViewProcessPoolFactory.m */,
+ FAB754CF702177D045E75886784DDA40 /* NSDictionary+CordovaPreferences.h */,
+ B31007A810171D345EEC4FA0BCB21CEA /* NSDictionary+CordovaPreferences.m */,
+ );
+ name = Public;
+ path = Public;
+ sourceTree = "";
+ };
+ C1BCDB7772E00B6E96DD04DCB861C56A /* Pod */ = {
+ isa = PBXGroup;
+ children = (
+ AB23217D412C120E51CE4FC5F03A3527 /* CapacitorCordova.modulemap */,
+ D675757DBDED4F579C45B611BB53DAC9 /* CapacitorCordova.podspec */,
+ );
+ name = Pod;
+ sourceTree = "";
+ };
+ C2E0EED2785D3E2AE9B50BEA84028A28 /* Capacitor */ = {
+ isa = PBXGroup;
+ children = (
+ 605CC094F300E6D3154759CD45B6FE93 /* AppUUID.swift */,
+ 9BEB3F4052AFC1F272E8E569F38D99A8 /* Array+Capacitor.swift */,
+ A0D985C80C63BDFDA02B09FBDE5F6F5A /* Capacitor.h */,
+ 80EC617BCD4EA95F9AAC9AB3CAA3B8E1 /* CapacitorBridge.swift */,
+ D500B14AFB8C0E709A9582A05B81F7EA /* CapacitorExtension.swift */,
+ 83BE6CA12E14393F4ABE5A03E7C4021A /* CAPApplicationDelegateProxy.swift */,
+ F7EA8211FDF54FE98FBAA044F3D7CEA0 /* CAPBridge.swift */,
+ 361CCAC6BE339CADD7B79EFF50187FBE /* CAPBridgeDelegate.swift */,
+ 034E099A6F68B36A4512A9AEB01F41C6 /* CAPBridgedJSTypes.h */,
+ 9B30FA46B72726BE8575E32C6D723774 /* CAPBridgedJSTypes.m */,
+ 1B26A9DFA84BEC3CE4BCC5439C97FEB5 /* CAPBridgedPlugin.h */,
+ ECE23228C63C46F0C4EEBEB40A001646 /* CAPBridgedPlugin+getMethod.swift */,
+ 4482B770B243ABA1FB534B9EF3183997 /* CAPBridgeProtocol.swift */,
+ AA4B6D6707D7C90A6A5A0F9BEBC93AAE /* CAPBridgeViewController.swift */,
+ 11E4D3210F27C4592CE89FEB3DBAE96A /* CAPBridgeViewController+CDVScreenOrientationDelegate.h */,
+ 4C006AC3D0821275FCF555E6E934B840 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m */,
+ 100A2F7039C5EC78463F4B6D919C0027 /* CAPFile.swift */,
+ C28B91C116136C7A64464B856666B322 /* CAPInstanceConfiguration.h */,
+ EFC7B9E1A25EB4AE22B2BFD76CE82545 /* CAPInstanceConfiguration.m */,
+ AD894B091F39A97912ACF4CFBC836D87 /* CAPInstanceConfiguration.swift */,
+ A43E09C2D3593E85EC9C672DACDC6B8E /* CAPInstanceDescriptor.h */,
+ 1D3A58AC532D2AA4F4ED2A1732DB89F4 /* CAPInstanceDescriptor.m */,
+ 548629F623A47EB37EE3410159EA22AF /* CAPInstanceDescriptor.swift */,
+ 649B5A19BF47F4CDA5DCCFF2C64B57EA /* CAPInstancePlugin.swift */,
+ D73A20758871BEC6AB3CCAE68C74DBDA /* CAPLog.swift */,
+ 7E0E0F34AC2147857612A52C22DC6AD2 /* CAPNotifications.swift */,
+ F57C5B609F6096ECA1A3472EB9598349 /* CAPPlugin.h */,
+ F1C958D69C29CFBBDC15C97C583F4B43 /* CAPPlugin.m */,
+ 4197ED0A91C1D7947BA5FBB380806250 /* CAPPlugin+LoadInstance.swift */,
+ 05FEE9BE906E5FD3A2023A19D663CC35 /* CAPPluginCall.h */,
+ BA5F5DAE2C5394EEE17B9029808226AC /* CAPPluginCall.m */,
+ 6015C26B0D7D81331053C8F88F8DDC33 /* CAPPluginCall.swift */,
+ BCF32033DAF5F1B50DB8C41C642EC0CB /* CAPPluginMethod.h */,
+ 1A5E6150D9FC87A26CC0986391626019 /* CAPPluginMethod.m */,
+ 5985DDA358070FD5E8E0924F7B21993B /* Data+Capacitor.swift */,
+ ED48CB5BF6D421A9CDA0C959348D407C /* DocLinks.swift */,
+ 8F944F7FF0C26D29173A8EF79812831C /* JS.swift */,
+ D81BE104344112B7A5C9F3A53EDE99A7 /* JSExport.swift */,
+ 529064D5D9025BE6A79DE45A25CF473C /* JSTypes.swift */,
+ 3B9E8896A248D0A3B628BE972B7A4486 /* KeyPath.swift */,
+ B67934A6336DB96153F69F2885F7FE6A /* KeyValueStore.swift */,
+ 2F11C8BC6D3CB7B817842AA9AFAC48F4 /* NotificationHandlerProtocol.swift */,
+ 9BC36ADDFA38A3661389DDA825FE5083 /* NotificationRouter.swift */,
+ D16D9D7D1D75407542D70F279BE858C5 /* PluginCallResult.swift */,
+ B6DA0364646B8DAC5AC1996CA4DB6D82 /* PluginConfig.swift */,
+ 9D81585547EDB4B034BE2EA0D9D56208 /* PrivacyInfo.xcprivacy */,
+ E5B59AC595CB35EA245E9B30141E6924 /* Router.swift */,
+ 058355C86F3D67F2B6321DC4E1FC10A1 /* TmpViewController.swift */,
+ E997E61FDD01E884BBF5AC59944653AB /* UIColor.swift */,
+ 3763CB8B63738A487F25B9D159EDF8DE /* UIStatusBarManager+CAPHandleTapAction.m */,
+ 467FCC173510CF0FC276F6532D770907 /* WebViewAssetHandler.swift */,
+ 512101D8B0690EC4264E4026595E6C09 /* WebViewDelegationHandler.swift */,
+ 5E899B1AC03689EDAC12449B726FB334 /* WKWebView+Capacitor.m */,
+ DBBDB22A2818944BBF894475E81CFFE6 /* WKWebView+Capacitor.swift */,
+ B80D21DD6B0715BE70978B3A57B6D882 /* assets */,
+ B4641ABF5ECED9CF77DF2100CD120734 /* Codable */,
+ 21D8C95B1BEEF7A6D874CF3A60C0818A /* Plugins */,
+ 8D9964217F2EEB12752C3B7E09079D20 /* Pod */,
+ EEDD3C1FCC1C3B500A707B1DEE6A16D1 /* Support Files */,
+ );
+ name = Capacitor;
+ path = "../../node_modules/@capacitor/ios";
+ sourceTree = "";
+ };
+ CF1408CF629C7361332E53B88F7BD30C = {
+ isa = PBXGroup;
+ children = (
+ 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
+ FBC934EFED6A2BB758D83B692683C295 /* Development Pods */,
+ 1628BF05B4CAFDCC3549A101F5A10A17 /* Frameworks */,
+ B479BBBCE5EE0CCF5B51E4DCA1CC2197 /* Products */,
+ 740E12C899D56C459793F8D89BE2D003 /* Targets Support Files */,
+ );
+ sourceTree = "";
+ };
+ D436BFCF28DC3F91BC057EA7A5D1DD60 /* iOS */ = {
+ isa = PBXGroup;
+ children = (
+ 6CA66746F86BE55810CFE7AD03678EED /* Foundation.framework */,
+ EDB8C9ACBBD85B912C1048908BCC00F8 /* WebKit.framework */,
+ );
+ name = iOS;
+ sourceTree = "";
+ };
+ DA9DD59DAD49D440C669BDA0491F4FDC /* CapacitorCordova */ = {
+ isa = PBXGroup;
+ children = (
+ 703752F658D442F244EA452FB74965B3 /* CapacitorCordova.h */,
+ 95648C56D4E4ABD41EE8AF4CB2326B5B /* PrivacyInfo.xcprivacy */,
+ A4E15BAF88F61EBE5480D5FC881F9152 /* Classes */,
+ C1BCDB7772E00B6E96DD04DCB861C56A /* Pod */,
+ 0EC29E0DBDD1AA7F3CADB821A3286B96 /* Support Files */,
+ );
+ name = CapacitorCordova;
+ path = "../../node_modules/@capacitor/ios";
+ sourceTree = "";
+ };
+ EEDD3C1FCC1C3B500A707B1DEE6A16D1 /* Support Files */ = {
+ isa = PBXGroup;
+ children = (
+ D270CA36CCC04D75B45920C620AEAE72 /* Capacitor.modulemap */,
+ C9870CDDCF99B18DB64FE413BD355A33 /* Capacitor-dummy.m */,
+ 2016A734CA851674602290F66A762B63 /* Capacitor-Info.plist */,
+ E8B0050ADDF2B0F4CB17DE2B2B6DFC69 /* Capacitor-prefix.pch */,
+ 50F35474E793D3079F51A1423D50322D /* Capacitor.debug.xcconfig */,
+ D585E1B9BF72861652A5256F71241D37 /* Capacitor.release.xcconfig */,
+ );
+ name = "Support Files";
+ path = "../../../ios/Pods/Target Support Files/Capacitor";
+ sourceTree = "";
+ };
+ F22F323547F39068C402A67FCA68E7C2 /* Pods-PluginTests */ = {
+ isa = PBXGroup;
+ children = (
+ E8950E00418A9BCE1D0E315A85B496FB /* Pods-PluginTests.modulemap */,
+ A1E5822FC61F9421CF2456D453B75418 /* Pods-PluginTests-acknowledgements.markdown */,
+ 45AEE2D3BD43D61882B01AAE2B8F11E4 /* Pods-PluginTests-acknowledgements.plist */,
+ 7E74390F09A29D254E98C5610DDD5A28 /* Pods-PluginTests-dummy.m */,
+ D6A9D9102A6C05CE4B93BA2C13954FE9 /* Pods-PluginTests-frameworks.sh */,
+ 939147BBA617256FB279F110F9DD2227 /* Pods-PluginTests-Info.plist */,
+ FBD93D36D06B546B5015A4716941DCBB /* Pods-PluginTests-umbrella.h */,
+ 47F881CAB117FE10E92963EF6CC91861 /* Pods-PluginTests.debug.xcconfig */,
+ 7D967D566F7C3FD1B78180239E63BC92 /* Pods-PluginTests.release.xcconfig */,
+ );
+ name = "Pods-PluginTests";
+ path = "Target Support Files/Pods-PluginTests";
+ sourceTree = "";
+ };
+ FBC934EFED6A2BB758D83B692683C295 /* Development Pods */ = {
+ isa = PBXGroup;
+ children = (
+ C2E0EED2785D3E2AE9B50BEA84028A28 /* Capacitor */,
+ DA9DD59DAD49D440C669BDA0491F4FDC /* CapacitorCordova */,
+ );
+ name = "Development Pods";
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 0ED80981ABA8375CD1BEFA19CF254C0B /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 52D57F9B1D5180EF81CB354EFDE39C0B /* Pods-PluginTests-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1AA5471D29DB2FE0A5F2DCBC0801102F /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 926BF4474C23361F1CBB6972C18294C7 /* Capacitor.h in Headers */,
+ 3AD12CA3257D333D693EF402B0D37050 /* CAPBridgedJSTypes.h in Headers */,
+ D6CD38508B1A1BA95FE5DDD0D475C48F /* CAPBridgedPlugin.h in Headers */,
+ 4AC0806A2014559389ED0D5F5864898F /* CAPBridgeViewController+CDVScreenOrientationDelegate.h in Headers */,
+ CFD73DDF6ECC44D5319C1C3220DDE419 /* CAPInstanceConfiguration.h in Headers */,
+ 55EFE2AD906557A4B67F8121371C3A73 /* CAPInstanceDescriptor.h in Headers */,
+ BB87CDD8BC95A41CC36A5F310531447D /* CAPPlugin.h in Headers */,
+ 148484B94011D20A3216BC1BA9BD0BC1 /* CAPPluginCall.h in Headers */,
+ 7AA91E8502C6B20AA53707E2C588976E /* CAPPluginMethod.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ DD7A5A1E9F26482BB0BF7730B0064DA0 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D6269E73CDF8361E771B00BA95B326A3 /* Pods-Plugin-umbrella.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FC92A16E590D28F38BDC31354D987585 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 5271648081A40D55671BA56FBC8D43CE /* AppDelegate.h in Headers */,
+ 75FED7AF2279400A5BF6C3862FB9355F /* CapacitorCordova.h in Headers */,
+ F75957FA306C694CA84137ECFC16A133 /* CDV.h in Headers */,
+ 1B15596AD72235D0A9E68C338FED5894 /* CDVAvailability.h in Headers */,
+ B3AA855A84675E936255A71AD4DB9B23 /* CDVCommandDelegate.h in Headers */,
+ 877AAFE43D8767C5A9277971E95289D4 /* CDVCommandDelegateImpl.h in Headers */,
+ 8D649A3F9FFE8B6B7D6DB866677CFE97 /* CDVConfigParser.h in Headers */,
+ 69F1FB75650D41026C8AB7D4DC6B5EF5 /* CDVInvokedUrlCommand.h in Headers */,
+ F34725C8044DAAA071D2B2687BCF9861 /* CDVPlugin.h in Headers */,
+ EACC53C924CC079B4D4EB4B2A729F01D /* CDVPlugin+Resources.h in Headers */,
+ 300BB1816FB64B3DFE3505C61DABC8A0 /* CDVPluginManager.h in Headers */,
+ 2D6D1E1EFD2949E677434B3B469C88E8 /* CDVPluginResult.h in Headers */,
+ 176129582238765CAF813BB1E7AB7205 /* CDVScreenOrientationDelegate.h in Headers */,
+ 2E593F392039A254C0CDD3989DEE41D7 /* CDVURLProtocol.h in Headers */,
+ 5D25C6861DDE1676A36EAE28ADEFEB7E /* CDVViewController.h in Headers */,
+ E9B95392857E466198E2FFD234092B93 /* CDVWebViewProcessPoolFactory.h in Headers */,
+ 83C85B8084B10C07A2915FC96D7464E7 /* NSDictionary+CordovaPreferences.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1358F1177FC46BA6C6E04FEEDC769D46 /* Build configuration list for PBXNativeTarget "Capacitor" */;
+ buildPhases = (
+ 1AA5471D29DB2FE0A5F2DCBC0801102F /* Headers */,
+ BD74089860BEE17CEAFA4ABDD9E77167 /* Sources */,
+ 137FD195E06C68002F8038D781EE1CE1 /* Frameworks */,
+ 0839094697C7E32ACFB8CF80AD7D0194 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 9E62A31C4822D4E40EDECF67F80B6206 /* PBXTargetDependency */,
+ );
+ name = Capacitor;
+ productName = Capacitor;
+ productReference = 44D6062E8C618EC2B8F1D7229E8AD501 /* Capacitor */;
+ productType = "com.apple.product-type.framework";
+ };
+ 10467BF5021453A5297325418ACC4E64 /* Pods-Plugin */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 5AB1AD12B001DCFA4D2BB403DD59571F /* Build configuration list for PBXNativeTarget "Pods-Plugin" */;
+ buildPhases = (
+ DD7A5A1E9F26482BB0BF7730B0064DA0 /* Headers */,
+ 23FE8FB584585CCC7A99F0276308F2CE /* Sources */,
+ BE6852BD46B2A3BD6CE203149CED67C2 /* Frameworks */,
+ 485311AE53DA94650A43707370941295 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 547D4E94BECE254D556F5E6D7B9400DD /* PBXTargetDependency */,
+ 8AEB5906FE8EC93140ED2E305C9D3F42 /* PBXTargetDependency */,
+ );
+ name = "Pods-Plugin";
+ productName = Pods_Plugin;
+ productReference = 4B7B23985828F9D35ECCA1361A486792 /* Pods-Plugin */;
+ productType = "com.apple.product-type.framework";
+ };
+ 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = BAEF5ED26067BEC37C548BF989EA8FB7 /* Build configuration list for PBXNativeTarget "CapacitorCordova" */;
+ buildPhases = (
+ FC92A16E590D28F38BDC31354D987585 /* Headers */,
+ E16C7EF01B79DA307ECD59FF453B0DE7 /* Sources */,
+ 99733E4961DE174D9B6CA2DA2212F8E3 /* Frameworks */,
+ D8F27D50E94C12413DBA741023DE9C90 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = CapacitorCordova;
+ productName = Cordova;
+ productReference = 1ABFDA3391AEBA42EFB0FEBF824A6E34 /* CapacitorCordova */;
+ productType = "com.apple.product-type.framework";
+ };
+ 401C34F4B17A319A7086C93431C92B42 /* Pods-PluginTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 622B3E98A1E093A71E2EFCAD99AA4D8F /* Build configuration list for PBXNativeTarget "Pods-PluginTests" */;
+ buildPhases = (
+ 0ED80981ABA8375CD1BEFA19CF254C0B /* Headers */,
+ EDE5DFE7A4ABFE1CD401D85AC5128A82 /* Sources */,
+ 254647EE38576F1E6FE680A4D9BA22B3 /* Frameworks */,
+ 23C6CC87A4B5FCEE9CEF4367F24E5212 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 2F1424774B5689372E63284132F95D84 /* PBXTargetDependency */,
+ D64FEDAAA12672112B61EAAE71F05328 /* PBXTargetDependency */,
+ );
+ name = "Pods-PluginTests";
+ productName = Pods_PluginTests;
+ productReference = 58DEAF78291AAC1E83073B9084B45542 /* Pods-PluginTests */;
+ productType = "com.apple.product-type.framework";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastSwiftUpdateCheck = 1600;
+ LastUpgradeCheck = 1600;
+ };
+ buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
+ compatibilityVersion = "Xcode 8.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ Base,
+ en,
+ );
+ mainGroup = CF1408CF629C7361332E53B88F7BD30C;
+ minimizedProjectReferenceProxies = 0;
+ preferredProjectObjectVersion = 77;
+ productRefGroup = B479BBBCE5EE0CCF5B51E4DCA1CC2197 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */,
+ 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */,
+ 10467BF5021453A5297325418ACC4E64 /* Pods-Plugin */,
+ 401C34F4B17A319A7086C93431C92B42 /* Pods-PluginTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 0839094697C7E32ACFB8CF80AD7D0194 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 9C1F9C1B8E5BA5A84502172BCFE12B5E /* native-bridge.js in Resources */,
+ B2E9029E480D0080EC6E60289094AB72 /* PrivacyInfo.xcprivacy in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 23C6CC87A4B5FCEE9CEF4367F24E5212 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 485311AE53DA94650A43707370941295 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ D8F27D50E94C12413DBA741023DE9C90 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 00DD49AAA7B7FBACB25F3DCA70FF2185 /* PrivacyInfo.xcprivacy in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 23FE8FB584585CCC7A99F0276308F2CE /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 0499127BAC8542710DA405AF0FFE94A3 /* Pods-Plugin-dummy.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ BD74089860BEE17CEAFA4ABDD9E77167 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ AF417F0017CAB8D4750C6DA49603D1F9 /* AppUUID.swift in Sources */,
+ 57F75BCC4364106AEDA3D57862A0A027 /* Array+Capacitor.swift in Sources */,
+ 9AF55497FBDEDD5F7A73314595DCE8CA /* Capacitor-dummy.m in Sources */,
+ 6DA5EDEC3ED099DD0674F0887286C372 /* CapacitorBridge.swift in Sources */,
+ 4C6B5F2E9DA93A4D34CD6D193EAFAECB /* CapacitorCookieManager.swift in Sources */,
+ 5D7E32867181BC87F7B54D0022B143C2 /* CapacitorCookies.swift in Sources */,
+ 2F5A978C43E03ACC771F8BA4A4EFC8C3 /* CapacitorExtension.swift in Sources */,
+ 0C58F0348A989679220D52A7968B65AD /* CapacitorHttp.swift in Sources */,
+ B792996B7760D781528A1C763063A368 /* CapacitorUrlRequest.swift in Sources */,
+ 3FAA1B6C5055BD2E04059B17765662FE /* CAPApplicationDelegateProxy.swift in Sources */,
+ EB99E1BE46CB187B91736F39E3ED08BB /* CAPBridge.swift in Sources */,
+ C70B7BAFB1CC9CB3BDE81CD032F7E8C0 /* CAPBridgeDelegate.swift in Sources */,
+ BF6B68F1184491A2448C7FBB4B5133C6 /* CAPBridgedJSTypes.m in Sources */,
+ 3B90DE2EBCB83B06B8DD720EC3162314 /* CAPBridgedPlugin+getMethod.swift in Sources */,
+ 0CAF5AA5DFABA1AFBAFC9006FA117868 /* CAPBridgeProtocol.swift in Sources */,
+ 4DCBD5692A9842C29E2237EBF131565C /* CAPBridgeViewController.swift in Sources */,
+ AFB76EBA404290D774F5D2B7500F8D26 /* CAPBridgeViewController+CDVScreenOrientationDelegate.m in Sources */,
+ 6436FD5818142CE6C011F59096CB5126 /* CAPFile.swift in Sources */,
+ 97AED5E6D515157B9A0DAEC0DD412BED /* CAPInstanceConfiguration.m in Sources */,
+ 72F1392053F0629A4CDABC370C13BC6E /* CAPInstanceConfiguration.swift in Sources */,
+ F2CB5F2716E2A29BBD97D0E536D2EC4E /* CAPInstanceDescriptor.m in Sources */,
+ 21538F9E86EC068189BF4A052B2BC138 /* CAPInstanceDescriptor.swift in Sources */,
+ 34DF23D0F78E37B2C73491A0A882750C /* CAPInstancePlugin.swift in Sources */,
+ F62743280115D52A54566D7AFF46A271 /* CAPLog.swift in Sources */,
+ 0CDC3D7F98C3CAD813E6B7CD9A86904A /* CAPNotifications.swift in Sources */,
+ 397E4837F8D249FCF827C9B45804EF45 /* CAPPlugin.m in Sources */,
+ 98DF94563B6A5901AA43E27520CD78F0 /* CAPPlugin+LoadInstance.swift in Sources */,
+ 1045EACE8E8B629DC92734306767FFB4 /* CAPPluginCall.m in Sources */,
+ EF77B5C312518AF79A588746882D93CE /* CAPPluginCall.swift in Sources */,
+ 461E7273DE46D278F1194EA42888CCC7 /* CAPPluginMethod.m in Sources */,
+ 8C9938F35EF9682762937A36EBCF0D8C /* Console.swift in Sources */,
+ 4CC2C15BF2EACE8730ACEEC3166E4E6E /* Data+Capacitor.swift in Sources */,
+ 45D2423AA78EB59FAB2F0BDD0B1E75C5 /* DefaultPlugins.m in Sources */,
+ 8F1B2EB11C7A2369929B4E71D0ED1EAD /* DocLinks.swift in Sources */,
+ A7F57A930C06BAB6B840BDEAA9781B09 /* HttpRequestHandler.swift in Sources */,
+ CFAEC4AE503B12B7769D5B6558D46D9B /* JS.swift in Sources */,
+ B3212C5BA6214ADED01CB29F9800D649 /* JSExport.swift in Sources */,
+ 75C6F32607D77EDEE605063D70641A82 /* JSTypes.swift in Sources */,
+ C76B932E7394525172D7D6151E1E8C85 /* JSValueDecoder.swift in Sources */,
+ 2EE90CB8CD51A9D111E674C30CA6713F /* JSValueEncoder.swift in Sources */,
+ 5B2897352536D64DA610740A510672E9 /* KeyPath.swift in Sources */,
+ 57CED43B0677CB39026183C4DE28D266 /* KeyValueStore.swift in Sources */,
+ 5ADB39382AF2A449748E390C77797E83 /* NotificationHandlerProtocol.swift in Sources */,
+ AE866E6014CB92EEFB702EAA6B26DA69 /* NotificationRouter.swift in Sources */,
+ 2745795601B95C8ADCD9CD944EA64816 /* PluginCallResult.swift in Sources */,
+ 4CA1078205A5A8CD35CFFD2F3E3726DB /* PluginConfig.swift in Sources */,
+ 8FB38FB7DAEF8175DC26FBF29EF794B3 /* Router.swift in Sources */,
+ 2EF78801E23385A00A7FED52738C450F /* TmpViewController.swift in Sources */,
+ 8ADBB5DB517A52E496244D7F3C61993A /* UIColor.swift in Sources */,
+ ED227CB506888616381FB4867D221B3A /* UIStatusBarManager+CAPHandleTapAction.m in Sources */,
+ F30492DC285ED1AD4470173A3AB2C196 /* WebView.swift in Sources */,
+ 66C1BEA5070DA09154CACF1C82386C24 /* WebViewAssetHandler.swift in Sources */,
+ 8CCB724976529DED0CCB88A368B98DBB /* WebViewDelegationHandler.swift in Sources */,
+ 00E3AC2042D078DEA544CAA6CD4180A8 /* WKWebView+Capacitor.m in Sources */,
+ EA83A79FF1DD9CFD564539EBE85A4075 /* WKWebView+Capacitor.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ E16C7EF01B79DA307ECD59FF453B0DE7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ DAEA37C2E0F7D2B3AE9398A8FEC46341 /* AppDelegate.m in Sources */,
+ E30ECF193303AD72B7F96836A36BEB45 /* CapacitorCordova-dummy.m in Sources */,
+ 4D6F8880738509BA1E553595FEB47F95 /* CDVCommandDelegateImpl.m in Sources */,
+ DC1825A1FB35A20419A2A0CD5FBA84C9 /* CDVConfigParser.m in Sources */,
+ 85F009269489F186F56C821D384F083F /* CDVInvokedUrlCommand.m in Sources */,
+ F226824369CCC866568DC74B5ED7BD35 /* CDVPlugin.m in Sources */,
+ 027FC9F6CE661B44DE8435A77C6FDA4B /* CDVPlugin+Resources.m in Sources */,
+ 76CB6E36ED7444EF01E0CF68D963977B /* CDVPluginManager.m in Sources */,
+ FBE6F2054283082FBFB0F4DB9E751E90 /* CDVPluginResult.m in Sources */,
+ F2273535879477B590B87264FF4B0B4A /* CDVURLProtocol.m in Sources */,
+ AE3F0F5552793D35078BC7ED891FAD7A /* CDVViewController.m in Sources */,
+ 7CE9D62121171BA6C313FBAAC145250C /* CDVWebViewProcessPoolFactory.m in Sources */,
+ 29AD4AFDB1051F7091DFB08B64CD7EFB /* NSDictionary+CordovaPreferences.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ EDE5DFE7A4ABFE1CD401D85AC5128A82 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1E4541F5947B0911BB3D0A3E2B4FCFD1 /* Pods-PluginTests-dummy.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ 2F1424774B5689372E63284132F95D84 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = Capacitor;
+ target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */;
+ targetProxy = 6DF20DB01C9B457730A36CA25BA09463 /* PBXContainerItemProxy */;
+ };
+ 547D4E94BECE254D556F5E6D7B9400DD /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = Capacitor;
+ target = 0ECF3D6BFCC08377AE23B027EE1D4371 /* Capacitor */;
+ targetProxy = 3FE83C1640CBE5C0D9BA0420819B5E5F /* PBXContainerItemProxy */;
+ };
+ 8AEB5906FE8EC93140ED2E305C9D3F42 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = CapacitorCordova;
+ target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */;
+ targetProxy = BAEF81288EED2D4A7CE700D573E39499 /* PBXContainerItemProxy */;
+ };
+ 9E62A31C4822D4E40EDECF67F80B6206 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = CapacitorCordova;
+ target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */;
+ targetProxy = 127DC55B609A0305F67450805B0C7094 /* PBXContainerItemProxy */;
+ };
+ D64FEDAAA12672112B61EAAE71F05328 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = CapacitorCordova;
+ target = 400AE44335852A2D8D746557E21E8EB0 /* CapacitorCordova */;
+ targetProxy = 845C3BC277EA5C1FE432A56E456ABCFB /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 39159D1FF19276FCA6607E8B102E55A9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 47F881CAB117FE10E92963EF6CC91861 /* Pods-PluginTests.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ INFOPLIST_FILE = "Target Support Files/Pods-PluginTests/Pods-PluginTests-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-PluginTests/Pods-PluginTests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 3B8567A02FDBA9BEDC3D56BA717BF22A /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 6F1715C2DEF7461A3964E29A0FCB6D3D /* Pods-Plugin.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ INFOPLIST_FILE = "Target Support Files/Pods-Plugin/Pods-Plugin-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-Plugin/Pods-Plugin.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 711B95E68E87459E7C7B93FF45435940 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = DAA5DBF72380C5466DCBC107B7747A60 /* Pods-Plugin.debug.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ INFOPLIST_FILE = "Target Support Files/Pods-Plugin/Pods-Plugin-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-Plugin/Pods-Plugin.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 760F0D17D3F25A5926F2265CAA85E8DA /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = D585E1B9BF72861652A5256F71241D37 /* Capacitor.release.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_PREFIX_HEADER = "Target Support Files/Capacitor/Capacitor-prefix.pch";
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = "Target Support Files/Capacitor/Capacitor-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MODULEMAP_FILE = "Target Support Files/Capacitor/Capacitor.modulemap";
+ PRODUCT_MODULE_NAME = Capacitor;
+ PRODUCT_NAME = Capacitor;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_INSTALL_OBJC_HEADER = YES;
+ SWIFT_VERSION = 5.1;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ 7FDCD1C0E22644411D5AE10DC842F275 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = B6ACD1E8895E541D2AAA00D1AA8A5366 /* CapacitorCordova.debug.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_PREFIX_HEADER = "Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch";
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MODULEMAP_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova.modulemap";
+ PRODUCT_MODULE_NAME = Cordova;
+ PRODUCT_NAME = Cordova;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_INSTALL_OBJC_HEADER = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "POD_CONFIGURATION_DEBUG=1",
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ STRIP_INSTALLED_PRODUCT = NO;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ SYMROOT = "${SRCROOT}/../build";
+ };
+ name = Debug;
+ };
+ 9E406C6AAF85E580207CD97B0044DEAB /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "POD_CONFIGURATION_RELEASE=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ STRIP_INSTALLED_PRODUCT = NO;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ SWIFT_VERSION = 5.0;
+ SYMROOT = "${SRCROOT}/../build";
+ };
+ name = Release;
+ };
+ D1A0DA2BC08F5B6E8725FB8C32B26B7D /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 7D967D566F7C3FD1B78180239E63BC92 /* Pods-PluginTests.release.xcconfig */;
+ buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ INFOPLIST_FILE = "Target Support Files/Pods-PluginTests/Pods-PluginTests-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MACH_O_TYPE = staticlib;
+ MODULEMAP_FILE = "Target Support Files/Pods-PluginTests/Pods-PluginTests.modulemap";
+ OTHER_LDFLAGS = "";
+ OTHER_LIBTOOLFLAGS = "";
+ PODS_ROOT = "$(SRCROOT)";
+ PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+ D2E948D57242CB5836BEFF56D00C998A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 50F35474E793D3079F51A1423D50322D /* Capacitor.debug.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_PREFIX_HEADER = "Target Support Files/Capacitor/Capacitor-prefix.pch";
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = "Target Support Files/Capacitor/Capacitor-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MODULEMAP_FILE = "Target Support Files/Capacitor/Capacitor.modulemap";
+ PRODUCT_MODULE_NAME = Capacitor;
+ PRODUCT_NAME = Capacitor;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_INSTALL_OBJC_HEADER = YES;
+ SWIFT_VERSION = 5.1;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ EC05AB339819544C9AF02DF578CCD4FA /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = B03A777C244FAEA1BE8CD3E9096CB41B /* CapacitorCordova.release.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ CLANG_ENABLE_OBJC_WEAK = NO;
+ "CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
+ "CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
+ CURRENT_PROJECT_VERSION = 1;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_MODULE_VERIFIER = NO;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_PREFIX_HEADER = "Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch";
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist";
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MODULEMAP_FILE = "Target Support Files/CapacitorCordova/CapacitorCordova.modulemap";
+ PRODUCT_MODULE_NAME = Cordova;
+ PRODUCT_NAME = Cordova;
+ SDKROOT = iphoneos;
+ SKIP_INSTALL = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
+ SWIFT_INSTALL_OBJC_HEADER = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1358F1177FC46BA6C6E04FEEDC769D46 /* Build configuration list for PBXNativeTarget "Capacitor" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ D2E948D57242CB5836BEFF56D00C998A /* Debug */,
+ 760F0D17D3F25A5926F2265CAA85E8DA /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 8DE5143C03248BB6CD542DE3963D6F3A /* Debug */,
+ 9E406C6AAF85E580207CD97B0044DEAB /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 5AB1AD12B001DCFA4D2BB403DD59571F /* Build configuration list for PBXNativeTarget "Pods-Plugin" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 711B95E68E87459E7C7B93FF45435940 /* Debug */,
+ 3B8567A02FDBA9BEDC3D56BA717BF22A /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 622B3E98A1E093A71E2EFCAD99AA4D8F /* Build configuration list for PBXNativeTarget "Pods-PluginTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 39159D1FF19276FCA6607E8B102E55A9 /* Debug */,
+ D1A0DA2BC08F5B6E8725FB8C32B26B7D /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ BAEF5ED26067BEC37C548BF989EA8FB7 /* Build configuration list for PBXNativeTarget "CapacitorCordova" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 7FDCD1C0E22644411D5AE10DC842F275 /* Debug */,
+ EC05AB339819544C9AF02DF578CCD4FA /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
+}
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Capacitor.xcscheme b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Capacitor.xcscheme
new file mode 100644
index 00000000..d001fbde
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Capacitor.xcscheme
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/CapacitorCordova.xcscheme b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/CapacitorCordova.xcscheme
new file mode 100644
index 00000000..e8a4c0ed
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/CapacitorCordova.xcscheme
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-Plugin.xcscheme b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-Plugin.xcscheme
new file mode 100644
index 00000000..ed3fe3bb
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-Plugin.xcscheme
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-PluginTests.xcscheme b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-PluginTests.xcscheme
new file mode 100644
index 00000000..502b35bb
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/Pods-PluginTests.xcscheme
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/xcschememanagement.plist b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 00000000..0491af45
--- /dev/null
+++ b/speech-recognition/ios/Pods/Pods.xcodeproj/xcuserdata/richandrasekaran.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,31 @@
+
+
+
+
+ SchemeUserState
+
+ Capacitor.xcscheme
+
+ isShown
+
+
+ CapacitorCordova.xcscheme
+
+ isShown
+
+
+ Pods-Plugin.xcscheme
+
+ isShown
+
+
+ Pods-PluginTests.xcscheme
+
+ isShown
+
+
+
+ SuppressBuildableAutocreation
+
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-Info.plist b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-Info.plist
new file mode 100644
index 00000000..060f4744
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ ${PODS_DEVELOPMENT_LANGUAGE}
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 6.0.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-dummy.m b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-dummy.m
new file mode 100644
index 00000000..be1a8444
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Capacitor : NSObject
+@end
+@implementation PodsDummy_Capacitor
+@end
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch
new file mode 100644
index 00000000..beb2a244
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor-prefix.pch
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig
new file mode 100644
index 00000000..51a54514
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.debug.xcconfig
@@ -0,0 +1,16 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Capacitor
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@capacitor/ios
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.modulemap b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.modulemap
new file mode 100644
index 00000000..b39eb8e8
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.modulemap
@@ -0,0 +1,8 @@
+framework module Capacitor {
+ umbrella header "Capacitor.h"
+ exclude header "CAPBridgedJSTypes.h"
+ exclude header "CAPBridgeViewController+CDVScreenOrientationDelegate.h"
+
+ export *
+ module * { export * }
+}
diff --git a/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig
new file mode 100644
index 00000000..51a54514
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Capacitor/Capacitor.release.xcconfig
@@ -0,0 +1,16 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Capacitor
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Cordova" -framework "WebKit"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@capacitor/ios
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist
new file mode 100644
index 00000000..060f4744
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ ${PODS_DEVELOPMENT_LANGUAGE}
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 6.0.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m
new file mode 100644
index 00000000..47e9c39f
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_CapacitorCordova : NSObject
+@end
+@implementation PodsDummy_CapacitorCordova
+@end
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch
new file mode 100644
index 00000000..beb2a244
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova-prefix.pch
@@ -0,0 +1,12 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig
new file mode 100644
index 00000000..6d1b3388
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.debug.xcconfig
@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -framework "WebKit"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@capacitor/ios
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap
new file mode 100644
index 00000000..32af43c1
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.modulemap
@@ -0,0 +1,6 @@
+framework module Cordova {
+ umbrella header "CapacitorCordova.h"
+
+ export *
+ module * { export * }
+}
diff --git a/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig
new file mode 100644
index 00000000..6d1b3388
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/CapacitorCordova/CapacitorCordova.release.xcconfig
@@ -0,0 +1,13 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+OTHER_LDFLAGS = $(inherited) -framework "WebKit"
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
+PODS_ROOT = ${SRCROOT}
+PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../node_modules/@capacitor/ios
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
+SKIP_INSTALL = YES
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-Info.plist b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-Info.plist
new file mode 100644
index 00000000..19cf209d
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ ${PODS_DEVELOPMENT_LANGUAGE}
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.markdown b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.markdown
new file mode 100644
index 00000000..2a136caf
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.markdown
@@ -0,0 +1,53 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+
+## Capacitor
+
+MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+## CapacitorCordova
+
+MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Generated by CocoaPods - https://cocoapods.org
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.plist b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.plist
new file mode 100644
index 00000000..d21b1fd2
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-acknowledgements.plist
@@ -0,0 +1,91 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ License
+ MIT
+ Title
+ Capacitor
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ License
+ MIT
+ Title
+ CapacitorCordova
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - https://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-dummy.m b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-dummy.m
new file mode 100644
index 00000000..8685bcb1
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Pods_Plugin : NSObject
+@end
+@implementation PodsDummy_Pods_Plugin
+@end
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-umbrella.h b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-umbrella.h
new file mode 100644
index 00000000..ce248b22
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_PluginVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_PluginVersionString[];
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig
new file mode 100644
index 00000000..59bf9923
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.debug.xcconfig
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Capacitor" -framework "Cordova" -framework "WebKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "-F${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.modulemap b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.modulemap
new file mode 100644
index 00000000..6ee05ec0
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.modulemap
@@ -0,0 +1,6 @@
+framework module Pods_Plugin {
+ umbrella header "Pods-Plugin-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig
new file mode 100644
index 00000000..59bf9923
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-Plugin/Pods-Plugin.release.xcconfig
@@ -0,0 +1,15 @@
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' '@executable_path/../../Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Capacitor" -framework "Cordova" -framework "WebKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "-F${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-Info.plist b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-Info.plist
new file mode 100644
index 00000000..19cf209d
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ ${PODS_DEVELOPMENT_LANGUAGE}
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ ${PRODUCT_NAME}
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ ${CURRENT_PROJECT_VERSION}
+ NSPrincipalClass
+
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.markdown b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.markdown
new file mode 100644
index 00000000..2a136caf
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.markdown
@@ -0,0 +1,53 @@
+# Acknowledgements
+This application makes use of the following third party libraries:
+
+## Capacitor
+
+MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+## CapacitorCordova
+
+MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Generated by CocoaPods - https://cocoapods.org
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.plist b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.plist
new file mode 100644
index 00000000..d21b1fd2
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-acknowledgements.plist
@@ -0,0 +1,91 @@
+
+
+
+
+ PreferenceSpecifiers
+
+
+ FooterText
+ This application makes use of the following third party libraries:
+ Title
+ Acknowledgements
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ License
+ MIT
+ Title
+ Capacitor
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ MIT License
+
+Copyright (c) 2017-present Drifty Co.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+ License
+ MIT
+ Title
+ CapacitorCordova
+ Type
+ PSGroupSpecifier
+
+
+ FooterText
+ Generated by CocoaPods - https://cocoapods.org
+ Title
+
+ Type
+ PSGroupSpecifier
+
+
+ StringsTable
+ Acknowledgements
+ Title
+ Acknowledgements
+
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-dummy.m b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-dummy.m
new file mode 100644
index 00000000..fd42ff18
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-dummy.m
@@ -0,0 +1,5 @@
+#import
+@interface PodsDummy_Pods_PluginTests : NSObject
+@end
+@implementation PodsDummy_Pods_PluginTests
+@end
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-frameworks.sh b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-frameworks.sh
new file mode 100755
index 00000000..dddb6010
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-frameworks.sh
@@ -0,0 +1,188 @@
+#!/bin/sh
+set -e
+set -u
+set -o pipefail
+
+function on_error {
+ echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
+}
+trap 'on_error $LINENO' ERR
+
+if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
+ # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
+ # frameworks to, so exit 0 (signalling the script phase was successful).
+ exit 0
+fi
+
+echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
+SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
+BCSYMBOLMAP_DIR="BCSymbolMaps"
+
+
+# This protects against multiple targets copying the same framework dependency at the same time. The solution
+# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
+RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
+
+# Copies and strips a vendored framework
+install_framework()
+{
+ if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$1"
+ elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
+ local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
+ elif [ -r "$1" ]; then
+ local source="$1"
+ fi
+
+ local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
+
+ if [ -L "${source}" ]; then
+ echo "Symlinked..."
+ source="$(readlink -f "${source}")"
+ fi
+
+ if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
+ # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
+ find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
+ echo "Installing $f"
+ install_bcsymbolmap "$f" "$destination"
+ rm "$f"
+ done
+ rmdir "${source}/${BCSYMBOLMAP_DIR}"
+ fi
+
+ # Use filter instead of exclude so missing patterns don't throw errors.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
+
+ local basename
+ basename="$(basename -s .framework "$1")"
+ binary="${destination}/${basename}.framework/${basename}"
+
+ if ! [ -r "$binary" ]; then
+ binary="${destination}/${basename}"
+ elif [ -L "${binary}" ]; then
+ echo "Destination binary is symlinked..."
+ dirname="$(dirname "${binary}")"
+ binary="${dirname}/$(readlink "${binary}")"
+ fi
+
+ # Strip invalid architectures so "fat" simulator / device frameworks work on device
+ if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
+ strip_invalid_archs "$binary"
+ fi
+
+ # Resign the code if required by the build settings to avoid unstable apps
+ code_sign_if_enabled "${destination}/$(basename "$1")"
+
+ # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
+ if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
+ local swift_runtime_libs
+ swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
+ for lib in $swift_runtime_libs; do
+ echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
+ rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
+ code_sign_if_enabled "${destination}/${lib}"
+ done
+ fi
+}
+# Copies and strips a vendored dSYM
+install_dsym() {
+ local source="$1"
+ warn_missing_arch=${2:-true}
+ if [ -r "$source" ]; then
+ # Copy the dSYM into the targets temp dir.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
+
+ local basename
+ basename="$(basename -s .dSYM "$source")"
+ binary_name="$(ls "$source/Contents/Resources/DWARF")"
+ binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
+
+ # Strip invalid architectures from the dSYM.
+ if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
+ strip_invalid_archs "$binary" "$warn_missing_arch"
+ fi
+ if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
+ # Move the stripped file into its final destination.
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
+ else
+ # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
+ mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
+ fi
+ fi
+}
+
+# Used as a return value for each invocation of `strip_invalid_archs` function.
+STRIP_BINARY_RETVAL=0
+
+# Strip invalid architectures
+strip_invalid_archs() {
+ binary="$1"
+ warn_missing_arch=${2:-true}
+ # Get architectures for current target binary
+ binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
+ # Intersect them with the architectures we are building for
+ intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
+ # If there are no archs supported by this binary then warn the user
+ if [[ -z "$intersected_archs" ]]; then
+ if [[ "$warn_missing_arch" == "true" ]]; then
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
+ fi
+ STRIP_BINARY_RETVAL=1
+ return
+ fi
+ stripped=""
+ for arch in $binary_archs; do
+ if ! [[ "${ARCHS}" == *"$arch"* ]]; then
+ # Strip non-valid architectures in-place
+ lipo -remove "$arch" -output "$binary" "$binary"
+ stripped="$stripped $arch"
+ fi
+ done
+ if [[ "$stripped" ]]; then
+ echo "Stripped $binary of architectures:$stripped"
+ fi
+ STRIP_BINARY_RETVAL=0
+}
+
+# Copies the bcsymbolmap files of a vendored framework
+install_bcsymbolmap() {
+ local bcsymbolmap_path="$1"
+ local destination="${BUILT_PRODUCTS_DIR}"
+ echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
+}
+
+# Signs a framework with the provided identity
+code_sign_if_enabled() {
+ if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
+ # Use the current code_sign_identity
+ echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
+ local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
+
+ if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ code_sign_cmd="$code_sign_cmd &"
+ fi
+ echo "$code_sign_cmd"
+ eval "$code_sign_cmd"
+ fi
+}
+
+if [[ "$CONFIGURATION" == "Debug" ]]; then
+ install_framework "${BUILT_PRODUCTS_DIR}/Capacitor/Capacitor.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCordova/Cordova.framework"
+fi
+if [[ "$CONFIGURATION" == "Release" ]]; then
+ install_framework "${BUILT_PRODUCTS_DIR}/Capacitor/Capacitor.framework"
+ install_framework "${BUILT_PRODUCTS_DIR}/CapacitorCordova/Cordova.framework"
+fi
+if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
+ wait
+fi
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-umbrella.h b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-umbrella.h
new file mode 100644
index 00000000..cac4be7c
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests-umbrella.h
@@ -0,0 +1,16 @@
+#ifdef __OBJC__
+#import
+#else
+#ifndef FOUNDATION_EXPORT
+#if defined(__cplusplus)
+#define FOUNDATION_EXPORT extern "C"
+#else
+#define FOUNDATION_EXPORT extern
+#endif
+#endif
+#endif
+
+
+FOUNDATION_EXPORT double Pods_PluginTestsVersionNumber;
+FOUNDATION_EXPORT const unsigned char Pods_PluginTestsVersionString[];
+
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.debug.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.debug.xcconfig
new file mode 100644
index 00000000..5bcfb0ff
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.debug.xcconfig
@@ -0,0 +1,16 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Capacitor" -framework "Cordova" -framework "WebKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "-F${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.modulemap b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.modulemap
new file mode 100644
index 00000000..9e566605
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.modulemap
@@ -0,0 +1,6 @@
+framework module Pods_PluginTests {
+ umbrella header "Pods-PluginTests-umbrella.h"
+
+ export *
+ module * { export * }
+}
diff --git a/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.release.xcconfig b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.release.xcconfig
new file mode 100644
index 00000000..5bcfb0ff
--- /dev/null
+++ b/speech-recognition/ios/Pods/Target Support Files/Pods-PluginTests/Pods-PluginTests.release.xcconfig
@@ -0,0 +1,16 @@
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
+FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
+HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Capacitor/Capacitor.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova/Cordova.framework/Headers"
+LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks'
+LIBRARY_SEARCH_PATHS = $(inherited) "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
+OTHER_LDFLAGS = $(inherited) -framework "Capacitor" -framework "Cordova" -framework "WebKit"
+OTHER_MODULE_VERIFIER_FLAGS = $(inherited) "-F${PODS_CONFIGURATION_BUILD_DIR}/Capacitor" "-F${PODS_CONFIGURATION_BUILD_DIR}/CapacitorCordova"
+OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
+PODS_BUILD_DIR = ${BUILD_DIR}
+PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
+PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
+PODS_ROOT = ${SRCROOT}/Pods
+PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
+USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
diff --git a/speech-recognition/loggy b/speech-recognition/loggy
new file mode 100644
index 00000000..b90d172f
--- /dev/null
+++ b/speech-recognition/loggy
@@ -0,0 +1,7234 @@
+
+> @capacitor-community/speech-recognition@6.0.1 build
+> npm run clean && npm run docgen && tsc && rollup -c rollup.config.js
+
+
+> @capacitor-community/speech-recognition@6.0.1 clean
+> rimraf ./dist
+
+
+> @capacitor-community/speech-recognition@6.0.1 docgen
+> docgen --api SpeechRecognitionPlugin --output-readme README.md --output-json dist/docs.json
+
+
+✔️ DocGen Output: /Users/richandrasekaran/Code/scriberr/speech-recognition/dist/docs.json
+✔️ DocGen Output: /Users/richandrasekaran/Code/scriberr/speech-recognition/README.md
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m235[0m:[93m47[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m235[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m235[0m:[93m71[0m - [91merror[0m[90m TS1109: [0mExpression expected.
+
+[7m235[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m236[0m:[93m5[0m - [91merror[0m[90m TS1109: [0mExpression expected.
+
+[7m236[0m > {
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m240[0m:[93m46[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m240[0m IncomingMessage?: Request | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m244[0m:[93m46[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m244[0m ServerResponse?: Response | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m251[0m:[93m44[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m251[0m requestTimeout?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m257[0m:[93m39[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m257[0m joinDuplicateHeaders?: boolean;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m265[0m:[93m46[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m265[0m keepAliveTimeout?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m270[0m:[93m57[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m270[0m connectionsCheckingInterval?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m277[0m:[93m43[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m277[0m highWaterMark?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m284[0m:[93m49[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m284[0m insecureHTTPParser?: boolean | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m291[0m:[93m43[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m291[0m maxHeaderSize?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m297[0m:[93m38[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m297[0m noDelay?: boolean | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m304[0m:[93m40[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m304[0m keepAlive?: boolean | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m310[0m:[93m51[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m310[0m keepAliveInitialDelay?: number | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m315[0m:[93m50[0m - [91merror[0m[90m TS1005: [0m'(' expected.
+
+[7m315[0m uniqueHeaders?: Array | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m315[0m:[93m61[0m - [91merror[0m[90m TS1005: [0m')' expected.
+
+[7m315[0m uniqueHeaders?: Array | undefined;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m319[0m:[93m47[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m319[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m319[0m:[93m60[0m - [91merror[0m[90m TS1005: [0m',' expected.
+
+[7m319[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m319[0m:[93m69[0m - [91merror[0m[90m TS1005: [0m'(' expected.
+
+[7m319[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m319[0m:[93m71[0m - [91merror[0m[90m TS1109: [0mExpression expected.
+
+[7m319[0m Response extends typeof ServerResponse> = typeof ServerResponse,
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m320[0m:[93m5[0m - [91merror[0m[90m TS1109: [0mExpression expected.
+
+[7m320[0m > = (req: InstanceType, res: InstanceType & { req: InstanceType }) => void;
+[7m [0m [91m ~[0m
+
+[96m../node_modules/@types/node/http.d.ts[0m:[93m320[0m:[93m7[0m - [91merror[0m[90m TS1109: [0mExpression expected.
+
+[7m320[0m > = (req: InstanceType, res: InstanceType & { req: InstanceType