diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 12857078eb8e..6f8142a6403a 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -303,7 +303,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- - Plaid (5.2.1)
+ - Plaid (5.6.0)
- PromisesObjC (2.4.0)
- RCT-Folly (2022.05.16.00):
- boost
@@ -1420,10 +1420,10 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- - react-native-plaid-link-sdk (11.5.0):
+ - react-native-plaid-link-sdk (11.11.0):
- glog
- hermes-engine
- - Plaid (~> 5.2.0)
+ - Plaid (~> 5.6.0)
- RCT-Folly (= 2022.05.16.00)
- RCTRequired
- RCTTypeSafety
@@ -2553,7 +2553,7 @@ SPEC CHECKSUMS:
nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96
Onfido: f3af62ea1c9a419589c133e3e511e5d2c4f3f8af
onfido-react-native-sdk: 3e3b0dd70afa97410fb318d54c6a415137968ef2
- Plaid: 7829e84db6d766a751c91a402702946d2977ddcb
+ Plaid: c32f22ffce5ec67c9e6147eaf6c4d7d5f8086d89
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0
RCTRequired: ab7f915c15569f04a49669e573e6e319a53f9faa
@@ -2591,7 +2591,7 @@ SPEC CHECKSUMS:
react-native-pager-view: c7372cab7caef173f7f81d78520fe21f08805020
react-native-pdf: 762369633665ec02ac227aefe2f4558b92475c23
react-native-performance: fb21ff0c9bd7a10789c69d948f25b0067d29f7a9
- react-native-plaid-link-sdk: 2a91ef7e257ae16d180a1ca14ba3041ae0836fbf
+ react-native-plaid-link-sdk: ba40d1b13cca4b946974fafd9ae278e0fb697d87
react-native-quick-sqlite: e3ab3e0a29d8c705f47a60aaa6ceaa42eb6a9ec1
react-native-release-profiler: a77d4f291b92e48d3d4a574deed19bd1b513ac98
react-native-render-html: 96c979fe7452a0a41559685d2f83b12b93edac8c
diff --git a/package-lock.json b/package-lock.json
index c017941c7ce6..94e5ad0e3b74 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -108,7 +108,7 @@
"react-native-performance": "^5.1.0",
"react-native-permissions": "^3.10.0",
"react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf",
- "react-native-plaid-link-sdk": "11.5.0",
+ "react-native-plaid-link-sdk": "11.11.0",
"react-native-qrcode-svg": "^6.2.0",
"react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#abc91857d4b3efb2020ec43abd2a508563b64316",
"react-native-reanimated": "^3.8.0",
@@ -37517,9 +37517,9 @@
}
},
"node_modules/react-native-plaid-link-sdk": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/react-native-plaid-link-sdk/-/react-native-plaid-link-sdk-11.5.0.tgz",
- "integrity": "sha512-B3fwujxBS9nZwadXFcseU3nrYG7Ptob6p9eG/gXde65cqwErMaq2k1rVv3R17s/rpKnmU5Cx5pKOMmkxPUn08w==",
+ "version": "11.11.0",
+ "resolved": "https://registry.npmjs.org/react-native-plaid-link-sdk/-/react-native-plaid-link-sdk-11.11.0.tgz",
+ "integrity": "sha512-Kmimhr6iOwCtIzsW7gygz48TzaZsdjnpgstJ2PM1q+THulOnx+BnkFu8UpLIGGkVe19E4wkxOAYL8kJ8vefNSQ==",
"peerDependencies": {
"react": "*",
"react-native": "*"
diff --git a/package.json b/package.json
index ef68efaa31a4..7ffde430369c 100644
--- a/package.json
+++ b/package.json
@@ -163,7 +163,7 @@
"react-native-performance": "^5.1.0",
"react-native-permissions": "^3.10.0",
"react-native-picker-select": "git+https://github.com/Expensify/react-native-picker-select.git#da50d2c5c54e268499047f9cc98b8df4196c1ddf",
- "react-native-plaid-link-sdk": "11.5.0",
+ "react-native-plaid-link-sdk": "11.11.0",
"react-native-qrcode-svg": "^6.2.0",
"react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#abc91857d4b3efb2020ec43abd2a508563b64316",
"react-native-reanimated": "^3.8.0",
diff --git a/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch b/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch
deleted file mode 100644
index 6035477256b7..000000000000
--- a/patches/react-native-plaid-link-sdk+11.5.0+001+initial.patch
+++ /dev/null
@@ -1,4 +0,0 @@
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.m b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm
-similarity index 100%
-rename from node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.m
-rename to node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm
diff --git a/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch b/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch
deleted file mode 100644
index 7d5aab6c84cf..000000000000
--- a/patches/react-native-plaid-link-sdk+11.5.0+002+turbomodule.patch
+++ /dev/null
@@ -1,3287 +0,0 @@
-diff --git a/node_modules/react-native-plaid-link-sdk/README.md b/node_modules/react-native-plaid-link-sdk/README.md
-index 93ebca6..7bea608 100644
---- a/node_modules/react-native-plaid-link-sdk/README.md
-+++ b/node_modules/react-native-plaid-link-sdk/README.md
-@@ -49,7 +49,6 @@ cd ios && bundle install && bundle exec pod install
-
- AutoLinking should handle all of the Android setup.
-
--
- ### React Native Setup
-
- - To initialize `PlaidLink`, you will need to first create a `link_token` at [/link/token/create](https://plaid.com/docs/#create-link-token). Check out our [QuickStart guide](https://plaid.com/docs/quickstart/#introduction) for additional API information.
-@@ -58,7 +57,13 @@ AutoLinking should handle all of the Android setup.
-
- ```javascript
- import { Text } from 'react-native';
--import { PlaidLink, LinkSuccess, LinkExit, LinkLogLevel, LinkIOSPresentationStyle } from 'react-native-plaid-link-sdk';
-+import {
-+ PlaidLink,
-+ LinkSuccess,
-+ LinkExit,
-+ LinkLogLevel,
-+ LinkIOSPresentationStyle,
-+} from 'react-native-plaid-link-sdk';
-
- const MyPlaidComponent = () => {
- return (
-@@ -77,7 +82,7 @@ const MyPlaidComponent = () => {
- // UI is always presented in full screen on Android.
- iOSPresentationStyle={LinkIOSPresentationStyle.MODAL}
- >
-- Add Account
-+ Add Account
-
- );
- };
-@@ -92,6 +97,7 @@ const MyPlaidComponent = () => {
- ##### Android OAuth Requirements
-
- ###### Register your app package name
-+
- 1. Log into your [Plaid Dashboard](https://dashboard.plaid.com/developers/api) and navigate to the API page under the Developers tab.
- 2. Next to Allowed Android package names click "Configure" then "Add New Android Package Name".
- 3. Enter your package name, for example `com.plaid.example`.
-@@ -100,17 +106,16 @@ const MyPlaidComponent = () => {
- ##### iOS OAuth Requirements
-
- For iOS OAuth to work, specific requirements must be met.
-+
- 1. Redirect URIs must be [registered](https://plaid.com/docs/link/ios/#register-your-redirect-uri), and set up as [universal links](https://developer.apple.com/documentation/xcode/supporting-associated-domains).
- 2. Your native iOS application, must be configured with your associated domain. See your iOS [set up universal links](https://plaid.com/docs/link/ios/#set-up-universal-links) for more information.
-
--
- ##### Link Token OAuth Requirements
-
- - On iOS you must configure your `link_token` with a [redirect_uri](https://plaid.com/docs/api/tokens/#link-token-create-request-redirect-uri) to support OAuth. When creating a `link_token` for initializing Link on Android, `android_package_name` must be specified and `redirect_uri` must be left blank.
-
- - On Android you must configure your `link_token` with an [android_package_name](https://plaid.com/docs/api/tokens/#link-token-create-request-android-package-name) to support OAuth. When creating a `link_token` for initializing Link on iOS, `android_package_name` must be left blank and `redirect_uri` should be used instead.
-
--
- #### To receive onEvent callbacks:
-
- The React Native Plaid module emits `onEvent` events throughout the account linking process — see [details here](https://plaid.com/docs/link/react-native/#onevent). To receive these events in your React Native app, wrap the `PlaidLink` react component with the following in order to listen for those events:
-@@ -139,9 +144,9 @@ class PlaidEventContainer extends React.Component {
- You can also use the `usePlaidEmitter` hook in react functional components:
-
- ```javascript
-- usePlaidEmitter((event: LinkEvent) => {
-- console.log(event)
-- })
-+usePlaidEmitter((event: LinkEvent) => {
-+ console.log(event);
-+});
- ```
-
- ## Upgrading
-@@ -165,6 +170,8 @@ While these older versions are expected to continue to work without disruption,
- | 11.0.2 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 |
- | 11.0.1 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 |
- | 11.0.0 | * | [4.0.0+] | 21 | 33 | >=5.0.0 | 14.0 | Active, supports Xcode 15.0.1 |
-+| 10.13.0 | >= 0.66.0 | [3.14.3+] | 21 | 33 | >=4.7.2 | 11.0 | Active, supports Xcode 14 |
-+| 10.12.0 | >= 0.66.0 | [3.14.3+] | 21 | 33 | >=4.7.1 | 11.0 | Active, supports Xcode 14 |
- | 10.11.0 | >= 0.66.0 | [3.14.1+] | 21 | 33 | >=4.7.1 | 11.0 | Active, supports Xcode 14 |
- | ~10.10.0~ | >= 0.66.0 | [3.14.2+] | 21 | 33 | >=4.7.1 | 11.0 | **Deprecated** |
- | 10.9.1 | >= 0.66.0 | [3.14.1+] | 21 | 33 | >=4.7.0 | 11.0 | Active, supports Xcode 14 |
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock
-deleted file mode 100644
-index b5da584..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/checksums.lock and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin
-deleted file mode 100644
-index ef608b4..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/md5-checksums.bin and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin
-deleted file mode 100644
-index 0856ae4..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/checksums/sha1-checksums.bin and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock
-deleted file mode 100644
-index 12aea68..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/dependencies-accessors.lock and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/dependencies-accessors/gc.properties
-deleted file mode 100644
-index e69de29..0000000
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin
-deleted file mode 100644
-index f76dd23..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileChanges/last-build.bin and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock
-deleted file mode 100644
-index 752a252..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/fileHashes/fileHashes.lock and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/7.4.2/gc.properties
-deleted file mode 100644
-index e69de29..0000000
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock
-deleted file mode 100644
-index 470ca89..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties
-deleted file mode 100644
-index 1439672..0000000
---- a/node_modules/react-native-plaid-link-sdk/android/.gradle/buildOutputCleanup/cache.properties
-+++ /dev/null
-@@ -1,2 +0,0 @@
--#Thu Nov 09 09:41:17 PST 2023
--gradle.version=7.4.2
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock
-deleted file mode 100644
-index 34602e1..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/checksums.lock and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin
-deleted file mode 100644
-index 2420123..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/md5-checksums.bin and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin b/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin
-deleted file mode 100644
-index 1081852..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/android/.gradle/checksums/sha1-checksums.bin and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.gradle/vcs-1/gc.properties b/node_modules/react-native-plaid-link-sdk/android/.gradle/vcs-1/gc.properties
-deleted file mode 100644
-index e69de29..0000000
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml
-deleted file mode 100644
-index 0364d75..0000000
---- a/node_modules/react-native-plaid-link-sdk/android/.idea/gradle.xml
-+++ /dev/null
-@@ -1,14 +0,0 @@
--
--
--
--
--
--
--
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml
-deleted file mode 100644
-index a318cae..0000000
---- a/node_modules/react-native-plaid-link-sdk/android/.idea/misc.xml
-+++ /dev/null
-@@ -1,9 +0,0 @@
--
--
--
--
--
--
--
--
--
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml b/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml
-deleted file mode 100644
-index 6c0b863..0000000
---- a/node_modules/react-native-plaid-link-sdk/android/.idea/vcs.xml
-+++ /dev/null
-@@ -1,6 +0,0 @@
--
--
--
--
--
--
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/android/build.gradle b/node_modules/react-native-plaid-link-sdk/android/build.gradle
-index 2d9e2ce..e88208b 100644
---- a/node_modules/react-native-plaid-link-sdk/android/build.gradle
-+++ b/node_modules/react-native-plaid-link-sdk/android/build.gradle
-@@ -12,7 +12,12 @@ allprojects {
-
-
- buildscript {
-- ext.kotlin_version = '1.8.22'
-+ ext {
-+ kotlin_version = '1.8.22'
-+ }
-+ ext.safeExtGet = {prop, fallback ->
-+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
-+ }
- repositories {
- google()
- mavenCentral()
-@@ -25,10 +30,32 @@ buildscript {
- }
- }
-
-+def isNewArchitectureEnabled() {
-+ // To opt-in for the New Architecture, you can either:
-+ // - Set `newArchEnabled` to true inside the `gradle.properties` file
-+ // - Invoke gradle with `-newArchEnabled=true`
-+ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
-+ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
-+}
-+
-+if (isNewArchitectureEnabled()) {
-+ apply plugin: "com.facebook.react"
-+}
-+
- apply plugin: 'com.android.library'
- apply plugin: "kotlin-android"
-
- android {
-+
-+ // Used to override the NDK path/version on internal CI or by allowing
-+ // users to customize the NDK path/version from their root project (e.g. for M1 support)
-+ if (rootProject.hasProperty("ndkPath")) {
-+ ndkPath rootProject.ext.ndkPath
-+ }
-+ if (rootProject.hasProperty("ndkVersion")) {
-+ ndkVersion rootProject.ext.ndkVersion
-+ }
-+
- def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger()
- if (agpVersion >= 7) {
- namespace 'com.plaid'
-@@ -52,6 +79,14 @@ android {
- }
- }
-
-+ sourceSets.main {
-+ java {
-+ if (!isNewArchitectureEnabled()) {
-+ srcDirs += 'src/paper/java'
-+ }
-+ }
-+ }
-+
- buildTypes {
- release {
- debuggable = false
-diff --git a/node_modules/react-native-plaid-link-sdk/android/local.properties b/node_modules/react-native-plaid-link-sdk/android/local.properties
-deleted file mode 100644
-index 0b4e321..0000000
---- a/node_modules/react-native-plaid-link-sdk/android/local.properties
-+++ /dev/null
-@@ -1,8 +0,0 @@
--## This file must *NOT* be checked into Version Control Systems,
--# as it contains information specific to your local configuration.
--#
--# Location of the SDK. This is only used by Gradle.
--# For customization when using a Version Control System, please read the
--# header note.
--#Fri Aug 11 13:58:32 PDT 2023
--sdk.dir=/Users/dtroupe/Library/Android/sdk
-diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt
-index c73011f..66fd266 100644
---- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt
-+++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PLKEmbeddedViewManager.kt
-@@ -19,9 +19,9 @@ class PLKEmbeddedViewManager : SimpleViewManager() {
- }
-
- override fun getExportedCustomBubblingEventTypeConstants(): Map {
-- return mapOf(
-- EVENT_NAME to mapOf(
-- "phasedRegistrationNames" to mapOf(
-+ return mutableMapOf(
-+ EVENT_NAME to mutableMapOf(
-+ "phasedRegistrationNames" to mutableMapOf(
- "bubbled" to EVENT_NAME
- )
- ))
-diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt
-index 293374a..b79352e 100644
---- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt
-+++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidModule.kt
-@@ -24,9 +24,9 @@ import org.json.JSONException
- import org.json.JSONObject
- import java.util.ArrayList
-
--@ReactModule(name = PlaidModule.TAG)
-+@ReactModule(name = PlaidModule.NAME)
- class PlaidModule internal constructor(reactContext: ReactApplicationContext) :
-- ReactContextBaseJavaModule(reactContext), ActivityEventListener {
-+ NativePlaidLinkModuleAndroidSpec(reactContext), ActivityEventListener {
-
- val mActivityResultManager by lazy { ActivityResultManager() }
-
-@@ -38,11 +38,11 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) :
- companion object {
- private const val LINK_TOKEN_PREFIX = "link"
-
-- const val TAG = "PlaidAndroid"
-+ const val NAME = "PlaidAndroid"
- }
-
- override fun getName(): String {
-- return PlaidModule.TAG
-+ return NAME
- }
-
- override fun initialize() {
-@@ -78,7 +78,7 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) :
-
- @ReactMethod
- @Suppress("unused")
-- fun startLinkActivityForResult(
-+ override fun startLinkActivityForResult(
- token: String,
- noLoadingState: Boolean,
- logLevel: String,
-@@ -113,6 +113,10 @@ class PlaidModule internal constructor(reactContext: ReactApplicationContext) :
- }
- }
-
-+ override fun addListener(eventName: String?) = Unit
-+
-+ override fun removeListeners(count: Double) = Unit
-+
- private fun maybeGetStringField(obj: JSONObject, fieldName: String): String? {
- if (obj.has(fieldName) && !TextUtils.isEmpty(obj.getString(fieldName))) {
- return obj.getString(fieldName)
-diff --git a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java
-index c59299e..d6b310e 100644
---- a/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java
-+++ b/node_modules/react-native-plaid-link-sdk/android/src/main/java/com/plaid/PlaidPackage.java
-@@ -6,19 +6,54 @@ import java.util.List;
- import java.util.Map;
-
- import com.facebook.react.TurboReactPackage;
-+import com.facebook.react.ViewManagerOnDemandReactPackage;
-+import com.facebook.react.bridge.ModuleSpec;
- import com.facebook.react.bridge.NativeModule;
- import com.facebook.react.bridge.ReactApplicationContext;
-+import com.facebook.react.module.annotations.ReactModule;
-+import com.facebook.react.module.annotations.ReactModuleList;
- import com.facebook.react.module.model.ReactModuleInfo;
- import com.facebook.react.module.model.ReactModuleInfoProvider;
-+import com.facebook.react.turbomodule.core.interfaces.TurboModule;
- import com.facebook.react.uimanager.ViewManager;
-
--@SuppressWarnings("unused")
--public class PlaidPackage extends TurboReactPackage {
-+import javax.annotation.Nonnull;
-+import javax.annotation.Nullable;
-
-+@ReactModuleList(nativeModules = {PlaidModule.class})
-+public class PlaidPackage extends TurboReactPackage implements ViewManagerOnDemandReactPackage {
-+
-+ /**
-+ * {@inheritDoc}
-+ */
-+ @Override
-+ public List getViewManagerNames(ReactApplicationContext reactContext) {
-+ return null;
-+ }
-+
-+ @Override
-+ protected List getViewManagers(ReactApplicationContext reactContext) {
-+ return null;
-+ }
-+
-+ /**
-+ * {@inheritDoc}
-+ */
- @Override
-- public NativeModule getModule(
-- String name, ReactApplicationContext reactContext) {
-- return new PlaidModule(reactContext);
-+ public @Nullable
-+ ViewManager createViewManager(
-+ ReactApplicationContext reactContext, String viewManagerName) {
-+ return null;
-+ }
-+
-+ @Override
-+ public NativeModule getModule(String name, @Nonnull ReactApplicationContext reactContext) {
-+ switch (name) {
-+ case PlaidModule.NAME:
-+ return new PlaidModule(reactContext);
-+ default:
-+ return null;
-+ }
- }
-
- @Override
-@@ -28,19 +63,44 @@ public class PlaidPackage extends TurboReactPackage {
-
- @Override
- public ReactModuleInfoProvider getReactModuleInfoProvider() {
-- return () -> {
-- Map map = new HashMap<>();
-- map.put(
-- "PlaidAndroid",
-- new ReactModuleInfo(
-- "PlaidAndroid",
-- "com.reactlibrary.PlaidModule",
-- false,
-- false,
-- true,
-- false,
-- false));
-- return map;
-- };
-+ try {
-+ Class> reactModuleInfoProviderClass =
-+ Class.forName("com.plaid.PlaidPackage$$ReactModuleInfoProvider");
-+ return (ReactModuleInfoProvider) reactModuleInfoProviderClass.newInstance();
-+ } catch (ClassNotFoundException e) {
-+ // ReactModuleSpecProcessor does not run at build-time. Create this ReactModuleInfoProvider by
-+ // hand.
-+ return new ReactModuleInfoProvider() {
-+ @Override
-+ public Map getReactModuleInfos() {
-+ final Map reactModuleInfoMap = new HashMap<>();
-+
-+ Class extends NativeModule>[] moduleList =
-+ new Class[]{
-+ PlaidModule.class,
-+ };
-+
-+ for (Class extends NativeModule> moduleClass : moduleList) {
-+ ReactModule reactModule = moduleClass.getAnnotation(ReactModule.class);
-+
-+ reactModuleInfoMap.put(
-+ reactModule.name(),
-+ new ReactModuleInfo(
-+ reactModule.name(),
-+ moduleClass.getName(),
-+ reactModule.canOverrideExistingModule(),
-+ reactModule.needsEagerInit(),
-+ reactModule.hasConstants(),
-+ reactModule.isCxxModule(),
-+ TurboModule.class.isAssignableFrom(moduleClass)));
-+ }
-+
-+ return reactModuleInfoMap;
-+ }
-+ };
-+ } catch (InstantiationException | IllegalAccessException e) {
-+ throw new RuntimeException(
-+ "No ReactModuleInfoProvider for com.plaid.PlaidPackage$$ReactModuleInfoProvider", e);
-+ }
- }
- }
-diff --git a/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java b/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java
-new file mode 100644
-index 0000000..fee5a11
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/android/src/paper/java/com/plaid/NativePlaidLinkModuleAndroidSpec.java
-@@ -0,0 +1,46 @@
-+
-+/**
-+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
-+ *
-+ * Do not edit this file as changes may cause incorrect behavior and will be lost
-+ * once the code is regenerated.
-+ *
-+ * @generated by codegen project: GenerateModuleJavaSpec.js
-+ *
-+ * @nolint
-+ */
-+
-+package com.plaid;
-+
-+import com.facebook.proguard.annotations.DoNotStrip;
-+import com.facebook.react.bridge.Callback;
-+import com.facebook.react.bridge.ReactApplicationContext;
-+import com.facebook.react.bridge.ReactContextBaseJavaModule;
-+import com.facebook.react.bridge.ReactMethod;
-+import com.facebook.react.turbomodule.core.interfaces.TurboModule;
-+import javax.annotation.Nonnull;
-+
-+public abstract class NativePlaidLinkModuleAndroidSpec extends ReactContextBaseJavaModule implements TurboModule {
-+ public static final String NAME = "PlaidAndroid";
-+
-+ public NativePlaidLinkModuleAndroidSpec(ReactApplicationContext reactContext) {
-+ super(reactContext);
-+ }
-+
-+ @Override
-+ public @Nonnull String getName() {
-+ return NAME;
-+ }
-+
-+ @ReactMethod
-+ @DoNotStrip
-+ public abstract void startLinkActivityForResult(String token, boolean noLoadingState, String logLevel, Callback onSuccessCallback, Callback onExitCallback);
-+
-+ @ReactMethod
-+ @DoNotStrip
-+ public abstract void addListener(String eventName);
-+
-+ @ReactMethod
-+ @DoNotStrip
-+ public abstract void removeListeners(double count);
-+}
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js b/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js
-index c7b1e96..c429da7 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js
-+++ b/node_modules/react-native-plaid-link-sdk/dist/EmbeddedLink/EmbeddedLinkView.js
-@@ -1,55 +1,69 @@
- import React from 'react';
- import NativeEmbeddedLinkView from './NativeEmbeddedLinkView';
- class EmbeddedEvent {
-- constructor(event) {
-- this.eventName = event.eventName;
-- this.metadata = event.metadata;
-- }
-+ constructor(event) {
-+ this.eventName = event.eventName;
-+ this.metadata = event.metadata;
-+ }
- }
- class EmbeddedExit {
-- constructor(event) {
-- this.error = event.error;
-- this.metadata = event.metadata;
-- }
-+ constructor(event) {
-+ this.error = event.error;
-+ this.metadata = event.metadata;
-+ }
- }
- class EmbeddedSuccess {
-- constructor(event) {
-- this.publicToken = event.publicToken;
-- this.metadata = event.metadata;
-- }
-+ constructor(event) {
-+ this.publicToken = event.publicToken;
-+ this.metadata = event.metadata;
-+ }
- }
--export const EmbeddedLinkView = (props) => {
-- const { token, iOSPresentationStyle, onEvent, onSuccess, onExit, style } = props;
-- const onEmbeddedEvent = (event) => {
-- switch (event.nativeEvent.embeddedEventName) {
-- case 'onSuccess': {
-- if (!onSuccess) {
-- return;
-- }
-- const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent);
-- onSuccess(embeddedSuccess);
-- break;
-- }
-- case 'onExit': {
-- if (!onExit) {
-- return;
-- }
-- const embeddedExit = new EmbeddedExit(event.nativeEvent);
-- onExit(embeddedExit);
-- break;
-- }
-- case 'onEvent': {
-- if (!onEvent) {
-- return;
-- }
-- const embeddedEvent = new EmbeddedEvent(event.nativeEvent);
-- onEvent(embeddedEvent);
-- break;
-- }
-- default: {
-- return;
-- }
-+export const EmbeddedLinkView = props => {
-+ const {
-+ token,
-+ iOSPresentationStyle,
-+ onEvent,
-+ onSuccess,
-+ onExit,
-+ style,
-+ } = props;
-+ const onEmbeddedEvent = event => {
-+ switch (event.nativeEvent.embeddedEventName) {
-+ case 'onSuccess': {
-+ if (!onSuccess) {
-+ return;
- }
-- };
-- return ;
-+ const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent);
-+ onSuccess(embeddedSuccess);
-+ break;
-+ }
-+ case 'onExit': {
-+ if (!onExit) {
-+ return;
-+ }
-+ const embeddedExit = new EmbeddedExit(event.nativeEvent);
-+ onExit(embeddedExit);
-+ break;
-+ }
-+ case 'onEvent': {
-+ if (!onEvent) {
-+ return;
-+ }
-+ const embeddedEvent = new EmbeddedEvent(event.nativeEvent);
-+ onEvent(embeddedEvent);
-+ break;
-+ }
-+ default: {
-+ return;
-+ }
-+ }
-+ };
-+ return (
-+
-+ );
- };
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts
-index a48b319..43205dd 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts
-+++ b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.d.ts
-@@ -4,9 +4,9 @@ import { LinkEventListener, PlaidLinkComponentProps, PlaidLinkProps } from './Ty
- * A hook that registers a listener on the Plaid emitter for the 'onEvent' type.
- * The listener is cleaned up when this view is unmounted
- *
-- * @param LinkEventListener the listener to call
-+ * @param linkEventListener the listener to call
- */
--export declare const usePlaidEmitter: (LinkEventListener: LinkEventListener) => void;
-+export declare const usePlaidEmitter: (linkEventListener: LinkEventListener) => void;
- export declare const openLink: (props: PlaidLinkProps) => Promise;
- export declare const dismissLink: () => void;
- export declare const PlaidLink: (props: PlaidLinkComponentProps) => React.JSX.Element;
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js
-index 21da2bc..6c43633 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js
-+++ b/node_modules/react-native-plaid-link-sdk/dist/PlaidLink.js
-@@ -1,83 +1,146 @@
--var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
-- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-- return new (P || (P = Promise))(function (resolve, reject) {
-- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-- step((generator = generator.apply(thisArg, _arguments || [])).next());
-+var __awaiter =
-+ (this && this.__awaiter) ||
-+ function(thisArg, _arguments, P, generator) {
-+ function adopt(value) {
-+ return value instanceof P
-+ ? value
-+ : new P(function(resolve) {
-+ resolve(value);
-+ });
-+ }
-+ return new (P || (P = Promise))(function(resolve, reject) {
-+ function fulfilled(value) {
-+ try {
-+ step(generator.next(value));
-+ } catch (e) {
-+ reject(e);
-+ }
-+ }
-+ function rejected(value) {
-+ try {
-+ step(generator['throw'](value));
-+ } catch (e) {
-+ reject(e);
-+ }
-+ }
-+ function step(result) {
-+ result.done
-+ ? resolve(result.value)
-+ : adopt(result.value).then(fulfilled, rejected);
-+ }
-+ step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
--};
-+ };
-+var _a;
- import React, { useEffect } from 'react';
--import { NativeEventEmitter, NativeModules, Platform, TouchableOpacity, } from 'react-native';
--import { LinkIOSPresentationStyle, LinkLogLevel, } from './Types';
-+import { NativeEventEmitter, Platform, TouchableOpacity } from 'react-native';
-+import { LinkIOSPresentationStyle, LinkLogLevel } from './Types';
-+import RNLinksdkAndroid from './fabric/NativePlaidLinkModuleAndroid';
-+import RNLinksdkiOS from './fabric/NativePlaidLinkModuleiOS';
-+const RNLinksdk =
-+ (_a = Platform.OS === 'android' ? RNLinksdkAndroid : RNLinksdkiOS) !== null &&
-+ _a !== void 0
-+ ? _a
-+ : undefined;
- /**
- * A hook that registers a listener on the Plaid emitter for the 'onEvent' type.
- * The listener is cleaned up when this view is unmounted
- *
-- * @param LinkEventListener the listener to call
-+ * @param linkEventListener the listener to call
- */
--export const usePlaidEmitter = (LinkEventListener) => {
-- useEffect(() => {
-- const emitter = new NativeEventEmitter(Platform.OS === 'ios'
-- ? NativeModules.RNLinksdk
-- : NativeModules.PlaidAndroid);
-- const listener = emitter.addListener('onEvent', LinkEventListener);
-- // Clean up after this effect:
-- return function cleanup() {
-- listener.remove();
-- };
-- }, []);
-+export const usePlaidEmitter = linkEventListener => {
-+ useEffect(() => {
-+ const emitter = new NativeEventEmitter(RNLinksdk);
-+ const listener = emitter.addListener('onEvent', linkEventListener);
-+ // Clean up after this effect:
-+ return function cleanup() {
-+ listener.remove();
-+ };
-+ }, []);
- };
--export const openLink = (props) => __awaiter(void 0, void 0, void 0, function* () {
-- var _a, _b;
-+export const openLink = props =>
-+ __awaiter(void 0, void 0, void 0, function*() {
-+ var _b, _c;
- let config = props.tokenConfig;
-- let noLoadingState = (_a = config.noLoadingState) !== null && _a !== void 0 ? _a : false;
-+ let noLoadingState =
-+ (_b = config.noLoadingState) !== null && _b !== void 0 ? _b : false;
- if (Platform.OS === 'android') {
-- NativeModules.PlaidAndroid.startLinkActivityForResult(config.token, noLoadingState, (_b = config.logLevel) !== null && _b !== void 0 ? _b : LinkLogLevel.ERROR, (result) => {
-- if (props.onSuccess != null) {
-- props.onSuccess(result);
-- }
-- }, (result) => {
-- if (props.onExit != null) {
-- if (result.error != null && result.error.displayMessage != null) {
-- //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update.
-- result.error.errorDisplayMessage = result.error.displayMessage;
-- }
-- props.onExit(result);
-+ if (RNLinksdkAndroid === null) {
-+ throw new Error(
-+ '[react-native-plaid-link-sdk] RNLinksdkAndroid is not defined',
-+ );
-+ }
-+ RNLinksdkAndroid.startLinkActivityForResult(
-+ config.token,
-+ noLoadingState,
-+ (_c = config.logLevel) !== null && _c !== void 0
-+ ? _c
-+ : LinkLogLevel.ERROR,
-+ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap
-+ result => {
-+ if (props.onSuccess != null) {
-+ props.onSuccess(result);
-+ }
-+ },
-+ result => {
-+ if (props.onExit != null) {
-+ if (result.error != null && result.error.displayMessage != null) {
-+ //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update.
-+ result.error.errorDisplayMessage = result.error.displayMessage;
- }
-- });
-- }
-- else {
-- NativeModules.RNLinksdk.create(config.token, noLoadingState);
-- let presentFullScreen = props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN;
-- NativeModules.RNLinksdk.open(presentFullScreen, (result) => {
-- if (props.onSuccess != null) {
-- props.onSuccess(result);
-- }
-- }, (error, result) => {
-- if (props.onExit != null) {
-- if (error) {
-- var data = result || {};
-- data.error = error;
-- props.onExit(data);
-- }
-- else {
-- props.onExit(result);
-- }
-+ props.onExit(result);
-+ }
-+ },
-+ );
-+ } else {
-+ if (RNLinksdkiOS === null) {
-+ throw new Error(
-+ '[react-native-plaid-link-sdk] RNLinksdkiOS is not defined',
-+ );
-+ }
-+ RNLinksdkiOS.create(config.token, noLoadingState);
-+ let presentFullScreen =
-+ props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN;
-+ RNLinksdkiOS.open(
-+ presentFullScreen,
-+ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap
-+ result => {
-+ if (props.onSuccess != null) {
-+ props.onSuccess(result);
-+ }
-+ },
-+ (error, result) => {
-+ if (props.onExit != null) {
-+ if (error) {
-+ var data = result || {};
-+ data.error = error;
-+ props.onExit(data);
-+ } else {
-+ props.onExit(result);
- }
-- });
-+ }
-+ },
-+ );
- }
--});
-+ });
- export const dismissLink = () => {
-- if (Platform.OS === 'ios') {
-- NativeModules.RNLinksdk.dismiss();
-+ if (Platform.OS === 'ios') {
-+ if (RNLinksdkiOS === null) {
-+ throw new Error(
-+ '[react-native-plaid-link-sdk] RNLinksdkiOS is not defined',
-+ );
- }
-+ RNLinksdkiOS.dismiss();
-+ }
- };
--export const PlaidLink = (props) => {
-- function onPress() {
-- var _a;
-- (_a = props.onPress) === null || _a === void 0 ? void 0 : _a.call(props);
-- openLink(props);
-- }
-- return {props.children};
-+export const PlaidLink = props => {
-+ function onPress() {
-+ var _a;
-+ (_a = props.onPress) === null || _a === void 0 ? void 0 : _a.call(props);
-+ openLink(props);
-+ }
-+ return (
-+ // @ts-ignore some types directories misconfiguration
-+ {props.children}
-+ );
- };
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/Types.js b/node_modules/react-native-plaid-link-sdk/dist/Types.js
-index 184adad..11b34e3 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/Types.js
-+++ b/node_modules/react-native-plaid-link-sdk/dist/Types.js
-@@ -1,430 +1,681 @@
- export var LinkLogLevel;
--(function (LinkLogLevel) {
-- LinkLogLevel["DEBUG"] = "debug";
-- LinkLogLevel["INFO"] = "info";
-- LinkLogLevel["WARN"] = "warn";
-- LinkLogLevel["ERROR"] = "error";
-+(function(LinkLogLevel) {
-+ LinkLogLevel['DEBUG'] = 'debug';
-+ LinkLogLevel['INFO'] = 'info';
-+ LinkLogLevel['WARN'] = 'warn';
-+ LinkLogLevel['ERROR'] = 'error';
- })(LinkLogLevel || (LinkLogLevel = {}));
- export var PlaidEnvironment;
--(function (PlaidEnvironment) {
-- PlaidEnvironment["PRODUCTION"] = "production";
-- PlaidEnvironment["DEVELOPMENT"] = "development";
-- PlaidEnvironment["SANDBOX"] = "sandbox";
-+(function(PlaidEnvironment) {
-+ PlaidEnvironment['PRODUCTION'] = 'production';
-+ PlaidEnvironment['DEVELOPMENT'] = 'development';
-+ PlaidEnvironment['SANDBOX'] = 'sandbox';
- })(PlaidEnvironment || (PlaidEnvironment = {}));
- export var PlaidProduct;
--(function (PlaidProduct) {
-- PlaidProduct["ASSETS"] = "assets";
-- PlaidProduct["AUTH"] = "auth";
-- PlaidProduct["DEPOSIT_SWITCH"] = "deposit_switch";
-- PlaidProduct["IDENTITY"] = "identity";
-- PlaidProduct["INCOME"] = "income";
-- PlaidProduct["INVESTMENTS"] = "investments";
-- PlaidProduct["LIABILITIES"] = "liabilities";
-- PlaidProduct["LIABILITIES_REPORT"] = "liabilities_report";
-- PlaidProduct["PAYMENT_INITIATION"] = "payment_initiation";
-- PlaidProduct["TRANSACTIONS"] = "transactions";
-+(function(PlaidProduct) {
-+ PlaidProduct['ASSETS'] = 'assets';
-+ PlaidProduct['AUTH'] = 'auth';
-+ PlaidProduct['DEPOSIT_SWITCH'] = 'deposit_switch';
-+ PlaidProduct['IDENTITY'] = 'identity';
-+ PlaidProduct['INCOME'] = 'income';
-+ PlaidProduct['INVESTMENTS'] = 'investments';
-+ PlaidProduct['LIABILITIES'] = 'liabilities';
-+ PlaidProduct['LIABILITIES_REPORT'] = 'liabilities_report';
-+ PlaidProduct['PAYMENT_INITIATION'] = 'payment_initiation';
-+ PlaidProduct['TRANSACTIONS'] = 'transactions';
- })(PlaidProduct || (PlaidProduct = {}));
- export var LinkAccountType;
--(function (LinkAccountType) {
-- LinkAccountType["CREDIT"] = "credit";
-- LinkAccountType["DEPOSITORY"] = "depository";
-- LinkAccountType["INVESTMENT"] = "investment";
-- LinkAccountType["LOAN"] = "loan";
-- LinkAccountType["OTHER"] = "other";
-+(function(LinkAccountType) {
-+ LinkAccountType['CREDIT'] = 'credit';
-+ LinkAccountType['DEPOSITORY'] = 'depository';
-+ LinkAccountType['INVESTMENT'] = 'investment';
-+ LinkAccountType['LOAN'] = 'loan';
-+ LinkAccountType['OTHER'] = 'other';
- })(LinkAccountType || (LinkAccountType = {}));
- export var LinkAccountSubtypes;
--(function (LinkAccountSubtypes) {
-- LinkAccountSubtypes["ALL"] = "all";
-- LinkAccountSubtypes["CREDIT_CARD"] = "credit card";
-- LinkAccountSubtypes["PAYPAL"] = "paypal";
-- LinkAccountSubtypes["AUTO"] = "auto";
-- LinkAccountSubtypes["BUSINESS"] = "business";
-- LinkAccountSubtypes["COMMERCIAL"] = "commercial";
-- LinkAccountSubtypes["CONSTRUCTION"] = "construction";
-- LinkAccountSubtypes["CONSUMER"] = "consumer";
-- LinkAccountSubtypes["HOME_EQUITY"] = "home equity";
-- LinkAccountSubtypes["LINE_OF_CREDIT"] = "line of credit";
-- LinkAccountSubtypes["LOAN"] = "loan";
-- LinkAccountSubtypes["MORTGAGE"] = "mortgage";
-- LinkAccountSubtypes["OVERDRAFT"] = "overdraft";
-- LinkAccountSubtypes["STUDENT"] = "student";
-- LinkAccountSubtypes["CASH_MANAGEMENT"] = "cash management";
-- LinkAccountSubtypes["CD"] = "cd";
-- LinkAccountSubtypes["CHECKING"] = "checking";
-- LinkAccountSubtypes["EBT"] = "ebt";
-- LinkAccountSubtypes["HSA"] = "hsa";
-- LinkAccountSubtypes["MONEY_MARKET"] = "money market";
-- LinkAccountSubtypes["PREPAID"] = "prepaid";
-- LinkAccountSubtypes["SAVINGS"] = "savings";
-- LinkAccountSubtypes["FOUR_0_1_A"] = "401a";
-- LinkAccountSubtypes["FOUR_0_1_K"] = "401k";
-- LinkAccountSubtypes["FOUR_0_3_B"] = "403B";
-- LinkAccountSubtypes["FOUR_5_7_B"] = "457b";
-- LinkAccountSubtypes["FIVE_2_9"] = "529";
-- LinkAccountSubtypes["BROKERAGE"] = "brokerage";
-- LinkAccountSubtypes["CASH_ISA"] = "cash isa";
-- LinkAccountSubtypes["EDUCATION_SAVINGS_ACCOUNT"] = "education savings account";
-- LinkAccountSubtypes["FIXED_ANNUNITY"] = "fixed annuity";
-- LinkAccountSubtypes["GIC"] = "gic";
-- LinkAccountSubtypes["HEALTH_REIMBURSEMENT_ARRANGEMENT"] = "health reimbursement arrangement";
-- LinkAccountSubtypes["IRA"] = "ira";
-- LinkAccountSubtypes["ISA"] = "isa";
-- LinkAccountSubtypes["KEOGH"] = "keogh";
-- LinkAccountSubtypes["LIF"] = "lif";
-- LinkAccountSubtypes["LIRA"] = "lira";
-- LinkAccountSubtypes["LRIF"] = "lrif";
-- LinkAccountSubtypes["LRSP"] = "lrsp";
-- LinkAccountSubtypes["MUTUAL_FUND"] = "mutual fund";
-- LinkAccountSubtypes["NON_TAXABLE_BROKERAGE_ACCOUNT"] = "non-taxable brokerage account";
-- LinkAccountSubtypes["PENSION"] = "pension";
-- LinkAccountSubtypes["PLAN"] = "plan";
-- LinkAccountSubtypes["PRIF"] = "prif";
-- LinkAccountSubtypes["PROFIT_SHARING_PLAN"] = "profit sharing plan";
-- LinkAccountSubtypes["RDSP"] = "rdsp";
-- LinkAccountSubtypes["RESP"] = "resp";
-- LinkAccountSubtypes["RETIREMENT"] = "retirement";
-- LinkAccountSubtypes["RLIF"] = "rlif";
-- LinkAccountSubtypes["ROTH_401K"] = "roth 401k";
-- LinkAccountSubtypes["ROTH"] = "roth";
-- LinkAccountSubtypes["RRIF"] = "rrif";
-- LinkAccountSubtypes["RRSP"] = "rrsp";
-- LinkAccountSubtypes["SARSEP"] = "sarsep";
-- LinkAccountSubtypes["SEP_IRA"] = "sep ira";
-- LinkAccountSubtypes["SIMPLE_IRA"] = "simple ira";
-- LinkAccountSubtypes["SIPP"] = "sipp";
-- LinkAccountSubtypes["STOCK_PLAN"] = "stock plan";
-- LinkAccountSubtypes["TFSA"] = "tfsa";
-- LinkAccountSubtypes["THRIFT_SAVINGS_PLAN"] = "thrift savings plan";
-- LinkAccountSubtypes["TRUST"] = "trust";
-- LinkAccountSubtypes["UGMA"] = "ugma";
-- LinkAccountSubtypes["UTMA"] = "utma";
-- LinkAccountSubtypes["VARIABLE_ANNUITY"] = "variable annuity";
-+(function(LinkAccountSubtypes) {
-+ LinkAccountSubtypes['ALL'] = 'all';
-+ LinkAccountSubtypes['CREDIT_CARD'] = 'credit card';
-+ LinkAccountSubtypes['PAYPAL'] = 'paypal';
-+ LinkAccountSubtypes['AUTO'] = 'auto';
-+ LinkAccountSubtypes['BUSINESS'] = 'business';
-+ LinkAccountSubtypes['COMMERCIAL'] = 'commercial';
-+ LinkAccountSubtypes['CONSTRUCTION'] = 'construction';
-+ LinkAccountSubtypes['CONSUMER'] = 'consumer';
-+ LinkAccountSubtypes['HOME_EQUITY'] = 'home equity';
-+ LinkAccountSubtypes['LINE_OF_CREDIT'] = 'line of credit';
-+ LinkAccountSubtypes['LOAN'] = 'loan';
-+ LinkAccountSubtypes['MORTGAGE'] = 'mortgage';
-+ LinkAccountSubtypes['OVERDRAFT'] = 'overdraft';
-+ LinkAccountSubtypes['STUDENT'] = 'student';
-+ LinkAccountSubtypes['CASH_MANAGEMENT'] = 'cash management';
-+ LinkAccountSubtypes['CD'] = 'cd';
-+ LinkAccountSubtypes['CHECKING'] = 'checking';
-+ LinkAccountSubtypes['EBT'] = 'ebt';
-+ LinkAccountSubtypes['HSA'] = 'hsa';
-+ LinkAccountSubtypes['MONEY_MARKET'] = 'money market';
-+ LinkAccountSubtypes['PREPAID'] = 'prepaid';
-+ LinkAccountSubtypes['SAVINGS'] = 'savings';
-+ LinkAccountSubtypes['FOUR_0_1_A'] = '401a';
-+ LinkAccountSubtypes['FOUR_0_1_K'] = '401k';
-+ LinkAccountSubtypes['FOUR_0_3_B'] = '403B';
-+ LinkAccountSubtypes['FOUR_5_7_B'] = '457b';
-+ LinkAccountSubtypes['FIVE_2_9'] = '529';
-+ LinkAccountSubtypes['BROKERAGE'] = 'brokerage';
-+ LinkAccountSubtypes['CASH_ISA'] = 'cash isa';
-+ LinkAccountSubtypes['EDUCATION_SAVINGS_ACCOUNT'] =
-+ 'education savings account';
-+ LinkAccountSubtypes['FIXED_ANNUNITY'] = 'fixed annuity';
-+ LinkAccountSubtypes['GIC'] = 'gic';
-+ LinkAccountSubtypes['HEALTH_REIMBURSEMENT_ARRANGEMENT'] =
-+ 'health reimbursement arrangement';
-+ LinkAccountSubtypes['IRA'] = 'ira';
-+ LinkAccountSubtypes['ISA'] = 'isa';
-+ LinkAccountSubtypes['KEOGH'] = 'keogh';
-+ LinkAccountSubtypes['LIF'] = 'lif';
-+ LinkAccountSubtypes['LIRA'] = 'lira';
-+ LinkAccountSubtypes['LRIF'] = 'lrif';
-+ LinkAccountSubtypes['LRSP'] = 'lrsp';
-+ LinkAccountSubtypes['MUTUAL_FUND'] = 'mutual fund';
-+ LinkAccountSubtypes['NON_TAXABLE_BROKERAGE_ACCOUNT'] =
-+ 'non-taxable brokerage account';
-+ LinkAccountSubtypes['PENSION'] = 'pension';
-+ LinkAccountSubtypes['PLAN'] = 'plan';
-+ LinkAccountSubtypes['PRIF'] = 'prif';
-+ LinkAccountSubtypes['PROFIT_SHARING_PLAN'] = 'profit sharing plan';
-+ LinkAccountSubtypes['RDSP'] = 'rdsp';
-+ LinkAccountSubtypes['RESP'] = 'resp';
-+ LinkAccountSubtypes['RETIREMENT'] = 'retirement';
-+ LinkAccountSubtypes['RLIF'] = 'rlif';
-+ LinkAccountSubtypes['ROTH_401K'] = 'roth 401k';
-+ LinkAccountSubtypes['ROTH'] = 'roth';
-+ LinkAccountSubtypes['RRIF'] = 'rrif';
-+ LinkAccountSubtypes['RRSP'] = 'rrsp';
-+ LinkAccountSubtypes['SARSEP'] = 'sarsep';
-+ LinkAccountSubtypes['SEP_IRA'] = 'sep ira';
-+ LinkAccountSubtypes['SIMPLE_IRA'] = 'simple ira';
-+ LinkAccountSubtypes['SIPP'] = 'sipp';
-+ LinkAccountSubtypes['STOCK_PLAN'] = 'stock plan';
-+ LinkAccountSubtypes['TFSA'] = 'tfsa';
-+ LinkAccountSubtypes['THRIFT_SAVINGS_PLAN'] = 'thrift savings plan';
-+ LinkAccountSubtypes['TRUST'] = 'trust';
-+ LinkAccountSubtypes['UGMA'] = 'ugma';
-+ LinkAccountSubtypes['UTMA'] = 'utma';
-+ LinkAccountSubtypes['VARIABLE_ANNUITY'] = 'variable annuity';
- })(LinkAccountSubtypes || (LinkAccountSubtypes = {}));
- export class LinkAccountSubtypeCredit {
-- constructor(type, subtype) {
-- this.type = type;
-- this.subtype = subtype;
-- }
-+ constructor(type, subtype) {
-+ this.type = type;
-+ this.subtype = subtype;
-+ }
- }
--LinkAccountSubtypeCredit.ALL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL);
--LinkAccountSubtypeCredit.CREDIT_CARD = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.CREDIT_CARD);
--LinkAccountSubtypeCredit.PAYPAL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.PAYPAL);
-+LinkAccountSubtypeCredit.ALL = new LinkAccountSubtypeCredit(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.ALL,
-+);
-+LinkAccountSubtypeCredit.CREDIT_CARD = new LinkAccountSubtypeCredit(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.CREDIT_CARD,
-+);
-+LinkAccountSubtypeCredit.PAYPAL = new LinkAccountSubtypeCredit(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.PAYPAL,
-+);
- export class LinkAccountSubtypeDepository {
-- constructor(type, subtype) {
-- this.type = type;
-- this.subtype = subtype;
-- }
-+ constructor(type, subtype) {
-+ this.type = type;
-+ this.subtype = subtype;
-+ }
- }
--LinkAccountSubtypeDepository.ALL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.ALL);
--LinkAccountSubtypeDepository.CASH_MANAGEMENT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CASH_MANAGEMENT);
--LinkAccountSubtypeDepository.CD = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CD);
--LinkAccountSubtypeDepository.CHECKING = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CHECKING);
--LinkAccountSubtypeDepository.EBT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.EBT);
--LinkAccountSubtypeDepository.HSA = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.HSA);
--LinkAccountSubtypeDepository.MONEY_MARKET = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.MONEY_MARKET);
--LinkAccountSubtypeDepository.PAYPAL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PAYPAL);
--LinkAccountSubtypeDepository.PREPAID = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PREPAID);
--LinkAccountSubtypeDepository.SAVINGS = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.SAVINGS);
-+LinkAccountSubtypeDepository.ALL = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.ALL,
-+);
-+LinkAccountSubtypeDepository.CASH_MANAGEMENT = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.CASH_MANAGEMENT,
-+);
-+LinkAccountSubtypeDepository.CD = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.CD,
-+);
-+LinkAccountSubtypeDepository.CHECKING = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.CHECKING,
-+);
-+LinkAccountSubtypeDepository.EBT = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.EBT,
-+);
-+LinkAccountSubtypeDepository.HSA = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.HSA,
-+);
-+LinkAccountSubtypeDepository.MONEY_MARKET = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.MONEY_MARKET,
-+);
-+LinkAccountSubtypeDepository.PAYPAL = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.PAYPAL,
-+);
-+LinkAccountSubtypeDepository.PREPAID = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.PREPAID,
-+);
-+LinkAccountSubtypeDepository.SAVINGS = new LinkAccountSubtypeDepository(
-+ LinkAccountType.DEPOSITORY,
-+ LinkAccountSubtypes.SAVINGS,
-+);
- export class LinkAccountSubtypeInvestment {
-- constructor(type, subtype) {
-- this.type = type;
-- this.subtype = subtype;
-- }
-+ constructor(type, subtype) {
-+ this.type = type;
-+ this.subtype = subtype;
-+ }
- }
--LinkAccountSubtypeInvestment.ALL = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ALL);
--LinkAccountSubtypeInvestment.BROKERAGE = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.BROKERAGE);
--LinkAccountSubtypeInvestment.CASH_ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.CASH_ISA);
--LinkAccountSubtypeInvestment.EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT);
--LinkAccountSubtypeInvestment.FIXED_ANNUNITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIXED_ANNUNITY);
--LinkAccountSubtypeInvestment.GIC = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.GIC);
--LinkAccountSubtypeInvestment.HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT);
--LinkAccountSubtypeInvestment.HSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HSA);
--LinkAccountSubtypeInvestment.INVESTMENT_401A = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_A);
--LinkAccountSubtypeInvestment.INVESTMENT_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_K);
--LinkAccountSubtypeInvestment.INVESTMENT_403B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_3_B);
--LinkAccountSubtypeInvestment.INVESTMENT_457B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_5_7_B);
--LinkAccountSubtypeInvestment.INVESTMENT_529 = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIVE_2_9);
--LinkAccountSubtypeInvestment.IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.IRA);
--LinkAccountSubtypeInvestment.ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ISA);
--LinkAccountSubtypeInvestment.KEOGH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.KEOGH);
--LinkAccountSubtypeInvestment.LIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIF);
--LinkAccountSubtypeInvestment.LIRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIRA);
--LinkAccountSubtypeInvestment.LRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRIF);
--LinkAccountSubtypeInvestment.LRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRSP);
--LinkAccountSubtypeInvestment.MUTUAL_FUND = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.MUTUAL_FUND);
--LinkAccountSubtypeInvestment.NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT);
--LinkAccountSubtypeInvestment.PENSION = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PENSION);
--LinkAccountSubtypeInvestment.PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PLAN);
--LinkAccountSubtypeInvestment.PRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PRIF);
--LinkAccountSubtypeInvestment.PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PROFIT_SHARING_PLAN);
--LinkAccountSubtypeInvestment.RDSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RDSP);
--LinkAccountSubtypeInvestment.RESP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RESP);
--LinkAccountSubtypeInvestment.RETIREMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RETIREMENT);
--LinkAccountSubtypeInvestment.RLIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RLIF);
--LinkAccountSubtypeInvestment.ROTH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH);
--LinkAccountSubtypeInvestment.ROTH_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH_401K);
--LinkAccountSubtypeInvestment.RRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRIF);
--LinkAccountSubtypeInvestment.RRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRSP);
--LinkAccountSubtypeInvestment.SARSEP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SARSEP);
--LinkAccountSubtypeInvestment.SEP_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SEP_IRA);
--LinkAccountSubtypeInvestment.SIMPLE_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIMPLE_IRA);
--LinkAccountSubtypeInvestment.SIIP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIPP);
--LinkAccountSubtypeInvestment.STOCK_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.STOCK_PLAN);
--LinkAccountSubtypeInvestment.TFSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TFSA);
--LinkAccountSubtypeInvestment.THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.THRIFT_SAVINGS_PLAN);
--LinkAccountSubtypeInvestment.TRUST = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TRUST);
--LinkAccountSubtypeInvestment.UGMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UGMA);
--LinkAccountSubtypeInvestment.UTMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UTMA);
--LinkAccountSubtypeInvestment.VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.VARIABLE_ANNUITY);
-+LinkAccountSubtypeInvestment.ALL = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.ALL,
-+);
-+LinkAccountSubtypeInvestment.BROKERAGE = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.BROKERAGE,
-+);
-+LinkAccountSubtypeInvestment.CASH_ISA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.CASH_ISA,
-+);
-+LinkAccountSubtypeInvestment.EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT,
-+);
-+LinkAccountSubtypeInvestment.FIXED_ANNUNITY = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FIXED_ANNUNITY,
-+);
-+LinkAccountSubtypeInvestment.GIC = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.GIC,
-+);
-+LinkAccountSubtypeInvestment.HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT,
-+);
-+LinkAccountSubtypeInvestment.HSA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.HSA,
-+);
-+LinkAccountSubtypeInvestment.INVESTMENT_401A = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FOUR_0_1_A,
-+);
-+LinkAccountSubtypeInvestment.INVESTMENT_401K = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FOUR_0_1_K,
-+);
-+LinkAccountSubtypeInvestment.INVESTMENT_403B = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FOUR_0_3_B,
-+);
-+LinkAccountSubtypeInvestment.INVESTMENT_457B = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FOUR_5_7_B,
-+);
-+LinkAccountSubtypeInvestment.INVESTMENT_529 = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.FIVE_2_9,
-+);
-+LinkAccountSubtypeInvestment.IRA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.IRA,
-+);
-+LinkAccountSubtypeInvestment.ISA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.ISA,
-+);
-+LinkAccountSubtypeInvestment.KEOGH = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.KEOGH,
-+);
-+LinkAccountSubtypeInvestment.LIF = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.LIF,
-+);
-+LinkAccountSubtypeInvestment.LIRA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.LIRA,
-+);
-+LinkAccountSubtypeInvestment.LRIF = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.LRIF,
-+);
-+LinkAccountSubtypeInvestment.LRSP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.LRSP,
-+);
-+LinkAccountSubtypeInvestment.MUTUAL_FUND = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.MUTUAL_FUND,
-+);
-+LinkAccountSubtypeInvestment.NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT,
-+);
-+LinkAccountSubtypeInvestment.PENSION = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.PENSION,
-+);
-+LinkAccountSubtypeInvestment.PLAN = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.PLAN,
-+);
-+LinkAccountSubtypeInvestment.PRIF = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.PRIF,
-+);
-+LinkAccountSubtypeInvestment.PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.PROFIT_SHARING_PLAN,
-+);
-+LinkAccountSubtypeInvestment.RDSP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RDSP,
-+);
-+LinkAccountSubtypeInvestment.RESP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RESP,
-+);
-+LinkAccountSubtypeInvestment.RETIREMENT = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RETIREMENT,
-+);
-+LinkAccountSubtypeInvestment.RLIF = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RLIF,
-+);
-+LinkAccountSubtypeInvestment.ROTH = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.ROTH,
-+);
-+LinkAccountSubtypeInvestment.ROTH_401K = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.ROTH_401K,
-+);
-+LinkAccountSubtypeInvestment.RRIF = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RRIF,
-+);
-+LinkAccountSubtypeInvestment.RRSP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.RRSP,
-+);
-+LinkAccountSubtypeInvestment.SARSEP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.SARSEP,
-+);
-+LinkAccountSubtypeInvestment.SEP_IRA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.SEP_IRA,
-+);
-+LinkAccountSubtypeInvestment.SIMPLE_IRA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.SIMPLE_IRA,
-+);
-+LinkAccountSubtypeInvestment.SIIP = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.SIPP,
-+);
-+LinkAccountSubtypeInvestment.STOCK_PLAN = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.STOCK_PLAN,
-+);
-+LinkAccountSubtypeInvestment.TFSA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.TFSA,
-+);
-+LinkAccountSubtypeInvestment.THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.THRIFT_SAVINGS_PLAN,
-+);
-+LinkAccountSubtypeInvestment.TRUST = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.TRUST,
-+);
-+LinkAccountSubtypeInvestment.UGMA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.UGMA,
-+);
-+LinkAccountSubtypeInvestment.UTMA = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.UTMA,
-+);
-+LinkAccountSubtypeInvestment.VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment(
-+ LinkAccountType.INVESTMENT,
-+ LinkAccountSubtypes.VARIABLE_ANNUITY,
-+);
- export class LinkAccountSubtypeLoan {
-- constructor(type, subtype) {
-- this.type = type;
-- this.subtype = subtype;
-- }
-+ constructor(type, subtype) {
-+ this.type = type;
-+ this.subtype = subtype;
-+ }
- }
--LinkAccountSubtypeLoan.ALL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL);
--LinkAccountSubtypeLoan.AUTO = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.AUTO);
--LinkAccountSubtypeLoan.BUSINESS = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.BUSINESS);
--LinkAccountSubtypeLoan.COMMERCIAL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.COMMERCIAL);
--LinkAccountSubtypeLoan.CONSTRUCTION = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSTRUCTION);
--LinkAccountSubtypeLoan.CONSUMER = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSUMER);
--LinkAccountSubtypeLoan.HOME_EQUITY = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.HOME_EQUITY);
--LinkAccountSubtypeLoan.LINE_OF_CREDIT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LINE_OF_CREDIT);
--LinkAccountSubtypeLoan.LOAN = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LOAN);
--LinkAccountSubtypeLoan.MORTGAGE = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.MORTGAGE);
--LinkAccountSubtypeLoan.OVERDRAFT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.OVERDRAFT);
--LinkAccountSubtypeLoan.STUDENT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.STUDENT);
-+LinkAccountSubtypeLoan.ALL = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.ALL,
-+);
-+LinkAccountSubtypeLoan.AUTO = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.AUTO,
-+);
-+LinkAccountSubtypeLoan.BUSINESS = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.BUSINESS,
-+);
-+LinkAccountSubtypeLoan.COMMERCIAL = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.COMMERCIAL,
-+);
-+LinkAccountSubtypeLoan.CONSTRUCTION = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.CONSTRUCTION,
-+);
-+LinkAccountSubtypeLoan.CONSUMER = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.CONSUMER,
-+);
-+LinkAccountSubtypeLoan.HOME_EQUITY = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.HOME_EQUITY,
-+);
-+LinkAccountSubtypeLoan.LINE_OF_CREDIT = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.LINE_OF_CREDIT,
-+);
-+LinkAccountSubtypeLoan.LOAN = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.LOAN,
-+);
-+LinkAccountSubtypeLoan.MORTGAGE = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.MORTGAGE,
-+);
-+LinkAccountSubtypeLoan.OVERDRAFT = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.OVERDRAFT,
-+);
-+LinkAccountSubtypeLoan.STUDENT = new LinkAccountSubtypeLoan(
-+ LinkAccountType.CREDIT,
-+ LinkAccountSubtypes.STUDENT,
-+);
- export class LinkAccountSubtypeUnknown {
-- constructor(type, subtype) {
-- this.type = type;
-- this.subtype = subtype;
-- }
-+ constructor(type, subtype) {
-+ this.type = type;
-+ this.subtype = subtype;
-+ }
- }
- export var LinkAccountVerificationStatus;
--(function (LinkAccountVerificationStatus) {
-- LinkAccountVerificationStatus["PENDING_AUTOMATIC_VERIFICATION"] = "pending_automatic_verification";
-- LinkAccountVerificationStatus["PENDING_MANUAL_VERIFICATION"] = "pending_manual_verification";
-- LinkAccountVerificationStatus["MANUALLY_VERIFIED"] = "manually_verified";
-+(function(LinkAccountVerificationStatus) {
-+ LinkAccountVerificationStatus['PENDING_AUTOMATIC_VERIFICATION'] =
-+ 'pending_automatic_verification';
-+ LinkAccountVerificationStatus['PENDING_MANUAL_VERIFICATION'] =
-+ 'pending_manual_verification';
-+ LinkAccountVerificationStatus['MANUALLY_VERIFIED'] = 'manually_verified';
- })(LinkAccountVerificationStatus || (LinkAccountVerificationStatus = {}));
- export var LinkExitMetadataStatus;
--(function (LinkExitMetadataStatus) {
-- LinkExitMetadataStatus["CONNECTED"] = "connected";
-- LinkExitMetadataStatus["CHOOSE_DEVICE"] = "choose_device";
-- LinkExitMetadataStatus["REQUIRES_ACCOUNT_SELECTION"] = "requires_account_selection";
-- LinkExitMetadataStatus["REQUIRES_CODE"] = "requires_code";
-- LinkExitMetadataStatus["REQUIRES_CREDENTIALS"] = "requires_credentials";
-- LinkExitMetadataStatus["REQUIRES_EXTERNAL_ACTION"] = "requires_external_action";
-- LinkExitMetadataStatus["REQUIRES_OAUTH"] = "requires_oauth";
-- LinkExitMetadataStatus["REQUIRES_QUESTIONS"] = "requires_questions";
-- LinkExitMetadataStatus["REQUIRES_RECAPTCHA"] = "requires_recaptcha";
-- LinkExitMetadataStatus["REQUIRES_SELECTIONS"] = "requires_selections";
-- LinkExitMetadataStatus["REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION"] = "requires_deposit_switch_allocation_configuration";
-- LinkExitMetadataStatus["REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION"] = "requires_deposit_switch_allocation_selection";
-+(function(LinkExitMetadataStatus) {
-+ LinkExitMetadataStatus['CONNECTED'] = 'connected';
-+ LinkExitMetadataStatus['CHOOSE_DEVICE'] = 'choose_device';
-+ LinkExitMetadataStatus['REQUIRES_ACCOUNT_SELECTION'] =
-+ 'requires_account_selection';
-+ LinkExitMetadataStatus['REQUIRES_CODE'] = 'requires_code';
-+ LinkExitMetadataStatus['REQUIRES_CREDENTIALS'] = 'requires_credentials';
-+ LinkExitMetadataStatus['REQUIRES_EXTERNAL_ACTION'] =
-+ 'requires_external_action';
-+ LinkExitMetadataStatus['REQUIRES_OAUTH'] = 'requires_oauth';
-+ LinkExitMetadataStatus['REQUIRES_QUESTIONS'] = 'requires_questions';
-+ LinkExitMetadataStatus['REQUIRES_RECAPTCHA'] = 'requires_recaptcha';
-+ LinkExitMetadataStatus['REQUIRES_SELECTIONS'] = 'requires_selections';
-+ LinkExitMetadataStatus['REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION'] =
-+ 'requires_deposit_switch_allocation_configuration';
-+ LinkExitMetadataStatus['REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION'] =
-+ 'requires_deposit_switch_allocation_selection';
- })(LinkExitMetadataStatus || (LinkExitMetadataStatus = {}));
- export var LinkErrorCode;
--(function (LinkErrorCode) {
-- // ITEM_ERROR
-- LinkErrorCode["INVALID_CREDENTIALS"] = "INVALID_CREDENTIALS";
-- LinkErrorCode["INVALID_MFA"] = "INVALID_MFA";
-- LinkErrorCode["ITEM_LOGIN_REQUIRED"] = "ITEM_LOGIN_REQUIRED";
-- LinkErrorCode["INSUFFICIENT_CREDENTIALS"] = "INSUFFICIENT_CREDENTIALS";
-- LinkErrorCode["ITEM_LOCKED"] = "ITEM_LOCKED";
-- LinkErrorCode["USER_SETUP_REQUIRED"] = "USER_SETUP_REQUIRED";
-- LinkErrorCode["MFA_NOT_SUPPORTED"] = "MFA_NOT_SUPPORTED";
-- LinkErrorCode["INVALID_SEND_METHOD"] = "INVALID_SEND_METHOD";
-- LinkErrorCode["NO_ACCOUNTS"] = "NO_ACCOUNTS";
-- LinkErrorCode["ITEM_NOT_SUPPORTED"] = "ITEM_NOT_SUPPORTED";
-- LinkErrorCode["TOO_MANY_VERIFICATION_ATTEMPTS"] = "TOO_MANY_VERIFICATION_ATTEMPTS";
-- LinkErrorCode["INVALD_UPDATED_USERNAME"] = "INVALD_UPDATED_USERNAME";
-- LinkErrorCode["INVALID_UPDATED_USERNAME"] = "INVALID_UPDATED_USERNAME";
-- LinkErrorCode["ITEM_NO_ERROR"] = "ITEM_NO_ERROR";
-- LinkErrorCode["item_no_error"] = "item-no-error";
-- LinkErrorCode["NO_AUTH_ACCOUNTS"] = "NO_AUTH_ACCOUNTS";
-- LinkErrorCode["NO_INVESTMENT_ACCOUNTS"] = "NO_INVESTMENT_ACCOUNTS";
-- LinkErrorCode["NO_INVESTMENT_AUTH_ACCOUNTS"] = "NO_INVESTMENT_AUTH_ACCOUNTS";
-- LinkErrorCode["NO_LIABILITY_ACCOUNTS"] = "NO_LIABILITY_ACCOUNTS";
-- LinkErrorCode["PRODUCTS_NOT_SUPPORTED"] = "PRODUCTS_NOT_SUPPORTED";
-- LinkErrorCode["ITEM_NOT_FOUND"] = "ITEM_NOT_FOUND";
-- LinkErrorCode["ITEM_PRODUCT_NOT_READY"] = "ITEM_PRODUCT_NOT_READY";
-- // INSTITUTION_ERROR
-- LinkErrorCode["INSTITUTION_DOWN"] = "INSTITUTION_DOWN";
-- LinkErrorCode["INSTITUTION_NOT_RESPONDING"] = "INSTITUTION_NOT_RESPONDING";
-- LinkErrorCode["INSTITUTION_NOT_AVAILABLE"] = "INSTITUTION_NOT_AVAILABLE";
-- LinkErrorCode["INSTITUTION_NO_LONGER_SUPPORTED"] = "INSTITUTION_NO_LONGER_SUPPORTED";
-- // API_ERROR
-- LinkErrorCode["INTERNAL_SERVER_ERROR"] = "INTERNAL_SERVER_ERROR";
-- LinkErrorCode["PLANNED_MAINTENANCE"] = "PLANNED_MAINTENANCE";
-- // ASSET_REPORT_ERROR
-- LinkErrorCode["PRODUCT_NOT_ENABLED"] = "PRODUCT_NOT_ENABLED";
-- LinkErrorCode["DATA_UNAVAILABLE"] = "DATA_UNAVAILABLE";
-- LinkErrorCode["ASSET_PRODUCT_NOT_READY"] = "ASSET_PRODUCT_NOT_READY";
-- LinkErrorCode["ASSET_REPORT_GENERATION_FAILED"] = "ASSET_REPORT_GENERATION_FAILED";
-- LinkErrorCode["INVALID_PARENT"] = "INVALID_PARENT";
-- LinkErrorCode["INSIGHTS_NOT_ENABLED"] = "INSIGHTS_NOT_ENABLED";
-- LinkErrorCode["INSIGHTS_PREVIOUSLY_NOT_ENABLED"] = "INSIGHTS_PREVIOUSLY_NOT_ENABLED";
-- // BANK_TRANSFER_ERROR
-- LinkErrorCode["BANK_TRANSFER_LIMIT_EXCEEDED"] = "BANK_TRANSFER_LIMIT_EXCEEDED";
-- LinkErrorCode["BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT"] = "BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT";
-- LinkErrorCode["BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT"] = "BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT";
-- LinkErrorCode["BANK_TRANSFER_ACCOUNT_BLOCKED"] = "BANK_TRANSFER_ACCOUNT_BLOCKED";
-- LinkErrorCode["BANK_TRANSFER_INSUFFICIENT_FUNDS"] = "BANK_TRANSFER_INSUFFICIENT_FUNDS";
-- LinkErrorCode["BANK_TRANSFER_NOT_CANCELLABLE"] = "BANK_TRANSFER_NOT_CANCELLABLE";
-- LinkErrorCode["BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE"] = "BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE";
-- LinkErrorCode["BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT"] = "BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT";
-- // SANDBOX_ERROR
-- LinkErrorCode["SANDBOX_PRODUCT_NOT_ENABLED"] = "SANDBOX_PRODUCT_NOT_ENABLED";
-- LinkErrorCode["SANDBOX_WEBHOOK_INVALID"] = "SANDBOX_WEBHOOK_INVALID";
-- LinkErrorCode["SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID"] = "SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID";
-- // INVALID_REQUEST
-- LinkErrorCode["MISSING_FIELDS"] = "MISSING_FIELDS";
-- LinkErrorCode["UNKNOWN_FIELDS"] = "UNKNOWN_FIELDS";
-- LinkErrorCode["INVALID_FIELD"] = "INVALID_FIELD";
-- LinkErrorCode["INCOMPATIBLE_API_VERSION"] = "INCOMPATIBLE_API_VERSION";
-- LinkErrorCode["INVALID_BODY"] = "INVALID_BODY";
-- LinkErrorCode["INVALID_HEADERS"] = "INVALID_HEADERS";
-- LinkErrorCode["NOT_FOUND"] = "NOT_FOUND";
-- LinkErrorCode["NO_LONGER_AVAILABLE"] = "NO_LONGER_AVAILABLE";
-- LinkErrorCode["SANDBOX_ONLY"] = "SANDBOX_ONLY";
-- LinkErrorCode["INVALID_ACCOUNT_NUMBER"] = "INVALID_ACCOUNT_NUMBER";
-- // INVALID_INPUT
-- // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS",
-- LinkErrorCode["INCORRECT_DEPOSIT_AMOUNTS"] = "INCORRECT_DEPOSIT_AMOUNTS";
-- LinkErrorCode["UNAUTHORIZED_ENVIRONMENT"] = "UNAUTHORIZED_ENVIRONMENT";
-- LinkErrorCode["INVALID_PRODUCT"] = "INVALID_PRODUCT";
-- LinkErrorCode["UNAUTHORIZED_ROUTE_ACCESS"] = "UNAUTHORIZED_ROUTE_ACCESS";
-- LinkErrorCode["DIRECT_INTEGRATION_NOT_ENABLED"] = "DIRECT_INTEGRATION_NOT_ENABLED";
-- LinkErrorCode["INVALID_API_KEYS"] = "INVALID_API_KEYS";
-- LinkErrorCode["INVALID_ACCESS_TOKEN"] = "INVALID_ACCESS_TOKEN";
-- LinkErrorCode["INVALID_PUBLIC_TOKEN"] = "INVALID_PUBLIC_TOKEN";
-- LinkErrorCode["INVALID_LINK_TOKEN"] = "INVALID_LINK_TOKEN";
-- LinkErrorCode["INVALID_PROCESSOR_TOKEN"] = "INVALID_PROCESSOR_TOKEN";
-- LinkErrorCode["INVALID_AUDIT_COPY_TOKEN"] = "INVALID_AUDIT_COPY_TOKEN";
-- LinkErrorCode["INVALID_ACCOUNT_ID"] = "INVALID_ACCOUNT_ID";
-- LinkErrorCode["MICRODEPOSITS_ALREADY_VERIFIED"] = "MICRODEPOSITS_ALREADY_VERIFIED";
-- // INVALID_RESULT
-- LinkErrorCode["PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA"] = "PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA";
-- // RATE_LIMIT_EXCEEDED
-- LinkErrorCode["ACCOUNTS_LIMIT"] = "ACCOUNTS_LIMIT";
-- LinkErrorCode["ADDITION_LIMIT"] = "ADDITION_LIMIT";
-- LinkErrorCode["AUTH_LIMIT"] = "AUTH_LIMIT";
-- LinkErrorCode["BALANCE_LIMIT"] = "BALANCE_LIMIT";
-- LinkErrorCode["IDENTITY_LIMIT"] = "IDENTITY_LIMIT";
-- LinkErrorCode["ITEM_GET_LIMIT"] = "ITEM_GET_LIMIT";
-- LinkErrorCode["RATE_LIMIT"] = "RATE_LIMIT";
-- LinkErrorCode["TRANSACTIONS_LIMIT"] = "TRANSACTIONS_LIMIT";
-- // RECAPTCHA_ERROR
-- LinkErrorCode["RECAPTCHA_REQUIRED"] = "RECAPTCHA_REQUIRED";
-- LinkErrorCode["RECAPTCHA_BAD"] = "RECAPTCHA_BAD";
-- // OAUTH_ERROR
-- LinkErrorCode["INCORRECT_OAUTH_NONCE"] = "INCORRECT_OAUTH_NONCE";
-- LinkErrorCode["OAUTH_STATE_ID_ALREADY_PROCESSED"] = "OAUTH_STATE_ID_ALREADY_PROCESSED";
-+(function(LinkErrorCode) {
-+ // ITEM_ERROR
-+ LinkErrorCode['INVALID_CREDENTIALS'] = 'INVALID_CREDENTIALS';
-+ LinkErrorCode['INVALID_MFA'] = 'INVALID_MFA';
-+ LinkErrorCode['ITEM_LOGIN_REQUIRED'] = 'ITEM_LOGIN_REQUIRED';
-+ LinkErrorCode['INSUFFICIENT_CREDENTIALS'] = 'INSUFFICIENT_CREDENTIALS';
-+ LinkErrorCode['ITEM_LOCKED'] = 'ITEM_LOCKED';
-+ LinkErrorCode['USER_SETUP_REQUIRED'] = 'USER_SETUP_REQUIRED';
-+ LinkErrorCode['MFA_NOT_SUPPORTED'] = 'MFA_NOT_SUPPORTED';
-+ LinkErrorCode['INVALID_SEND_METHOD'] = 'INVALID_SEND_METHOD';
-+ LinkErrorCode['NO_ACCOUNTS'] = 'NO_ACCOUNTS';
-+ LinkErrorCode['ITEM_NOT_SUPPORTED'] = 'ITEM_NOT_SUPPORTED';
-+ LinkErrorCode['TOO_MANY_VERIFICATION_ATTEMPTS'] =
-+ 'TOO_MANY_VERIFICATION_ATTEMPTS';
-+ LinkErrorCode['INVALD_UPDATED_USERNAME'] = 'INVALD_UPDATED_USERNAME';
-+ LinkErrorCode['INVALID_UPDATED_USERNAME'] = 'INVALID_UPDATED_USERNAME';
-+ LinkErrorCode['ITEM_NO_ERROR'] = 'ITEM_NO_ERROR';
-+ LinkErrorCode['item_no_error'] = 'item-no-error';
-+ LinkErrorCode['NO_AUTH_ACCOUNTS'] = 'NO_AUTH_ACCOUNTS';
-+ LinkErrorCode['NO_INVESTMENT_ACCOUNTS'] = 'NO_INVESTMENT_ACCOUNTS';
-+ LinkErrorCode['NO_INVESTMENT_AUTH_ACCOUNTS'] = 'NO_INVESTMENT_AUTH_ACCOUNTS';
-+ LinkErrorCode['NO_LIABILITY_ACCOUNTS'] = 'NO_LIABILITY_ACCOUNTS';
-+ LinkErrorCode['PRODUCTS_NOT_SUPPORTED'] = 'PRODUCTS_NOT_SUPPORTED';
-+ LinkErrorCode['ITEM_NOT_FOUND'] = 'ITEM_NOT_FOUND';
-+ LinkErrorCode['ITEM_PRODUCT_NOT_READY'] = 'ITEM_PRODUCT_NOT_READY';
-+ // INSTITUTION_ERROR
-+ LinkErrorCode['INSTITUTION_DOWN'] = 'INSTITUTION_DOWN';
-+ LinkErrorCode['INSTITUTION_NOT_RESPONDING'] = 'INSTITUTION_NOT_RESPONDING';
-+ LinkErrorCode['INSTITUTION_NOT_AVAILABLE'] = 'INSTITUTION_NOT_AVAILABLE';
-+ LinkErrorCode['INSTITUTION_NO_LONGER_SUPPORTED'] =
-+ 'INSTITUTION_NO_LONGER_SUPPORTED';
-+ // API_ERROR
-+ LinkErrorCode['INTERNAL_SERVER_ERROR'] = 'INTERNAL_SERVER_ERROR';
-+ LinkErrorCode['PLANNED_MAINTENANCE'] = 'PLANNED_MAINTENANCE';
-+ // ASSET_REPORT_ERROR
-+ LinkErrorCode['PRODUCT_NOT_ENABLED'] = 'PRODUCT_NOT_ENABLED';
-+ LinkErrorCode['DATA_UNAVAILABLE'] = 'DATA_UNAVAILABLE';
-+ LinkErrorCode['ASSET_PRODUCT_NOT_READY'] = 'ASSET_PRODUCT_NOT_READY';
-+ LinkErrorCode['ASSET_REPORT_GENERATION_FAILED'] =
-+ 'ASSET_REPORT_GENERATION_FAILED';
-+ LinkErrorCode['INVALID_PARENT'] = 'INVALID_PARENT';
-+ LinkErrorCode['INSIGHTS_NOT_ENABLED'] = 'INSIGHTS_NOT_ENABLED';
-+ LinkErrorCode['INSIGHTS_PREVIOUSLY_NOT_ENABLED'] =
-+ 'INSIGHTS_PREVIOUSLY_NOT_ENABLED';
-+ // BANK_TRANSFER_ERROR
-+ LinkErrorCode['BANK_TRANSFER_LIMIT_EXCEEDED'] =
-+ 'BANK_TRANSFER_LIMIT_EXCEEDED';
-+ LinkErrorCode['BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT'] =
-+ 'BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT';
-+ LinkErrorCode['BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT'] =
-+ 'BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT';
-+ LinkErrorCode['BANK_TRANSFER_ACCOUNT_BLOCKED'] =
-+ 'BANK_TRANSFER_ACCOUNT_BLOCKED';
-+ LinkErrorCode['BANK_TRANSFER_INSUFFICIENT_FUNDS'] =
-+ 'BANK_TRANSFER_INSUFFICIENT_FUNDS';
-+ LinkErrorCode['BANK_TRANSFER_NOT_CANCELLABLE'] =
-+ 'BANK_TRANSFER_NOT_CANCELLABLE';
-+ LinkErrorCode['BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE'] =
-+ 'BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE';
-+ LinkErrorCode['BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT'] =
-+ 'BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT';
-+ // SANDBOX_ERROR
-+ LinkErrorCode['SANDBOX_PRODUCT_NOT_ENABLED'] = 'SANDBOX_PRODUCT_NOT_ENABLED';
-+ LinkErrorCode['SANDBOX_WEBHOOK_INVALID'] = 'SANDBOX_WEBHOOK_INVALID';
-+ LinkErrorCode['SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID'] =
-+ 'SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID';
-+ // INVALID_REQUEST
-+ LinkErrorCode['MISSING_FIELDS'] = 'MISSING_FIELDS';
-+ LinkErrorCode['UNKNOWN_FIELDS'] = 'UNKNOWN_FIELDS';
-+ LinkErrorCode['INVALID_FIELD'] = 'INVALID_FIELD';
-+ LinkErrorCode['INCOMPATIBLE_API_VERSION'] = 'INCOMPATIBLE_API_VERSION';
-+ LinkErrorCode['INVALID_BODY'] = 'INVALID_BODY';
-+ LinkErrorCode['INVALID_HEADERS'] = 'INVALID_HEADERS';
-+ LinkErrorCode['NOT_FOUND'] = 'NOT_FOUND';
-+ LinkErrorCode['NO_LONGER_AVAILABLE'] = 'NO_LONGER_AVAILABLE';
-+ LinkErrorCode['SANDBOX_ONLY'] = 'SANDBOX_ONLY';
-+ LinkErrorCode['INVALID_ACCOUNT_NUMBER'] = 'INVALID_ACCOUNT_NUMBER';
-+ // INVALID_INPUT
-+ // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS",
-+ LinkErrorCode['INCORRECT_DEPOSIT_AMOUNTS'] = 'INCORRECT_DEPOSIT_AMOUNTS';
-+ LinkErrorCode['UNAUTHORIZED_ENVIRONMENT'] = 'UNAUTHORIZED_ENVIRONMENT';
-+ LinkErrorCode['INVALID_PRODUCT'] = 'INVALID_PRODUCT';
-+ LinkErrorCode['UNAUTHORIZED_ROUTE_ACCESS'] = 'UNAUTHORIZED_ROUTE_ACCESS';
-+ LinkErrorCode['DIRECT_INTEGRATION_NOT_ENABLED'] =
-+ 'DIRECT_INTEGRATION_NOT_ENABLED';
-+ LinkErrorCode['INVALID_API_KEYS'] = 'INVALID_API_KEYS';
-+ LinkErrorCode['INVALID_ACCESS_TOKEN'] = 'INVALID_ACCESS_TOKEN';
-+ LinkErrorCode['INVALID_PUBLIC_TOKEN'] = 'INVALID_PUBLIC_TOKEN';
-+ LinkErrorCode['INVALID_LINK_TOKEN'] = 'INVALID_LINK_TOKEN';
-+ LinkErrorCode['INVALID_PROCESSOR_TOKEN'] = 'INVALID_PROCESSOR_TOKEN';
-+ LinkErrorCode['INVALID_AUDIT_COPY_TOKEN'] = 'INVALID_AUDIT_COPY_TOKEN';
-+ LinkErrorCode['INVALID_ACCOUNT_ID'] = 'INVALID_ACCOUNT_ID';
-+ LinkErrorCode['MICRODEPOSITS_ALREADY_VERIFIED'] =
-+ 'MICRODEPOSITS_ALREADY_VERIFIED';
-+ // INVALID_RESULT
-+ LinkErrorCode['PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA'] =
-+ 'PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA';
-+ // RATE_LIMIT_EXCEEDED
-+ LinkErrorCode['ACCOUNTS_LIMIT'] = 'ACCOUNTS_LIMIT';
-+ LinkErrorCode['ADDITION_LIMIT'] = 'ADDITION_LIMIT';
-+ LinkErrorCode['AUTH_LIMIT'] = 'AUTH_LIMIT';
-+ LinkErrorCode['BALANCE_LIMIT'] = 'BALANCE_LIMIT';
-+ LinkErrorCode['IDENTITY_LIMIT'] = 'IDENTITY_LIMIT';
-+ LinkErrorCode['ITEM_GET_LIMIT'] = 'ITEM_GET_LIMIT';
-+ LinkErrorCode['RATE_LIMIT'] = 'RATE_LIMIT';
-+ LinkErrorCode['TRANSACTIONS_LIMIT'] = 'TRANSACTIONS_LIMIT';
-+ // RECAPTCHA_ERROR
-+ LinkErrorCode['RECAPTCHA_REQUIRED'] = 'RECAPTCHA_REQUIRED';
-+ LinkErrorCode['RECAPTCHA_BAD'] = 'RECAPTCHA_BAD';
-+ // OAUTH_ERROR
-+ LinkErrorCode['INCORRECT_OAUTH_NONCE'] = 'INCORRECT_OAUTH_NONCE';
-+ LinkErrorCode['OAUTH_STATE_ID_ALREADY_PROCESSED'] =
-+ 'OAUTH_STATE_ID_ALREADY_PROCESSED';
- })(LinkErrorCode || (LinkErrorCode = {}));
- export var LinkErrorType;
--(function (LinkErrorType) {
-- LinkErrorType["BANK_TRANSFER"] = "BANK_TRANSFER_ERROR";
-- LinkErrorType["INVALID_REQUEST"] = "INVALID_REQUEST";
-- LinkErrorType["INVALID_RESULT"] = "INVALID_RESULT";
-- LinkErrorType["INVALID_INPUT"] = "INVALID_INPUT";
-- LinkErrorType["INSTITUTION_ERROR"] = "INSTITUTION_ERROR";
-- LinkErrorType["RATE_LIMIT_EXCEEDED"] = "RATE_LIMIT_EXCEEDED";
-- LinkErrorType["API_ERROR"] = "API_ERROR";
-- LinkErrorType["ITEM_ERROR"] = "ITEM_ERROR";
-- LinkErrorType["AUTH_ERROR"] = "AUTH_ERROR";
-- LinkErrorType["ASSET_REPORT_ERROR"] = "ASSET_REPORT_ERROR";
-- LinkErrorType["SANDBOX_ERROR"] = "SANDBOX_ERROR";
-- LinkErrorType["RECAPTCHA_ERROR"] = "RECAPTCHA_ERROR";
-- LinkErrorType["OAUTH_ERROR"] = "OAUTH_ERROR";
-+(function(LinkErrorType) {
-+ LinkErrorType['BANK_TRANSFER'] = 'BANK_TRANSFER_ERROR';
-+ LinkErrorType['INVALID_REQUEST'] = 'INVALID_REQUEST';
-+ LinkErrorType['INVALID_RESULT'] = 'INVALID_RESULT';
-+ LinkErrorType['INVALID_INPUT'] = 'INVALID_INPUT';
-+ LinkErrorType['INSTITUTION_ERROR'] = 'INSTITUTION_ERROR';
-+ LinkErrorType['RATE_LIMIT_EXCEEDED'] = 'RATE_LIMIT_EXCEEDED';
-+ LinkErrorType['API_ERROR'] = 'API_ERROR';
-+ LinkErrorType['ITEM_ERROR'] = 'ITEM_ERROR';
-+ LinkErrorType['AUTH_ERROR'] = 'AUTH_ERROR';
-+ LinkErrorType['ASSET_REPORT_ERROR'] = 'ASSET_REPORT_ERROR';
-+ LinkErrorType['SANDBOX_ERROR'] = 'SANDBOX_ERROR';
-+ LinkErrorType['RECAPTCHA_ERROR'] = 'RECAPTCHA_ERROR';
-+ LinkErrorType['OAUTH_ERROR'] = 'OAUTH_ERROR';
- })(LinkErrorType || (LinkErrorType = {}));
- export var LinkEventName;
--(function (LinkEventName) {
-- LinkEventName["BANK_INCOME_INSIGHTS_COMPLETED"] = "BANK_INCOME_INSIGHTS_COMPLETED";
-- LinkEventName["CLOSE_OAUTH"] = "CLOSE_OAUTH";
-- LinkEventName["ERROR"] = "ERROR";
-- LinkEventName["EXIT"] = "EXIT";
-- LinkEventName["FAIL_OAUTH"] = "FAIL_OAUTH";
-- LinkEventName["HANDOFF"] = "HANDOFF";
-- LinkEventName["IDENTITY_VERIFICATION_START_STEP"] = "IDENTITY_VERIFICATION_START_STEP";
-- LinkEventName["IDENTITY_VERIFICATION_PASS_STEP"] = "IDENTITY_VERIFICATION_PASS_STEP";
-- LinkEventName["IDENTITY_VERIFICATION_FAIL_STEP"] = "IDENTITY_VERIFICATION_FAIL_STEP";
-- LinkEventName["IDENTITY_VERIFICATION_PENDING_REVIEW_STEP"] = "IDENTITY_VERIFICATION_PENDING_REVIEW_STEP";
-- LinkEventName["IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION"] = "IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION";
-- LinkEventName["IDENTITY_VERIFICATION_CREATE_SESSION"] = "IDENTITY_VERIFICATION_CREATE_SESSION";
-- LinkEventName["IDENTITY_VERIFICATION_RESUME_SESSION"] = "IDENTITY_VERIFICATION_RESUME_SESSION";
-- LinkEventName["IDENTITY_VERIFICATION_PASS_SESSION"] = "IDENTITY_VERIFICATION_PASS_SESSION";
-- LinkEventName["IDENTITY_VERIFICATION_FAIL_SESSION"] = "IDENTITY_VERIFICATION_FAIL_SESSION";
-- LinkEventName["IDENTITY_VERIFICATION_OPEN_UI"] = "IDENTITY_VERIFICATION_OPEN_UI";
-- LinkEventName["IDENTITY_VERIFICATION_RESUME_UI"] = "IDENTITY_VERIFICATION_RESUME_UI";
-- LinkEventName["IDENTITY_VERIFICATION_CLOSE_UI"] = "IDENTITY_VERIFICATION_CLOSE_UI";
-- LinkEventName["MATCHED_CONSENT"] = "MATCHED_CONSENT";
-- LinkEventName["MATCHED_SELECT_INSTITUTION"] = "MATCHED_SELECT_INSTITUTION";
-- LinkEventName["MATCHED_SELECT_VERIFY_METHOD"] = "MATCHED_SELECT_VERIFY_METHOD";
-- LinkEventName["OPEN"] = "OPEN";
-- LinkEventName["OPEN_MY_PLAID"] = "OPEN_MY_PLAID";
-- LinkEventName["OPEN_OAUTH"] = "OPEN_OAUTH";
-- LinkEventName["SEARCH_INSTITUTION"] = "SEARCH_INSTITUTION";
-- LinkEventName["SELECT_DEGRADED_INSTITUTION"] = "SELECT_DEGRADED_INSTITUTION";
-- LinkEventName["SELECT_DOWN_INSTITUTION"] = "SELECT_DOWN_INSTITUTION";
-- LinkEventName["SELECT_FILTERED_INSTITUTION"] = "SELECT_FILTERED_INSTITUTION";
-- LinkEventName["SELECT_INSTITUTION"] = "SELECT_INSTITUTION";
-- LinkEventName["SELECT_BRAND"] = "SELECT_BRAND";
-- LinkEventName["SELECT_AUTH_TYPE"] = "SELECT_AUTH_TYPE";
-- LinkEventName["SUBMIT_ACCOUNT_NUMBER"] = "SUBMIT_ACCOUNT_NUMBER";
-- LinkEventName["SUBMIT_DOCUMENTS"] = "SUBMIT_DOCUMENTS";
-- LinkEventName["SUBMIT_DOCUMENTS_SUCCESS"] = "SUBMIT_DOCUMENTS_SUCCESS";
-- LinkEventName["SUBMIT_DOCUMENTS_ERROR"] = "SUBMIT_DOCUMENTS_ERROR";
-- LinkEventName["SUBMIT_ROUTING_NUMBER"] = "SUBMIT_ROUTING_NUMBER";
-- LinkEventName["VIEW_DATA_TYPES"] = "VIEW_DATA_TYPES";
-- LinkEventName["SUBMIT_PHONE"] = "SUBMIT_PHONE";
-- LinkEventName["SKIP_SUBMIT_PHONE"] = "SKIP_SUBMIT_PHONE";
-- LinkEventName["VERIFY_PHONE"] = "VERIFY_PHONE";
-- LinkEventName["SUBMIT_CREDENTIALS"] = "SUBMIT_CREDENTIALS";
-- LinkEventName["SUBMIT_MFA"] = "SUBMIT_MFA";
-- LinkEventName["TRANSITION_VIEW"] = "TRANSITION_VIEW";
-- LinkEventName["CONNECT_NEW_INSTITUTION"] = "CONNECT_NEW_INSTITUTION";
-+(function(LinkEventName) {
-+ LinkEventName['BANK_INCOME_INSIGHTS_COMPLETED'] =
-+ 'BANK_INCOME_INSIGHTS_COMPLETED';
-+ LinkEventName['CLOSE_OAUTH'] = 'CLOSE_OAUTH';
-+ LinkEventName['ERROR'] = 'ERROR';
-+ LinkEventName['EXIT'] = 'EXIT';
-+ LinkEventName['FAIL_OAUTH'] = 'FAIL_OAUTH';
-+ LinkEventName['HANDOFF'] = 'HANDOFF';
-+ LinkEventName['IDENTITY_VERIFICATION_START_STEP'] =
-+ 'IDENTITY_VERIFICATION_START_STEP';
-+ LinkEventName['IDENTITY_VERIFICATION_PASS_STEP'] =
-+ 'IDENTITY_VERIFICATION_PASS_STEP';
-+ LinkEventName['IDENTITY_VERIFICATION_FAIL_STEP'] =
-+ 'IDENTITY_VERIFICATION_FAIL_STEP';
-+ LinkEventName['IDENTITY_VERIFICATION_PENDING_REVIEW_STEP'] =
-+ 'IDENTITY_VERIFICATION_PENDING_REVIEW_STEP';
-+ LinkEventName['IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION'] =
-+ 'IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION';
-+ LinkEventName['IDENTITY_VERIFICATION_CREATE_SESSION'] =
-+ 'IDENTITY_VERIFICATION_CREATE_SESSION';
-+ LinkEventName['IDENTITY_VERIFICATION_RESUME_SESSION'] =
-+ 'IDENTITY_VERIFICATION_RESUME_SESSION';
-+ LinkEventName['IDENTITY_VERIFICATION_PASS_SESSION'] =
-+ 'IDENTITY_VERIFICATION_PASS_SESSION';
-+ LinkEventName['IDENTITY_VERIFICATION_FAIL_SESSION'] =
-+ 'IDENTITY_VERIFICATION_FAIL_SESSION';
-+ LinkEventName['IDENTITY_VERIFICATION_OPEN_UI'] =
-+ 'IDENTITY_VERIFICATION_OPEN_UI';
-+ LinkEventName['IDENTITY_VERIFICATION_RESUME_UI'] =
-+ 'IDENTITY_VERIFICATION_RESUME_UI';
-+ LinkEventName['IDENTITY_VERIFICATION_CLOSE_UI'] =
-+ 'IDENTITY_VERIFICATION_CLOSE_UI';
-+ LinkEventName['MATCHED_CONSENT'] = 'MATCHED_CONSENT';
-+ LinkEventName['MATCHED_SELECT_INSTITUTION'] = 'MATCHED_SELECT_INSTITUTION';
-+ LinkEventName['MATCHED_SELECT_VERIFY_METHOD'] =
-+ 'MATCHED_SELECT_VERIFY_METHOD';
-+ LinkEventName['OPEN'] = 'OPEN';
-+ LinkEventName['OPEN_MY_PLAID'] = 'OPEN_MY_PLAID';
-+ LinkEventName['OPEN_OAUTH'] = 'OPEN_OAUTH';
-+ LinkEventName['SEARCH_INSTITUTION'] = 'SEARCH_INSTITUTION';
-+ LinkEventName['SELECT_DEGRADED_INSTITUTION'] = 'SELECT_DEGRADED_INSTITUTION';
-+ LinkEventName['SELECT_DOWN_INSTITUTION'] = 'SELECT_DOWN_INSTITUTION';
-+ LinkEventName['SELECT_FILTERED_INSTITUTION'] = 'SELECT_FILTERED_INSTITUTION';
-+ LinkEventName['SELECT_INSTITUTION'] = 'SELECT_INSTITUTION';
-+ LinkEventName['SELECT_BRAND'] = 'SELECT_BRAND';
-+ LinkEventName['SELECT_AUTH_TYPE'] = 'SELECT_AUTH_TYPE';
-+ LinkEventName['SUBMIT_ACCOUNT_NUMBER'] = 'SUBMIT_ACCOUNT_NUMBER';
-+ LinkEventName['SUBMIT_DOCUMENTS'] = 'SUBMIT_DOCUMENTS';
-+ LinkEventName['SUBMIT_DOCUMENTS_SUCCESS'] = 'SUBMIT_DOCUMENTS_SUCCESS';
-+ LinkEventName['SUBMIT_DOCUMENTS_ERROR'] = 'SUBMIT_DOCUMENTS_ERROR';
-+ LinkEventName['SUBMIT_ROUTING_NUMBER'] = 'SUBMIT_ROUTING_NUMBER';
-+ LinkEventName['VIEW_DATA_TYPES'] = 'VIEW_DATA_TYPES';
-+ LinkEventName['SUBMIT_PHONE'] = 'SUBMIT_PHONE';
-+ LinkEventName['SKIP_SUBMIT_PHONE'] = 'SKIP_SUBMIT_PHONE';
-+ LinkEventName['VERIFY_PHONE'] = 'VERIFY_PHONE';
-+ LinkEventName['SUBMIT_CREDENTIALS'] = 'SUBMIT_CREDENTIALS';
-+ LinkEventName['SUBMIT_MFA'] = 'SUBMIT_MFA';
-+ LinkEventName['TRANSITION_VIEW'] = 'TRANSITION_VIEW';
-+ LinkEventName['CONNECT_NEW_INSTITUTION'] = 'CONNECT_NEW_INSTITUTION';
- })(LinkEventName || (LinkEventName = {}));
- export var LinkEventViewName;
--(function (LinkEventViewName) {
-- LinkEventViewName["ACCEPT_TOS"] = "ACCEPT_TOS";
-- LinkEventViewName["CONNECTED"] = "CONNECTED";
-- LinkEventViewName["CONSENT"] = "CONSENT";
-- LinkEventViewName["CREDENTIAL"] = "CREDENTIAL";
-- LinkEventViewName["DATA_TRANSPARENCY"] = "DATA_TRANSPARENCY";
-- LinkEventViewName["DATA_TRANSPARENCY_CONSENT"] = "DATA_TRANSPARENCY_CONSENT";
-- LinkEventViewName["DOCUMENTARY_VERIFICATION"] = "DOCUMENTARY_VERIFICATION";
-- LinkEventViewName["ERROR"] = "ERROR";
-- LinkEventViewName["EXIT"] = "EXIT";
-- LinkEventViewName["KYC_CHECK"] = "KYC_CHECK";
-- LinkEventViewName["SELFIE_CHECK"] = "SELFIE_CHECK";
-- LinkEventViewName["LOADING"] = "LOADING";
-- LinkEventViewName["MATCHED_CONSENT"] = "MATCHED_CONSENT";
-- LinkEventViewName["MATCHED_CREDENTIAL"] = "MATCHED_CREDENTIAL";
-- LinkEventViewName["MATCHED_MFA"] = "MATCHED_MFA";
-- LinkEventViewName["MFA"] = "MFA";
-- LinkEventViewName["NUMBERS"] = "NUMBERS";
-- LinkEventViewName["NUMBERS_SELECT_INSTITUTION"] = "NUMBERS_SELECT_INSTITUTION";
-- LinkEventViewName["OAUTH"] = "OAUTH";
-- LinkEventViewName["RECAPTCHA"] = "RECAPTCHA";
-- LinkEventViewName["RISK_CHECK"] = "RISK_CHECK";
-- LinkEventViewName["SCREENING"] = "SCREENING";
-- LinkEventViewName["SELECT_ACCOUNT"] = "SELECT_ACCOUNT";
-- LinkEventViewName["SELECT_AUTH_TYPE"] = "SELECT_AUTH_TYPE";
-- LinkEventViewName["SUBMIT_PHONE"] = "SUBMIT_PHONE";
-- LinkEventViewName["VERIFY_PHONE"] = "VERIFY_PHONE";
-- LinkEventViewName["SELECT_SAVED_INSTITUTION"] = "SELECT_SAVED_INSTITUTION";
-- LinkEventViewName["SELECT_SAVED_ACCOUNT"] = "SELECT_SAVED_ACCOUNT";
-- LinkEventViewName["SELECT_BRAND"] = "SELECT_BRAND";
-- LinkEventViewName["SELECT_INSTITUTION"] = "SELECT_INSTITUTION";
-- LinkEventViewName["SUBMIT_DOCUMENTS"] = "SUBMIT_DOCUMENTS";
-- LinkEventViewName["SUBMIT_DOCUMENTS_SUCCESS"] = "SUBMIT_DOCUMENTS_SUCCESS";
-- LinkEventViewName["SUBMIT_DOCUMENTS_ERROR"] = "SUBMIT_DOCUMENTS_ERROR";
-- LinkEventViewName["UPLOAD_DOCUMENTS"] = "UPLOAD_DOCUMENTS";
-- LinkEventViewName["VERIFY_SMS"] = "VERIFY_SMS";
-+(function(LinkEventViewName) {
-+ LinkEventViewName['ACCEPT_TOS'] = 'ACCEPT_TOS';
-+ LinkEventViewName['CONNECTED'] = 'CONNECTED';
-+ LinkEventViewName['CONSENT'] = 'CONSENT';
-+ LinkEventViewName['CREDENTIAL'] = 'CREDENTIAL';
-+ LinkEventViewName['DATA_TRANSPARENCY'] = 'DATA_TRANSPARENCY';
-+ LinkEventViewName['DATA_TRANSPARENCY_CONSENT'] = 'DATA_TRANSPARENCY_CONSENT';
-+ LinkEventViewName['DOCUMENTARY_VERIFICATION'] = 'DOCUMENTARY_VERIFICATION';
-+ LinkEventViewName['ERROR'] = 'ERROR';
-+ LinkEventViewName['EXIT'] = 'EXIT';
-+ LinkEventViewName['KYC_CHECK'] = 'KYC_CHECK';
-+ LinkEventViewName['SELFIE_CHECK'] = 'SELFIE_CHECK';
-+ LinkEventViewName['LOADING'] = 'LOADING';
-+ LinkEventViewName['MATCHED_CONSENT'] = 'MATCHED_CONSENT';
-+ LinkEventViewName['MATCHED_CREDENTIAL'] = 'MATCHED_CREDENTIAL';
-+ LinkEventViewName['MATCHED_MFA'] = 'MATCHED_MFA';
-+ LinkEventViewName['MFA'] = 'MFA';
-+ LinkEventViewName['NUMBERS'] = 'NUMBERS';
-+ LinkEventViewName['NUMBERS_SELECT_INSTITUTION'] =
-+ 'NUMBERS_SELECT_INSTITUTION';
-+ LinkEventViewName['OAUTH'] = 'OAUTH';
-+ LinkEventViewName['RECAPTCHA'] = 'RECAPTCHA';
-+ LinkEventViewName['RISK_CHECK'] = 'RISK_CHECK';
-+ LinkEventViewName['SCREENING'] = 'SCREENING';
-+ LinkEventViewName['SELECT_ACCOUNT'] = 'SELECT_ACCOUNT';
-+ LinkEventViewName['SELECT_AUTH_TYPE'] = 'SELECT_AUTH_TYPE';
-+ LinkEventViewName['SUBMIT_PHONE'] = 'SUBMIT_PHONE';
-+ LinkEventViewName['VERIFY_PHONE'] = 'VERIFY_PHONE';
-+ LinkEventViewName['SELECT_SAVED_INSTITUTION'] = 'SELECT_SAVED_INSTITUTION';
-+ LinkEventViewName['SELECT_SAVED_ACCOUNT'] = 'SELECT_SAVED_ACCOUNT';
-+ LinkEventViewName['SELECT_BRAND'] = 'SELECT_BRAND';
-+ LinkEventViewName['SELECT_INSTITUTION'] = 'SELECT_INSTITUTION';
-+ LinkEventViewName['SUBMIT_DOCUMENTS'] = 'SUBMIT_DOCUMENTS';
-+ LinkEventViewName['SUBMIT_DOCUMENTS_SUCCESS'] = 'SUBMIT_DOCUMENTS_SUCCESS';
-+ LinkEventViewName['SUBMIT_DOCUMENTS_ERROR'] = 'SUBMIT_DOCUMENTS_ERROR';
-+ LinkEventViewName['UPLOAD_DOCUMENTS'] = 'UPLOAD_DOCUMENTS';
-+ LinkEventViewName['VERIFY_SMS'] = 'VERIFY_SMS';
- })(LinkEventViewName || (LinkEventViewName = {}));
- /// Methods to present Link on iOS.
- /// FULL_SCREEN is the converts to UIModalPresentationOverFullScreen on the native side.
- /// MODAL will use the default presentation style for iOS which is UIModalPresentationAutomatic.
- export var LinkIOSPresentationStyle;
--(function (LinkIOSPresentationStyle) {
-- LinkIOSPresentationStyle["FULL_SCREEN"] = "FULL_SCREEN";
-- LinkIOSPresentationStyle["MODAL"] = "MODAL";
-+(function(LinkIOSPresentationStyle) {
-+ LinkIOSPresentationStyle['FULL_SCREEN'] = 'FULL_SCREEN';
-+ LinkIOSPresentationStyle['MODAL'] = 'MODAL';
- })(LinkIOSPresentationStyle || (LinkIOSPresentationStyle = {}));
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts
-index cd4ccde..cb0ff5c 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts
-+++ b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.d.ts
-@@ -1 +1 @@
--declare const Types: any;
-+export {};
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js
-index 831866b..f38aff8 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js
-+++ b/node_modules/react-native-plaid-link-sdk/dist/__tests__/Types.tests.js
-@@ -1,14 +1,14 @@
--"use strict";
- const Types = require('./../Types');
- test('test token configuration', () => {
-- const linkTokenConfiguration = {
-- token: "test-token",
-- noLoadingState: false,
-- logLevel: Types.LinkLogLevel.DEBUG,
-- extras: null,
-- };
-- expect(linkTokenConfiguration.noLoadingState).toBe(false);
-- expect(linkTokenConfiguration.token).toBe("test-token");
-- expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG);
-- expect(linkTokenConfiguration.extras).toBe(null);
-+ const linkTokenConfiguration = {
-+ token: 'test-token',
-+ noLoadingState: false,
-+ logLevel: Types.LinkLogLevel.DEBUG,
-+ extras: null,
-+ };
-+ expect(linkTokenConfiguration.noLoadingState).toBe(false);
-+ expect(linkTokenConfiguration.token).toBe('test-token');
-+ expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG);
-+ expect(linkTokenConfiguration.extras).toBe(null);
- });
-+export {};
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts
-new file mode 100644
-index 0000000..cb0ff5c
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.d.ts
-@@ -0,0 +1 @@
-+export {};
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js
-new file mode 100644
-index 0000000..34a47d4
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/check_version_hook.js
-@@ -0,0 +1,15 @@
-+'use strict';
-+const fs = require('fs');
-+const rn_version = JSON.parse(fs.readFileSync('package.json', 'utf-8'))[
-+ 'version'
-+];
-+const android_version = fs
-+ .readFileSync('android/src/main/AndroidManifest.xml', 'utf-8')
-+ .match(/(?<=value=").*(?=")/)[0];
-+if (rn_version != android_version) {
-+ console.error('Commit failed SDK version mismatch');
-+ console.error(
-+ 'Please ensure package.json and android/src/main/AndroidManifest.xml have the same version',
-+ );
-+ process.exit(-1);
-+}
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts
-new file mode 100644
-index 0000000..1de3019
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.d.ts
-@@ -0,0 +1,14 @@
-+import { TurboModule } from 'react-native';
-+import { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
-+import { LinkSuccess as UnsafeObject, LinkExit as Double, LinkError as Float } from '../Types';
-+export interface Spec extends TurboModule {
-+ continueFromRedirectUriString(redirectUriString: string): void;
-+ create(configuration: Object): void;
-+ open(onSuccess: (success: UnsafeObject) => void, onExit: (error: Float, result: Double) => void): void;
-+ dismiss(): void;
-+ startLinkActivityForResult(data: string, onSuccessCallback: (result: UnsafeObject) => void, onExitCallback: (result: Double) => void): void;
-+ addListener(eventName: string): void;
-+ removeListeners(count: Int32): void;
-+}
-+declare const _default: Spec;
-+export default _default;
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js
-new file mode 100644
-index 0000000..310a9c5
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModule.js
-@@ -0,0 +1,4 @@
-+// we use Object type because methods on the native side use NSDictionary and ReadableMap
-+// and we want to stay compatible with those
-+import { TurboModuleRegistry } from 'react-native';
-+export default TurboModuleRegistry.getEnforcing('RNLinksdk');
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts
-new file mode 100644
-index 0000000..82f29a1
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.d.ts
-@@ -0,0 +1,9 @@
-+import { TurboModule } from 'react-native';
-+import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
-+export interface Spec extends TurboModule {
-+ startLinkActivityForResult(token: string, noLoadingState: boolean, logLevel: string, onSuccessCallback: (result: UnsafeObject) => void, onExitCallback: (result: UnsafeObject) => void): void;
-+ addListener(eventName: string): void;
-+ removeListeners(count: Int32): void;
-+}
-+declare const _default: Spec | null;
-+export default _default;
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js
-new file mode 100644
-index 0000000..d0ea456
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleAndroid.js
-@@ -0,0 +1,4 @@
-+// we use Object type because methods on the native side use NSDictionary and ReadableMap
-+// and we want to stay compatible with those
-+import { TurboModuleRegistry } from 'react-native';
-+export default TurboModuleRegistry.get('PlaidAndroid');
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts
-new file mode 100644
-index 0000000..aefee8c
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.d.ts
-@@ -0,0 +1,11 @@
-+import { TurboModule } from 'react-native';
-+import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
-+export interface Spec extends TurboModule {
-+ create(token: string, noLoadingState: boolean): void;
-+ open(fullScreen: boolean, onSuccess: (success: UnsafeObject) => void, onExit: (error: UnsafeObject, result: UnsafeObject) => void): void;
-+ dismiss(): void;
-+ addListener(eventName: string): void;
-+ removeListeners(count: Int32): void;
-+}
-+declare const _default: Spec | null;
-+export default _default;
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js
-new file mode 100644
-index 0000000..99845a1
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/dist/fabric/NativePlaidLinkModuleiOS.js
-@@ -0,0 +1,4 @@
-+// we use Object type because methods on the native side use NSDictionary and ReadableMap
-+// and we want to stay compatible with those
-+import { TurboModuleRegistry } from 'react-native';
-+export default TurboModuleRegistry.get('RNLinksdk');
-diff --git a/node_modules/react-native-plaid-link-sdk/dist/index.js b/node_modules/react-native-plaid-link-sdk/dist/index.js
-index 68c2d4b..acad079 100644
---- a/node_modules/react-native-plaid-link-sdk/dist/index.js
-+++ b/node_modules/react-native-plaid-link-sdk/dist/index.js
-@@ -1,6 +1,6 @@
--import { openLink, dismissLink, usePlaidEmitter, PlaidLink, } from './PlaidLink';
-+import { openLink, dismissLink, usePlaidEmitter, PlaidLink } from './PlaidLink';
- export * from './Types';
- export default PlaidLink;
--export { PlaidLink, openLink, dismissLink, usePlaidEmitter, };
-+export { PlaidLink, openLink, dismissLink, usePlaidEmitter };
- // Components
- export { EmbeddedLinkView } from './EmbeddedLink/EmbeddedLinkView';
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h
-index 8a1c350..035b91c 100644
---- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h
-+++ b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.h
-@@ -1,15 +1,17 @@
--
--#if __has_include()
--#import
--#import
--#else
--#import "RCTBridgeModule.h"
--#import "RCTEventEmitter.h"
-+#ifdef RCT_NEW_ARCH_ENABLED
-+#import
- #endif
-+#import
-+#import "RCTEventEmitter.h"
-
- #import
-
--@interface RNLinksdk : RCTEventEmitter
-+@interface RNLinksdk : RCTEventEmitter
-+#ifdef RCT_NEW_ARCH_ENABLED
-+
-+#else
-+
-+#endif
-
- + (NSDictionary *)dictionaryFromSuccess:(PLKLinkSuccess *)success;
- + (NSDictionary *)dictionaryFromEvent:(PLKLinkEvent *)event;
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm
-index ef3fe85..b3b92d6 100644
---- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm
-+++ b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.mm
-@@ -1,4 +1,5 @@
- #import "RNLinksdk.h"
-+#import "RNPlaidHelper.h"
-
- #import
- #import
-@@ -66,11 +67,11 @@ - (void)stopObserving {
- self.hasObservers = NO;
- }
-
--RCT_EXPORT_METHOD(create:(NSString*)token :(BOOL)noLoadingState) {
-- __weak typeof(self) weakSelf = self;
-+RCT_EXPORT_METHOD(create:(NSString*)token noLoadingState:(BOOL)noLoadingState) {
-+ __weak RNLinksdk *weakSelf = self;
-
- void (^onSuccess)(PLKLinkSuccess *) = ^(PLKLinkSuccess *success) {
-- __typeof(weakSelf) strongSelf = weakSelf;
-+ RNLinksdk *strongSelf = weakSelf;
-
- if (strongSelf.successCallback) {
- NSDictionary *jsMetadata = [RNLinksdk dictionaryFromSuccess:success];
-@@ -80,7 +81,7 @@ - (void)stopObserving {
- };
-
- void (^onExit)(PLKLinkExit *) = ^(PLKLinkExit *exit) {
-- __typeof(weakSelf) strongSelf = weakSelf;
-+ RNLinksdk *strongSelf = weakSelf;
-
- if (strongSelf.exitCallback) {
- NSDictionary *exitMetadata = [RNLinksdk dictionaryFromExit:exit];
-@@ -94,7 +95,7 @@ - (void)stopObserving {
- };
-
- void (^onEvent)(PLKLinkEvent *) = ^(PLKLinkEvent *event) {
-- __typeof(weakSelf) strongSelf = weakSelf;
-+ RNLinksdk *strongSelf = weakSelf;
- if (strongSelf.hasObservers) {
- NSDictionary *eventDictionary = [RNLinksdk dictionaryFromEvent:event];
- [strongSelf sendEventWithName:kRNLinkKitOnEventEvent
-@@ -108,11 +109,11 @@ - (void)stopObserving {
- config.noLoadingState = noLoadingState;
-
- NSError *creationError = nil;
-- self.linkHandler = [PLKPlaid createWithLinkTokenConfiguration:config error:&creationError];
-+ self.linkHandler = [RNPlaidHelper createWithLinkTokenConfiguration:config error:&creationError];
- self.creationError = creationError;
- }
-
--RCT_EXPORT_METHOD(open: (BOOL)fullScreen :(RCTResponseSenderBlock)onSuccess :(RCTResponseSenderBlock)onExit) {
-+RCT_EXPORT_METHOD(open:(BOOL)fullScreen onSuccess:(RCTResponseSenderBlock)onSuccess onExit:(RCTResponseSenderBlock)onExit) {
- if (self.linkHandler) {
- self.successCallback = onSuccess;
- self.exitCallback = onExit;
-@@ -122,7 +123,7 @@ - (void)stopObserving {
- // unnecessarily invoked.
- __block bool didPresent = NO;
-
-- __weak typeof(self) weakSelf = self;
-+ __weak RNLinksdk *weakSelf = self;
- void(^presentationHandler)(UIViewController *) = ^(UIViewController *linkViewController) {
-
- if (fullScreen) {
-@@ -619,4 +620,12 @@ + (NSDictionary *)dictionaryFromExit:(PLKLinkExit *)exit {
- };
- }
-
-+#if RCT_NEW_ARCH_ENABLED
-+- (std::shared_ptr)getTurboModule:
-+ (const facebook::react::ObjCTurboModule::InitParams &)params
-+{
-+ return std::make_shared(params);
-+}
-+#endif
-+
- @end
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata
-deleted file mode 100644
-index 919434a..0000000
---- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata
-+++ /dev/null
-@@ -1,7 +0,0 @@
--
--
--
--
--
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
-deleted file mode 100644
-index 18d9810..0000000
---- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
-+++ /dev/null
-@@ -1,8 +0,0 @@
--
--
--
--
-- IDEDidComputeMac32BitWarning
--
--
--
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate
-deleted file mode 100644
-index 47e9cc2..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/project.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist
-deleted file mode 100644
-index 5b4fa70..0000000
---- a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcodeproj/xcuserdata/dtroupe.xcuserdatad/xcschemes/xcschememanagement.plist
-+++ /dev/null
-@@ -1,19 +0,0 @@
--
--
--
--
-- SchemeUserState
--
-- RNLinksdk.xcscheme_^#shared#^_
--
-- orderHint
-- 0
--
-- RNLinksdkUnitTests.xcscheme_^#shared#^_
--
-- orderHint
-- 1
--
--
--
--
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate b/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate
-deleted file mode 100644
-index 824773d..0000000
-Binary files a/node_modules/react-native-plaid-link-sdk/ios/RNLinksdk.xcworkspace/xcuserdata/dtroupe.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h
-new file mode 100644
-index 0000000..535d333
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.h
-@@ -0,0 +1,7 @@
-+#import
-+
-+@interface RNPlaidHelper : NSObject
-+
-++ (id _Nullable)createWithLinkTokenConfiguration:(PLKLinkTokenConfiguration * _Nonnull)linkTokenConfiguration error:(NSError * _Nullable * _Nullable)error;
-+
-+@end
-diff --git a/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m
-new file mode 100644
-index 0000000..2288299
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/ios/RNPlaidHelper.m
-@@ -0,0 +1,10 @@
-+#import "RNPlaidHelper.h"
-+
-+@implementation RNPlaidHelper
-+
-++ (id _Nullable)createWithLinkTokenConfiguration:(PLKLinkTokenConfiguration * _Nonnull)linkTokenConfiguration error:(NSError * _Nullable * _Nullable)error
-+{
-+ return [PLKPlaid createWithLinkTokenConfiguration:linkTokenConfiguration error:error];
-+}
-+
-+@end
-diff --git a/node_modules/react-native-plaid-link-sdk/package.json b/node_modules/react-native-plaid-link-sdk/package.json
-index 22c7d2c..3d1b85c 100644
---- a/node_modules/react-native-plaid-link-sdk/package.json
-+++ b/node_modules/react-native-plaid-link-sdk/package.json
-@@ -4,11 +4,13 @@
- "description": "React Native Plaid Link SDK",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
-+ "react-native": "src/index.ts",
- "files": [
- "dist/**/*",
- "android/**/*",
-- "ios",
-- "react-native-plaid-link-sdk.podspec"
-+ "ios/**/*",
-+ "react-native-plaid-link-sdk.podspec",
-+ "src/**/*"
- ],
- "scripts": {
- "lint": "eslint \"./**/*.{js,jsx}\" --fix",
-@@ -47,7 +49,7 @@
- "@react-native-community/eslint-plugin": "^1.1.0",
- "@types/jest": "^26.0.14",
- "@types/react": "^16.14.20",
-- "@types/react-native": "^0.66.0",
-+ "@types/react-native": "^0.71.3",
- "@types/react-test-renderer": "^16.9.3",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
-@@ -62,5 +64,16 @@
- "react": "18.0.0",
- "react-native": "0.69.9",
- "typescript": "^4.9.5"
-+ },
-+ "dependencies": {
-+ "react-native-plaid-link-sdk": "^10.4.0"
-+ },
-+ "codegenConfig": {
-+ "name": "rnplaidlink",
-+ "type": "modules",
-+ "jsSrcsDir": "./src/fabric",
-+ "android": {
-+ "javaPackageName": "com.plaid"
-+ }
- }
- }
-diff --git a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
-index ee59a19..40ac7df 100644
---- a/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
-+++ b/node_modules/react-native-plaid-link-sdk/react-native-plaid-link-sdk.podspec
-@@ -2,6 +2,8 @@ require 'json'
-
- package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
-
-+fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
-+
- Pod::Spec.new do |s|
- s.name = package['name']
- s.version = package['version']
-@@ -13,8 +15,13 @@ Pod::Spec.new do |s|
- s.platform = :ios, "14.0"
-
- s.source = { :git => "https://github.com/plaid/react-native-plaid-link-sdk.git", :tag => "v#{s.version}" }
-- s.source_files = "ios/*.{h,m,swift}"
-+ s.source_files = "ios/**/*.{h,m,mm,swift}"
-+
-+ if fabric_enabled
-+ install_modules_dependencies(s)
-+ else
-+ s.dependency "React-Core"
-+ end
-
-- s.dependency 'React-Core'
- s.dependency 'Plaid', '~> 5.2.0'
- end
-diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx
-new file mode 100644
-index 0000000..0243de2
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.tsx
-@@ -0,0 +1,95 @@
-+import React from 'react';
-+import { StyleProp, ViewStyle } from 'react-native';
-+import NativeEmbeddedLinkView from './NativeEmbeddedLinkView';
-+import {
-+ LinkSuccessListener,
-+ LinkSuccess,
-+ LinkExitListener,
-+ LinkExit,
-+ LinkIOSPresentationStyle,
-+ LinkOnEventListener,
-+ LinkEvent,
-+ LinkEventName,
-+ LinkEventMetadata,
-+ LinkError,
-+ LinkExitMetadata,
-+ LinkSuccessMetadata,
-+} from '../Types';
-+
-+type EmbeddedLinkProps = {
-+ token: String,
-+ iOSPresentationStyle: LinkIOSPresentationStyle,
-+ onEvent: LinkOnEventListener | undefined,
-+ onSuccess: LinkSuccessListener,
-+ onExit: LinkExitListener | undefined,
-+ style: StyleProp | undefined,
-+}
-+
-+class EmbeddedEvent implements LinkEvent {
-+ eventName: LinkEventName;
-+ metadata: LinkEventMetadata;
-+
-+ constructor(event: any) {
-+ this.eventName = event.eventName
-+ this.metadata = event.metadata
-+ }
-+}
-+
-+class EmbeddedExit implements LinkExit {
-+ error: LinkError | undefined;
-+ metadata: LinkExitMetadata;
-+
-+ constructor(event: any) {
-+ this.error = event.error;
-+ this.metadata = event.metadata;
-+ }
-+}
-+
-+class EmbeddedSuccess implements LinkSuccess {
-+ publicToken: string;
-+ metadata: LinkSuccessMetadata;
-+
-+ constructor(event: any) {
-+ this.publicToken = event.publicToken;
-+ this.metadata = event.metadata;
-+ }
-+}
-+
-+export const EmbeddedLinkView: React.FC = (props) => {
-+
-+ const {token, iOSPresentationStyle, onEvent, onSuccess, onExit, style} = props;
-+
-+ const onEmbeddedEvent = (event: any) => {
-+
-+ switch (event.nativeEvent.embeddedEventName) {
-+ case 'onSuccess': {
-+ if (!onSuccess) { return; }
-+ const embeddedSuccess = new EmbeddedSuccess(event.nativeEvent);
-+ onSuccess(embeddedSuccess);
-+ break;
-+ }
-+ case 'onExit': {
-+ if (!onExit) {return; }
-+ const embeddedExit = new EmbeddedExit(event.nativeEvent);
-+ onExit(embeddedExit);
-+ break;
-+ }
-+ case 'onEvent': {
-+ if (!onEvent) { return; }
-+ const embeddedEvent = new EmbeddedEvent(event.nativeEvent);
-+ onEvent(embeddedEvent);
-+ break;
-+ }
-+ default: {
-+ return;
-+ }
-+ }
-+ }
-+
-+ return
-+};
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx
-new file mode 100644
-index 0000000..7a71609
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/EmbeddedLinkView.web.tsx
-@@ -0,0 +1,5 @@
-+// EmbeddedLinkView.web.tsx is a shim file which causes web bundlers to ignore the EmbeddedLinkView.tsx file
-+// which imports requireNativeComponent (causing a runtime error with react-native-web).
-+// Ref - https://github.com/plaid/react-native-plaid-link-sdk/issues/564
-+import React from 'react';
-+export const EmbeddedLinkView = () => null;
-diff --git a/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx
-new file mode 100644
-index 0000000..da05fb1
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/EmbeddedLink/NativeEmbeddedLinkView.tsx
-@@ -0,0 +1,9 @@
-+import { requireNativeComponent } from 'react-native';
-+
-+// Error "Tried to register two views with the same name PLKEmbeddedView"
-+// will be thrown during hot reload when any change is made to the
-+// file that is calling this requireNativeComponent('PLKEmbeddedView') call.
-+// Leaving this in its own file resolves this issue.
-+const NativeEmbeddedLinkView = requireNativeComponent('PLKEmbeddedView');
-+
-+export default NativeEmbeddedLinkView;
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx b/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx
-new file mode 100644
-index 0000000..b35c06f
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/PlaidLink.tsx
-@@ -0,0 +1,117 @@
-+import React, { useEffect } from 'react';
-+import { NativeEventEmitter, Platform, TouchableOpacity } from 'react-native';
-+import {
-+ LinkError,
-+ LinkEventListener,
-+ LinkExit,
-+ LinkIOSPresentationStyle,
-+ LinkLogLevel,
-+ LinkSuccess,
-+ PlaidLinkComponentProps,
-+ PlaidLinkProps,
-+} from './Types';
-+import RNLinksdkAndroid from './fabric/NativePlaidLinkModuleAndroid';
-+import RNLinksdkiOS from './fabric/NativePlaidLinkModuleiOS';
-+
-+const RNLinksdk = (Platform.OS === 'android' ? RNLinksdkAndroid : RNLinksdkiOS) ?? undefined;
-+
-+/**
-+ * A hook that registers a listener on the Plaid emitter for the 'onEvent' type.
-+ * The listener is cleaned up when this view is unmounted
-+ *
-+ * @param linkEventListener the listener to call
-+ */
-+export const usePlaidEmitter = (linkEventListener: LinkEventListener) => {
-+ useEffect(() => {
-+ const emitter = new NativeEventEmitter(RNLinksdk);
-+ const listener = emitter.addListener('onEvent', linkEventListener);
-+ // Clean up after this effect:
-+ return function cleanup() {
-+ listener.remove();
-+ };
-+ }, []);
-+};
-+
-+export const openLink = async (props: PlaidLinkProps) => {
-+ let config = props.tokenConfig;
-+ let noLoadingState = config.noLoadingState ?? false;
-+
-+ if (Platform.OS === 'android') {
-+ if (RNLinksdkAndroid === null) {
-+ throw new Error('[react-native-plaid-link-sdk] RNLinksdkAndroid is not defined');
-+ }
-+
-+ RNLinksdkAndroid.startLinkActivityForResult(
-+ config.token,
-+ noLoadingState,
-+ config.logLevel ?? LinkLogLevel.ERROR,
-+ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap
-+ (result: LinkSuccess) => {
-+ if (props.onSuccess != null) {
-+ props.onSuccess(result);
-+ }
-+ },
-+ (result: LinkExit) => {
-+ if (props.onExit != null) {
-+ if (result.error != null && result.error.displayMessage != null) {
-+ //TODO(RNSDK-118): Remove errorDisplayMessage field in next major update.
-+ result.error.errorDisplayMessage = result.error.displayMessage;
-+ }
-+ props.onExit(result);
-+ }
-+ },
-+ );
-+ } else {
-+ if (RNLinksdkiOS === null) {
-+ throw new Error('[react-native-plaid-link-sdk] RNLinksdkiOS is not defined');
-+ }
-+
-+ RNLinksdkiOS.create(config.token, noLoadingState);
-+
-+ let presentFullScreen =
-+ props.iOSPresentationStyle == LinkIOSPresentationStyle.FULL_SCREEN;
-+
-+ RNLinksdkiOS.open(
-+ presentFullScreen,
-+ // @ts-ignore we use Object type in the spec file as it maps to NSDictionary and ReadableMap
-+ (result: LinkSuccess) => {
-+ if (props.onSuccess != null) {
-+ props.onSuccess(result);
-+ }
-+ },
-+ (error: LinkError, result: LinkExit) => {
-+ if (props.onExit != null) {
-+ if (error) {
-+ var data = result || {};
-+ data.error = error;
-+ props.onExit(data);
-+ } else {
-+ props.onExit(result);
-+ }
-+ }
-+ },
-+ );
-+ }
-+};
-+
-+export const dismissLink = () => {
-+ if (Platform.OS === 'ios') {
-+ if (RNLinksdkiOS === null) {
-+ throw new Error('[react-native-plaid-link-sdk] RNLinksdkiOS is not defined');
-+ }
-+
-+ RNLinksdkiOS.dismiss();
-+ }
-+};
-+
-+export const PlaidLink = (props: PlaidLinkComponentProps) => {
-+ function onPress() {
-+ props.onPress?.();
-+ openLink(props);
-+ }
-+
-+ return (
-+ // @ts-ignore some types directories misconfiguration
-+ {props.children}
-+ );
-+};
-diff --git a/node_modules/react-native-plaid-link-sdk/src/Types.ts b/node_modules/react-native-plaid-link-sdk/src/Types.ts
-new file mode 100644
-index 0000000..a7d30c6
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/Types.ts
-@@ -0,0 +1,550 @@
-+interface CommonPlaidLinkOptions {
-+ logLevel?: LinkLogLevel;
-+ extras?: Record;
-+}
-+
-+export type LinkTokenConfiguration = (CommonPlaidLinkOptions & {
-+ token: string;
-+ // A `Bool` indicating that Link should skip displaying a loading animation until the Link UI is fully loaded.
-+ // This can be used to display custom loading UI while Link content is loading (and will skip any initial loading UI in Link).
-+ // Note: Dismiss custom loading UI on the OPEN & EXIT events.
-+ //
-+ // Note: This should be set to `true` when setting the `eu_config.headless` field in /link/token/create requests to `true`.
-+ // For reference, see https://plaid.com/docs/api/tokens/#link-token-create-request-eu-config-headless
-+ noLoadingState?: boolean;
-+});
-+
-+export enum LinkLogLevel {
-+ DEBUG="debug",
-+ INFO="info",
-+ WARN="warn",
-+ ERROR="error",
-+}
-+
-+export enum PlaidEnvironment {
-+ PRODUCTION = 'production',
-+ DEVELOPMENT = 'development',
-+ SANDBOX = 'sandbox',
-+}
-+
-+export enum PlaidProduct {
-+ ASSETS="assets",
-+ AUTH="auth",
-+ DEPOSIT_SWITCH="deposit_switch",
-+ IDENTITY="identity",
-+ INCOME="income",
-+ INVESTMENTS="investments",
-+ LIABILITIES="liabilities",
-+ LIABILITIES_REPORT="liabilities_report",
-+ PAYMENT_INITIATION="payment_initiation",
-+ TRANSACTIONS="transactions",
-+}
-+
-+export enum LinkAccountType {
-+ CREDIT = 'credit',
-+ DEPOSITORY = 'depository',
-+ INVESTMENT = 'investment',
-+ LOAN = 'loan',
-+ OTHER = 'other',
-+}
-+
-+export enum LinkAccountSubtypes {
-+ ALL = 'all',
-+ CREDIT_CARD = 'credit card',
-+ PAYPAL = 'paypal',
-+ AUTO = 'auto',
-+ BUSINESS = 'business',
-+ COMMERCIAL = 'commercial',
-+ CONSTRUCTION = 'construction',
-+ CONSUMER = 'consumer',
-+ HOME_EQUITY = 'home equity',
-+ LINE_OF_CREDIT = 'line of credit',
-+ LOAN = 'loan',
-+ MORTGAGE = 'mortgage',
-+ OVERDRAFT = 'overdraft',
-+ STUDENT = 'student',
-+ CASH_MANAGEMENT = 'cash management',
-+ CD = 'cd',
-+ CHECKING = 'checking',
-+ EBT = 'ebt',
-+ HSA = 'hsa',
-+ MONEY_MARKET = 'money market',
-+ PREPAID = 'prepaid',
-+ SAVINGS = 'savings',
-+ FOUR_0_1_A = '401a',
-+ FOUR_0_1_K = '401k',
-+ FOUR_0_3_B = '403B',
-+ FOUR_5_7_B = '457b',
-+ FIVE_2_9 = '529',
-+ BROKERAGE = 'brokerage',
-+ CASH_ISA = 'cash isa',
-+ EDUCATION_SAVINGS_ACCOUNT = 'education savings account',
-+ FIXED_ANNUNITY = 'fixed annuity',
-+ GIC = 'gic',
-+ HEALTH_REIMBURSEMENT_ARRANGEMENT = 'health reimbursement arrangement',
-+ IRA = 'ira',
-+ ISA = 'isa',
-+ KEOGH = 'keogh',
-+ LIF = 'lif',
-+ LIRA = 'lira',
-+ LRIF = 'lrif',
-+ LRSP = 'lrsp',
-+ MUTUAL_FUND = 'mutual fund',
-+ NON_TAXABLE_BROKERAGE_ACCOUNT = 'non-taxable brokerage account',
-+ PENSION = 'pension',
-+ PLAN = 'plan',
-+ PRIF = 'prif',
-+ PROFIT_SHARING_PLAN = 'profit sharing plan',
-+ RDSP = 'rdsp',
-+ RESP = 'resp',
-+ RETIREMENT = 'retirement',
-+ RLIF = 'rlif',
-+ ROTH_401K = 'roth 401k',
-+ ROTH = 'roth',
-+ RRIF = 'rrif',
-+ RRSP = 'rrsp',
-+ SARSEP = 'sarsep',
-+ SEP_IRA = 'sep ira',
-+ SIMPLE_IRA = 'simple ira',
-+ SIPP = 'sipp',
-+ STOCK_PLAN = 'stock plan',
-+ TFSA = 'tfsa',
-+ THRIFT_SAVINGS_PLAN = 'thrift savings plan',
-+ TRUST = 'trust',
-+ UGMA = 'ugma',
-+ UTMA = 'utma',
-+ VARIABLE_ANNUITY = 'variable annuity'
-+}
-+
-+export interface LinkAccountSubtype {
-+}
-+
-+export class LinkAccountSubtypeCredit implements LinkAccountSubtype {
-+ public static readonly ALL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL);
-+ public static readonly CREDIT_CARD = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.CREDIT_CARD);
-+ public static readonly PAYPAL = new LinkAccountSubtypeCredit(LinkAccountType.CREDIT, LinkAccountSubtypes.PAYPAL);
-+
-+ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { }
-+}
-+
-+export class LinkAccountSubtypeDepository implements LinkAccountSubtype {
-+ public static readonly ALL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.ALL);
-+ public static readonly CASH_MANAGEMENT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CASH_MANAGEMENT);
-+ public static readonly CD = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CD);
-+ public static readonly CHECKING = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.CHECKING);
-+ public static readonly EBT = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.EBT);
-+ public static readonly HSA = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.HSA);
-+ public static readonly MONEY_MARKET = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.MONEY_MARKET);
-+ public static readonly PAYPAL = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PAYPAL);
-+ public static readonly PREPAID = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.PREPAID);
-+ public static readonly SAVINGS = new LinkAccountSubtypeDepository(LinkAccountType.DEPOSITORY, LinkAccountSubtypes.SAVINGS);
-+
-+ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { }
-+}
-+
-+export class LinkAccountSubtypeInvestment implements LinkAccountSubtype {
-+ public static readonly ALL = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ALL);
-+ public static readonly BROKERAGE = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.BROKERAGE);
-+ public static readonly CASH_ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.CASH_ISA);
-+ public static readonly EDUCATION_SAVINGS_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.EDUCATION_SAVINGS_ACCOUNT);
-+ public static readonly FIXED_ANNUNITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIXED_ANNUNITY);
-+ public static readonly GIC = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.GIC);
-+ public static readonly HEALTH_REIMBURSEMENT_ARRANGEMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HEALTH_REIMBURSEMENT_ARRANGEMENT);
-+ public static readonly HSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.HSA);
-+ public static readonly INVESTMENT_401A = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_A);
-+ public static readonly INVESTMENT_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_1_K);
-+ public static readonly INVESTMENT_403B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_0_3_B);
-+ public static readonly INVESTMENT_457B = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FOUR_5_7_B);
-+ public static readonly INVESTMENT_529 = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.FIVE_2_9);
-+ public static readonly IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.IRA);
-+ public static readonly ISA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ISA);
-+ public static readonly KEOGH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.KEOGH);
-+ public static readonly LIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIF);
-+ public static readonly LIRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LIRA);
-+ public static readonly LRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRIF);
-+ public static readonly LRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.LRSP);
-+ public static readonly MUTUAL_FUND = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.MUTUAL_FUND);
-+ public static readonly NON_TAXABLE_BROKERAGE_ACCOUNT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.NON_TAXABLE_BROKERAGE_ACCOUNT);
-+ public static readonly PENSION = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PENSION);
-+ public static readonly PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PLAN);
-+ public static readonly PRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PRIF);
-+ public static readonly PROFIT_SHARING_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.PROFIT_SHARING_PLAN);
-+ public static readonly RDSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RDSP);
-+ public static readonly RESP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RESP);
-+ public static readonly RETIREMENT = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RETIREMENT);
-+ public static readonly RLIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RLIF);
-+ public static readonly ROTH = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH);
-+ public static readonly ROTH_401K = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.ROTH_401K);
-+ public static readonly RRIF = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRIF);
-+ public static readonly RRSP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.RRSP);
-+ public static readonly SARSEP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SARSEP);
-+ public static readonly SEP_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SEP_IRA);
-+ public static readonly SIMPLE_IRA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIMPLE_IRA);
-+ public static readonly SIIP = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.SIPP);
-+ public static readonly STOCK_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.STOCK_PLAN);
-+ public static readonly TFSA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TFSA);
-+ public static readonly THRIFT_SAVINGS_PLAN = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.THRIFT_SAVINGS_PLAN);
-+ public static readonly TRUST = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.TRUST);
-+ public static readonly UGMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UGMA);
-+ public static readonly UTMA = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.UTMA);
-+ public static readonly VARIABLE_ANNUITY = new LinkAccountSubtypeInvestment(LinkAccountType.INVESTMENT, LinkAccountSubtypes.VARIABLE_ANNUITY);
-+
-+ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { }
-+}
-+
-+export class LinkAccountSubtypeLoan implements LinkAccountSubtype {
-+ public static readonly ALL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.ALL);
-+ public static readonly AUTO = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.AUTO);
-+ public static readonly BUSINESS = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.BUSINESS);
-+ public static readonly COMMERCIAL = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.COMMERCIAL);
-+ public static readonly CONSTRUCTION = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSTRUCTION);
-+ public static readonly CONSUMER = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.CONSUMER);
-+ public static readonly HOME_EQUITY = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.HOME_EQUITY);
-+ public static readonly LINE_OF_CREDIT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LINE_OF_CREDIT);
-+ public static readonly LOAN = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.LOAN);
-+ public static readonly MORTGAGE = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.MORTGAGE);
-+ public static readonly OVERDRAFT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.OVERDRAFT);
-+ public static readonly STUDENT = new LinkAccountSubtypeLoan(LinkAccountType.CREDIT, LinkAccountSubtypes.STUDENT);
-+
-+ private constructor(public readonly type: LinkAccountType, public readonly subtype: LinkAccountSubtype) { }
-+}
-+
-+export class LinkAccountSubtypeUnknown implements LinkAccountSubtype {
-+ constructor(public readonly type: string, public readonly subtype: string) { }
-+}
-+
-+export interface LinkSuccess {
-+ publicToken: string;
-+ metadata: LinkSuccessMetadata;
-+}
-+
-+export interface LinkSuccessMetadata {
-+ institution?: LinkInstitution;
-+ accounts: LinkAccount[];
-+ linkSessionId: string;
-+ metadataJson?: string;
-+}
-+
-+export interface LinkAccount {
-+ id: string;
-+ name?: string;
-+ mask?: string;
-+ type: LinkAccountType;
-+ subtype: LinkAccountSubtype;
-+ verificationStatus?: LinkAccountVerificationStatus;
-+}
-+
-+export enum LinkAccountVerificationStatus {
-+ PENDING_AUTOMATIC_VERIFICATION = 'pending_automatic_verification',
-+ PENDING_MANUAL_VERIFICATION = 'pending_manual_verification',
-+ MANUALLY_VERIFIED = 'manually_verified',
-+}
-+
-+export interface LinkInstitution {
-+ id: string;
-+ name: string;
-+}
-+
-+export interface LinkExit {
-+ error?: LinkError;
-+ metadata: LinkExitMetadata;
-+}
-+
-+export interface LinkExitMetadata {
-+ status?: LinkExitMetadataStatus;
-+ institution?: LinkInstitution;
-+ linkSessionId: string;
-+ requestId: string;
-+ metadataJson?: string;
-+}
-+
-+export enum LinkExitMetadataStatus {
-+ CONNECTED = 'connected',
-+ CHOOSE_DEVICE = 'choose_device',
-+ REQUIRES_ACCOUNT_SELECTION = 'requires_account_selection',
-+ REQUIRES_CODE = 'requires_code',
-+ REQUIRES_CREDENTIALS = 'requires_credentials',
-+ REQUIRES_EXTERNAL_ACTION = 'requires_external_action',
-+ REQUIRES_OAUTH = 'requires_oauth',
-+ REQUIRES_QUESTIONS = 'requires_questions',
-+ REQUIRES_RECAPTCHA = 'requires_recaptcha',
-+ REQUIRES_SELECTIONS = 'requires_selections',
-+ REQUIRES_DEPOSIT_SWITCH_ALLOCATION_CONFIGURATION = 'requires_deposit_switch_allocation_configuration',
-+ REQUIRES_DEPOSIT_SWITCH_ALLOCATION_SELECTION = 'requires_deposit_switch_allocation_selection',
-+}
-+
-+export interface LinkError {
-+ errorCode: LinkErrorCode;
-+ errorType: LinkErrorType;
-+ errorMessage: string;
-+ /** @deprecated DO NOT USE, data not guaranteed. Use `displayMessage` instead */
-+ errorDisplayMessage?: string;
-+ displayMessage?: string;
-+ errorJson?: string;
-+}
-+
-+export enum LinkErrorCode {
-+ // ITEM_ERROR
-+ INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
-+ INVALID_MFA = "INVALID_MFA",
-+ ITEM_LOGIN_REQUIRED = "ITEM_LOGIN_REQUIRED",
-+ INSUFFICIENT_CREDENTIALS = "INSUFFICIENT_CREDENTIALS",
-+ ITEM_LOCKED = "ITEM_LOCKED",
-+ USER_SETUP_REQUIRED = "USER_SETUP_REQUIRED",
-+ MFA_NOT_SUPPORTED = "MFA_NOT_SUPPORTED",
-+ INVALID_SEND_METHOD = "INVALID_SEND_METHOD",
-+ NO_ACCOUNTS = "NO_ACCOUNTS",
-+ ITEM_NOT_SUPPORTED = "ITEM_NOT_SUPPORTED",
-+ TOO_MANY_VERIFICATION_ATTEMPTS = "TOO_MANY_VERIFICATION_ATTEMPTS",
-+
-+ INVALD_UPDATED_USERNAME = "INVALD_UPDATED_USERNAME",
-+ INVALID_UPDATED_USERNAME = "INVALID_UPDATED_USERNAME",
-+
-+ ITEM_NO_ERROR = "ITEM_NO_ERROR",
-+ item_no_error = "item-no-error",
-+ NO_AUTH_ACCOUNTS = "NO_AUTH_ACCOUNTS",
-+ NO_INVESTMENT_ACCOUNTS = "NO_INVESTMENT_ACCOUNTS",
-+ NO_INVESTMENT_AUTH_ACCOUNTS = "NO_INVESTMENT_AUTH_ACCOUNTS",
-+ NO_LIABILITY_ACCOUNTS = "NO_LIABILITY_ACCOUNTS",
-+ PRODUCTS_NOT_SUPPORTED = "PRODUCTS_NOT_SUPPORTED",
-+ ITEM_NOT_FOUND = "ITEM_NOT_FOUND",
-+ ITEM_PRODUCT_NOT_READY = "ITEM_PRODUCT_NOT_READY",
-+
-+ // INSTITUTION_ERROR
-+ INSTITUTION_DOWN = "INSTITUTION_DOWN",
-+ INSTITUTION_NOT_RESPONDING = "INSTITUTION_NOT_RESPONDING",
-+ INSTITUTION_NOT_AVAILABLE = "INSTITUTION_NOT_AVAILABLE",
-+ INSTITUTION_NO_LONGER_SUPPORTED = "INSTITUTION_NO_LONGER_SUPPORTED",
-+
-+ // API_ERROR
-+ INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
-+ PLANNED_MAINTENANCE = "PLANNED_MAINTENANCE",
-+
-+ // ASSET_REPORT_ERROR
-+ PRODUCT_NOT_ENABLED = "PRODUCT_NOT_ENABLED",
-+ DATA_UNAVAILABLE = "DATA_UNAVAILABLE",
-+ ASSET_PRODUCT_NOT_READY = "ASSET_PRODUCT_NOT_READY",
-+ ASSET_REPORT_GENERATION_FAILED = "ASSET_REPORT_GENERATION_FAILED",
-+ INVALID_PARENT = "INVALID_PARENT",
-+ INSIGHTS_NOT_ENABLED = "INSIGHTS_NOT_ENABLED",
-+ INSIGHTS_PREVIOUSLY_NOT_ENABLED = "INSIGHTS_PREVIOUSLY_NOT_ENABLED",
-+
-+ // BANK_TRANSFER_ERROR
-+ BANK_TRANSFER_LIMIT_EXCEEDED = "BANK_TRANSFER_LIMIT_EXCEEDED",
-+ BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT = "BANK_TRANSFER_MISSING_ORIGINATION_ACCOUNT",
-+ BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT = "BANK_TRANSFER_INVALID_ORIGINATION_ACCOUNT",
-+ BANK_TRANSFER_ACCOUNT_BLOCKED = "BANK_TRANSFER_ACCOUNT_BLOCKED",
-+ BANK_TRANSFER_INSUFFICIENT_FUNDS = "BANK_TRANSFER_INSUFFICIENT_FUNDS",
-+ BANK_TRANSFER_NOT_CANCELLABLE = "BANK_TRANSFER_NOT_CANCELLABLE",
-+ BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE = "BANK_TRANSFER_UNSUPPORTED_ACCOUNT_TYPE",
-+ BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT = "BANK_TRANSFER_UNSUPPORTED_ENVIRONMENT",
-+
-+ // SANDBOX_ERROR
-+ SANDBOX_PRODUCT_NOT_ENABLED = "SANDBOX_PRODUCT_NOT_ENABLED",
-+ SANDBOX_WEBHOOK_INVALID = "SANDBOX_WEBHOOK_INVALID",
-+ SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID = "SANDBOX_BANK_TRANSFER_EVENT_TRANSITION_INVALID",
-+
-+ // INVALID_REQUEST
-+ MISSING_FIELDS = "MISSING_FIELDS",
-+ UNKNOWN_FIELDS = "UNKNOWN_FIELDS",
-+ INVALID_FIELD = "INVALID_FIELD",
-+ INCOMPATIBLE_API_VERSION = "INCOMPATIBLE_API_VERSION",
-+ INVALID_BODY = "INVALID_BODY",
-+ INVALID_HEADERS = "INVALID_HEADERS",
-+ NOT_FOUND = "NOT_FOUND",
-+ NO_LONGER_AVAILABLE = "NO_LONGER_AVAILABLE",
-+ SANDBOX_ONLY = "SANDBOX_ONLY",
-+ INVALID_ACCOUNT_NUMBER = "INVALID_ACCOUNT_NUMBER",
-+
-+ // INVALID_INPUT
-+ // From above ITEM_LOGIN_REQUIRED = "INVALID_CREDENTIALS",
-+ INCORRECT_DEPOSIT_AMOUNTS = "INCORRECT_DEPOSIT_AMOUNTS",
-+ UNAUTHORIZED_ENVIRONMENT = "UNAUTHORIZED_ENVIRONMENT",
-+ INVALID_PRODUCT = "INVALID_PRODUCT",
-+ UNAUTHORIZED_ROUTE_ACCESS = "UNAUTHORIZED_ROUTE_ACCESS",
-+ DIRECT_INTEGRATION_NOT_ENABLED = "DIRECT_INTEGRATION_NOT_ENABLED",
-+ INVALID_API_KEYS = "INVALID_API_KEYS",
-+ INVALID_ACCESS_TOKEN = "INVALID_ACCESS_TOKEN",
-+ INVALID_PUBLIC_TOKEN = "INVALID_PUBLIC_TOKEN",
-+ INVALID_LINK_TOKEN = "INVALID_LINK_TOKEN",
-+ INVALID_PROCESSOR_TOKEN = "INVALID_PROCESSOR_TOKEN",
-+ INVALID_AUDIT_COPY_TOKEN = "INVALID_AUDIT_COPY_TOKEN",
-+ INVALID_ACCOUNT_ID = "INVALID_ACCOUNT_ID",
-+ MICRODEPOSITS_ALREADY_VERIFIED = "MICRODEPOSITS_ALREADY_VERIFIED",
-+
-+ // INVALID_RESULT
-+ PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA = "PLAID_DIRECT_ITEM_IMPORT_RETURNED_INVALID_MFA",
-+
-+ // RATE_LIMIT_EXCEEDED
-+ ACCOUNTS_LIMIT = "ACCOUNTS_LIMIT",
-+ ADDITION_LIMIT = "ADDITION_LIMIT",
-+ AUTH_LIMIT = "AUTH_LIMIT",
-+ BALANCE_LIMIT = "BALANCE_LIMIT",
-+ IDENTITY_LIMIT = "IDENTITY_LIMIT",
-+ ITEM_GET_LIMIT = "ITEM_GET_LIMIT",
-+ RATE_LIMIT = "RATE_LIMIT",
-+ TRANSACTIONS_LIMIT = "TRANSACTIONS_LIMIT",
-+
-+ // RECAPTCHA_ERROR
-+ RECAPTCHA_REQUIRED = "RECAPTCHA_REQUIRED",
-+ RECAPTCHA_BAD = "RECAPTCHA_BAD",
-+
-+ // OAUTH_ERROR
-+ INCORRECT_OAUTH_NONCE = "INCORRECT_OAUTH_NONCE",
-+ OAUTH_STATE_ID_ALREADY_PROCESSED = "OAUTH_STATE_ID_ALREADY_PROCESSED",
-+}
-+
-+export enum LinkErrorType {
-+ BANK_TRANSFER = 'BANK_TRANSFER_ERROR',
-+ INVALID_REQUEST = 'INVALID_REQUEST',
-+ INVALID_RESULT = 'INVALID_RESULT',
-+ INVALID_INPUT = 'INVALID_INPUT',
-+ INSTITUTION_ERROR = 'INSTITUTION_ERROR',
-+ RATE_LIMIT_EXCEEDED = 'RATE_LIMIT_EXCEEDED',
-+ API_ERROR = 'API_ERROR',
-+ ITEM_ERROR = 'ITEM_ERROR',
-+ AUTH_ERROR = 'AUTH_ERROR',
-+ ASSET_REPORT_ERROR = 'ASSET_REPORT_ERROR',
-+ SANDBOX_ERROR = 'SANDBOX_ERROR',
-+ RECAPTCHA_ERROR = 'RECAPTCHA_ERROR',
-+ OAUTH_ERROR = 'OAUTH_ERROR',
-+}
-+
-+export type LinkEventListener = (linkEvent: LinkEvent) => void
-+
-+export interface LinkEvent {
-+ eventName: LinkEventName;
-+ metadata: LinkEventMetadata;
-+}
-+
-+export interface LinkEventMetadata {
-+ accountNumberMask?: string;
-+ linkSessionId: string;
-+ mfaType?: string;
-+ requestId?: string;
-+ viewName: LinkEventViewName;
-+ errorCode?: string;
-+ errorMessage?: string;
-+ errorType?: string;
-+ exitStatus?: string;
-+ institutionId?: string;
-+ institutionName?: string;
-+ institutionSearchQuery?: string;
-+ isUpdateMode?: string;
-+ matchReason?: string;
-+ // see possible values for selection at https://plaid.com/docs/link/web/#link-web-onevent-selection
-+ selection?: null | string;
-+ timestamp: string;
-+}
-+
-+export enum LinkEventName {
-+ BANK_INCOME_INSIGHTS_COMPLETED = "BANK_INCOME_INSIGHTS_COMPLETED",
-+ CLOSE_OAUTH = 'CLOSE_OAUTH',
-+ ERROR = 'ERROR',
-+ EXIT = 'EXIT',
-+ FAIL_OAUTH = 'FAIL_OAUTH',
-+ HANDOFF = 'HANDOFF',
-+ IDENTITY_VERIFICATION_START_STEP = 'IDENTITY_VERIFICATION_START_STEP',
-+ IDENTITY_VERIFICATION_PASS_STEP = 'IDENTITY_VERIFICATION_PASS_STEP',
-+ IDENTITY_VERIFICATION_FAIL_STEP = 'IDENTITY_VERIFICATION_FAIL_STEP',
-+ IDENTITY_VERIFICATION_PENDING_REVIEW_STEP = 'IDENTITY_VERIFICATION_PENDING_REVIEW_STEP',
-+ IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION = 'IDENTITY_VERIFICATION_PENDING_REVIEW_SESSION',
-+ IDENTITY_VERIFICATION_CREATE_SESSION = 'IDENTITY_VERIFICATION_CREATE_SESSION',
-+ IDENTITY_VERIFICATION_RESUME_SESSION = 'IDENTITY_VERIFICATION_RESUME_SESSION',
-+ IDENTITY_VERIFICATION_PASS_SESSION = 'IDENTITY_VERIFICATION_PASS_SESSION',
-+ IDENTITY_VERIFICATION_FAIL_SESSION = 'IDENTITY_VERIFICATION_FAIL_SESSION',
-+ IDENTITY_VERIFICATION_OPEN_UI = 'IDENTITY_VERIFICATION_OPEN_UI',
-+ IDENTITY_VERIFICATION_RESUME_UI = 'IDENTITY_VERIFICATION_RESUME_UI',
-+ IDENTITY_VERIFICATION_CLOSE_UI = 'IDENTITY_VERIFICATION_CLOSE_UI',
-+ MATCHED_CONSENT = 'MATCHED_CONSENT',
-+ MATCHED_SELECT_INSTITUTION = 'MATCHED_SELECT_INSTITUTION',
-+ MATCHED_SELECT_VERIFY_METHOD = 'MATCHED_SELECT_VERIFY_METHOD',
-+ OPEN = 'OPEN',
-+ OPEN_MY_PLAID = 'OPEN_MY_PLAID',
-+ OPEN_OAUTH = 'OPEN_OAUTH',
-+ SEARCH_INSTITUTION = 'SEARCH_INSTITUTION',
-+ SELECT_DEGRADED_INSTITUTION = 'SELECT_DEGRADED_INSTITUTION',
-+ SELECT_DOWN_INSTITUTION = 'SELECT_DOWN_INSTITUTION',
-+ SELECT_FILTERED_INSTITUTION = 'SELECT_FILTERED_INSTITUTION',
-+ SELECT_INSTITUTION = 'SELECT_INSTITUTION',
-+ SELECT_BRAND = 'SELECT_BRAND',
-+ SELECT_AUTH_TYPE = 'SELECT_AUTH_TYPE',
-+ SUBMIT_ACCOUNT_NUMBER = 'SUBMIT_ACCOUNT_NUMBER',
-+ SUBMIT_DOCUMENTS = 'SUBMIT_DOCUMENTS',
-+ SUBMIT_DOCUMENTS_SUCCESS = 'SUBMIT_DOCUMENTS_SUCCESS',
-+ SUBMIT_DOCUMENTS_ERROR = 'SUBMIT_DOCUMENTS_ERROR',
-+ SUBMIT_ROUTING_NUMBER = 'SUBMIT_ROUTING_NUMBER',
-+ VIEW_DATA_TYPES = 'VIEW_DATA_TYPES',
-+ SUBMIT_PHONE = 'SUBMIT_PHONE',
-+ SKIP_SUBMIT_PHONE = 'SKIP_SUBMIT_PHONE',
-+ VERIFY_PHONE = 'VERIFY_PHONE',
-+ SUBMIT_CREDENTIALS = 'SUBMIT_CREDENTIALS',
-+ SUBMIT_MFA = 'SUBMIT_MFA',
-+ TRANSITION_VIEW = 'TRANSITION_VIEW',
-+ CONNECT_NEW_INSTITUTION = 'CONNECT_NEW_INSTITUTION',
-+}
-+
-+export enum LinkEventViewName {
-+ ACCEPT_TOS = 'ACCEPT_TOS',
-+ CONNECTED = 'CONNECTED',
-+ CONSENT = 'CONSENT',
-+ CREDENTIAL = 'CREDENTIAL',
-+ DATA_TRANSPARENCY = 'DATA_TRANSPARENCY',
-+ DATA_TRANSPARENCY_CONSENT = 'DATA_TRANSPARENCY_CONSENT',
-+ DOCUMENTARY_VERIFICATION = 'DOCUMENTARY_VERIFICATION',
-+ ERROR = 'ERROR',
-+ EXIT = 'EXIT',
-+ KYC_CHECK = 'KYC_CHECK',
-+ SELFIE_CHECK = 'SELFIE_CHECK',
-+ LOADING = 'LOADING',
-+ MATCHED_CONSENT = 'MATCHED_CONSENT',
-+ MATCHED_CREDENTIAL = 'MATCHED_CREDENTIAL',
-+ MATCHED_MFA = 'MATCHED_MFA',
-+ MFA = 'MFA',
-+ NUMBERS = 'NUMBERS',
-+ NUMBERS_SELECT_INSTITUTION = 'NUMBERS_SELECT_INSTITUTION',
-+ OAUTH = 'OAUTH',
-+ RECAPTCHA = 'RECAPTCHA',
-+ RISK_CHECK = 'RISK_CHECK',
-+ SCREENING = 'SCREENING',
-+ SELECT_ACCOUNT = 'SELECT_ACCOUNT',
-+ SELECT_AUTH_TYPE = 'SELECT_AUTH_TYPE',
-+ SUBMIT_PHONE = 'SUBMIT_PHONE',
-+ VERIFY_PHONE = 'VERIFY_PHONE',
-+ SELECT_SAVED_INSTITUTION = 'SELECT_SAVED_INSTITUTION',
-+ SELECT_SAVED_ACCOUNT = 'SELECT_SAVED_ACCOUNT',
-+ SELECT_BRAND = 'SELECT_BRAND',
-+ SELECT_INSTITUTION = 'SELECT_INSTITUTION',
-+ SUBMIT_DOCUMENTS = 'SUBMIT_DOCUMENTS',
-+ SUBMIT_DOCUMENTS_SUCCESS = 'SUBMIT_DOCUMENTS_SUCCESS',
-+ SUBMIT_DOCUMENTS_ERROR = 'SUBMIT_DOCUMENTS_ERROR',
-+ UPLOAD_DOCUMENTS = 'UPLOAD_DOCUMENTS',
-+ VERIFY_SMS = 'VERIFY_SMS',
-+}
-+
-+/// Methods to present Link on iOS.
-+/// FULL_SCREEN is the converts to UIModalPresentationOverFullScreen on the native side.
-+/// MODAL will use the default presentation style for iOS which is UIModalPresentationAutomatic.
-+export enum LinkIOSPresentationStyle {
-+ FULL_SCREEN = 'FULL_SCREEN',
-+ MODAL = 'MODAL'
-+}
-+
-+export type LinkSuccessListener = (LinkSuccess: LinkSuccess) => void
-+
-+export type LinkExitListener = (LinkExit: LinkExit) => void
-+
-+export type LinkOnEventListener = (LinkEvent: LinkEvent) => void
-+
-+export interface PlaidLinkProps {
-+ tokenConfig: LinkTokenConfiguration
-+ onSuccess: LinkSuccessListener
-+ onExit?: LinkExitListener
-+ iOSPresentationStyle?: LinkIOSPresentationStyle
-+ logLevel?: LinkLogLevel
-+ onPress?(): any
-+}
-+
-+export type PlaidLinkComponentProps = (PlaidLinkProps & {
-+ children: React.ReactNode
-+});
-diff --git a/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts b/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts
-new file mode 100644
-index 0000000..2dd7a54
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/__tests__/Types.tests.ts
-@@ -0,0 +1,15 @@
-+const Types = require('./../Types');
-+
-+test('test token configuration', () => {
-+ const linkTokenConfiguration = {
-+ token: "test-token",
-+ noLoadingState: false,
-+ logLevel: Types.LinkLogLevel.DEBUG,
-+ extras: null,
-+ };
-+
-+ expect(linkTokenConfiguration.noLoadingState).toBe(false);
-+ expect(linkTokenConfiguration.token).toBe("test-token");
-+ expect(linkTokenConfiguration.logLevel).toBe(Types.LinkLogLevel.DEBUG);
-+ expect(linkTokenConfiguration.extras).toBe(null);
-+});
-\ No newline at end of file
-diff --git a/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts
-new file mode 100644
-index 0000000..d1e4062
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleAndroid.ts
-@@ -0,0 +1,20 @@
-+// we use Object type because methods on the native side use NSDictionary and ReadableMap
-+// and we want to stay compatible with those
-+import {TurboModuleRegistry, TurboModule} from 'react-native';
-+import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
-+
-+export interface Spec extends TurboModule {
-+ startLinkActivityForResult(
-+ token: string,
-+ noLoadingState: boolean,
-+ logLevel: string,
-+ onSuccessCallback: (result: UnsafeObject) => void,
-+ onExitCallback: (result: UnsafeObject) => void
-+ ): void;
-+
-+ // those two are here for event emitter methods
-+ addListener(eventName: string): void;
-+ removeListeners(count: Int32): void;
-+}
-+
-+export default TurboModuleRegistry.get('PlaidAndroid');
-diff --git a/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts
-new file mode 100644
-index 0000000..d1b3565
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/fabric/NativePlaidLinkModuleiOS.ts
-@@ -0,0 +1,19 @@
-+// we use Object type because methods on the native side use NSDictionary and ReadableMap
-+// and we want to stay compatible with those
-+import {TurboModuleRegistry, TurboModule} from 'react-native';
-+import { Int32, UnsafeObject } from 'react-native/Libraries/Types/CodegenTypes';
-+
-+export interface Spec extends TurboModule {
-+ create(token: string, noLoadingState: boolean): void;
-+ open(
-+ fullScreen: boolean,
-+ onSuccess: (success: UnsafeObject) => void,
-+ onExit: (error: UnsafeObject, result: UnsafeObject) => void,
-+ ): void;
-+ dismiss(): void;
-+ // those two are here for event emitter methods
-+ addListener(eventName: string): void;
-+ removeListeners(count: Int32): void;
-+}
-+
-+export default TurboModuleRegistry.get('RNLinksdk');
-diff --git a/node_modules/react-native-plaid-link-sdk/src/index.ts b/node_modules/react-native-plaid-link-sdk/src/index.ts
-new file mode 100644
-index 0000000..23ef946
---- /dev/null
-+++ b/node_modules/react-native-plaid-link-sdk/src/index.ts
-@@ -0,0 +1,21 @@
-+import {
-+ openLink,
-+ dismissLink,
-+ usePlaidEmitter,
-+ PlaidLink,
-+} from './PlaidLink';
-+
-+export * from './Types';
-+
-+export default PlaidLink;
-+
-+export {
-+ PlaidLink,
-+ openLink,
-+ dismissLink,
-+ usePlaidEmitter,
-+};
-+
-+// Components
-+
-+export { EmbeddedLinkView } from './EmbeddedLink/EmbeddedLinkView';
-\ No newline at end of file