framepayments-react-native 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FrameReactNative.podspec +7 -23
- package/README.md +306 -125
- package/android/build.gradle +15 -26
- package/android/consumer-rules.pro +34 -0
- package/android/src/main/AndroidManifest.xml +10 -18
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameGooglePayButtonView.kt +110 -0
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameGooglePayButtonViewManager.kt +44 -0
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameSDKModule.kt +17 -244
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameSDKPackage.kt +7 -2
- package/android/src/main/java/com/framepayments/reactnativeframe/GooglePayBridge.kt +255 -0
- package/android/src/main/java/com/framepayments/reactnativeframe/IpAddressBridge.kt +63 -0
- package/android/src/main/java/com/framepayments/reactnativeframe/ProveAuthBridge.kt +215 -0
- package/app.plugin.js +1 -0
- package/ios/ApplePayBridge.m +23 -0
- package/ios/ApplePayBridge.swift +262 -0
- package/ios/AttestationBridge.m +36 -0
- package/ios/AttestationBridge.swift +167 -0
- package/ios/FrameApplePayButtonView.swift +115 -0
- package/ios/FrameApplePayButtonViewManager.m +17 -0
- package/ios/FrameSDKBridge.m +8 -71
- package/ios/FrameSDKBridge.swift +11 -316
- package/ios/IpAddressBridge.m +10 -0
- package/ios/IpAddressBridge.swift +61 -0
- package/ios/ProveAuthBridge.m +20 -0
- package/ios/ProveAuthBridge.swift +318 -0
- package/lib/__mocks__/react-native-svg.d.ts +19 -0
- package/lib/__mocks__/react-native-svg.d.ts.map +1 -0
- package/lib/__mocks__/react-native-svg.js +21 -0
- package/lib/api-errors.d.ts +6 -0
- package/lib/api-errors.d.ts.map +1 -0
- package/lib/api-errors.js +55 -0
- package/lib/applePay.d.ts +57 -0
- package/lib/applePay.d.ts.map +1 -0
- package/lib/applePay.js +235 -0
- package/lib/attestation.d.ts +48 -0
- package/lib/attestation.d.ts.map +1 -0
- package/lib/attestation.js +207 -0
- package/lib/camera.d.ts +29 -0
- package/lib/camera.d.ts.map +1 -0
- package/lib/camera.js +61 -0
- package/lib/client.d.ts +7 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +38 -0
- package/lib/config.d.ts +40 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +93 -0
- package/lib/countries.d.ts +18 -0
- package/lib/countries.d.ts.map +1 -0
- package/lib/countries.js +338 -0
- package/lib/currency.d.ts +2 -0
- package/lib/currency.d.ts.map +1 -0
- package/lib/currency.js +22 -0
- package/lib/debug/networkLogger.d.ts +4 -0
- package/lib/debug/networkLogger.d.ts.map +1 -0
- package/lib/debug/networkLogger.js +101 -0
- package/lib/errors.d.ts +12 -3
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +20 -3
- package/lib/evervault.d.ts +10 -0
- package/lib/evervault.d.ts.map +1 -0
- package/lib/evervault.js +61 -0
- package/lib/googlePay.d.ts +30 -0
- package/lib/googlePay.d.ts.map +1 -0
- package/lib/googlePay.js +96 -0
- package/lib/index.d.ts +18 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -10
- package/lib/ipAddress.d.ts +5 -0
- package/lib/ipAddress.d.ts.map +1 -0
- package/lib/ipAddress.js +15 -0
- package/lib/native.d.ts +18 -47
- package/lib/native.d.ts.map +1 -1
- package/lib/native.js +155 -90
- package/lib/plaid.d.ts +25 -0
- package/lib/plaid.d.ts.map +1 -0
- package/lib/plaid.js +101 -0
- package/lib/presenter/FramePresentationHost.d.ts +2 -0
- package/lib/presenter/FramePresentationHost.d.ts.map +1 -0
- package/lib/presenter/FramePresentationHost.js +30 -0
- package/lib/presenter/index.d.ts +3 -0
- package/lib/presenter/index.d.ts.map +1 -0
- package/lib/presenter/index.js +2 -0
- package/lib/presenter/presenter.d.ts +44 -0
- package/lib/presenter/presenter.d.ts.map +1 -0
- package/lib/presenter/presenter.js +112 -0
- package/lib/prove.d.ts +31 -0
- package/lib/prove.d.ts.map +1 -0
- package/lib/prove.js +63 -0
- package/lib/types.d.ts +10 -52
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +0 -4
- package/lib/ui/FrameProvider.d.ts +13 -0
- package/lib/ui/FrameProvider.d.ts.map +1 -0
- package/lib/ui/FrameProvider.js +22 -0
- package/lib/ui/assets/Icon.d.ts +14 -0
- package/lib/ui/assets/Icon.d.ts.map +1 -0
- package/lib/ui/assets/Icon.js +33 -0
- package/lib/ui/assets/icons/card-brands.d.ts +5 -0
- package/lib/ui/assets/icons/card-brands.d.ts.map +1 -0
- package/lib/ui/assets/icons/card-brands.js +28 -0
- package/lib/ui/assets/icons/person-check.d.ts +2 -0
- package/lib/ui/assets/icons/person-check.d.ts.map +1 -0
- package/lib/ui/assets/icons/person-check.js +9 -0
- package/lib/ui/assets/icons/shield-icon.d.ts +2 -0
- package/lib/ui/assets/icons/shield-icon.d.ts.map +1 -0
- package/lib/ui/assets/icons/shield-icon.js +11 -0
- package/lib/ui/assets/icons/simple.d.ts +10 -0
- package/lib/ui/assets/icons/simple.d.ts.map +1 -0
- package/lib/ui/assets/icons/simple.js +52 -0
- package/lib/ui/assets/index.d.ts +3 -0
- package/lib/ui/assets/index.d.ts.map +1 -0
- package/lib/ui/assets/index.js +1 -0
- package/lib/ui/primitives/ApplePayButton.d.ts +13 -0
- package/lib/ui/primitives/ApplePayButton.d.ts.map +1 -0
- package/lib/ui/primitives/ApplePayButton.js +20 -0
- package/lib/ui/primitives/BillingAddressDetailView.d.ts +13 -0
- package/lib/ui/primitives/BillingAddressDetailView.d.ts.map +1 -0
- package/lib/ui/primitives/BillingAddressDetailView.js +55 -0
- package/lib/ui/primitives/BottomSheet.d.ts +11 -0
- package/lib/ui/primitives/BottomSheet.d.ts.map +1 -0
- package/lib/ui/primitives/BottomSheet.js +72 -0
- package/lib/ui/primitives/Button.d.ts +17 -0
- package/lib/ui/primitives/Button.d.ts.map +1 -0
- package/lib/ui/primitives/Button.js +37 -0
- package/lib/ui/primitives/Button.types.d.ts +2 -0
- package/lib/ui/primitives/Button.types.d.ts.map +1 -0
- package/lib/ui/primitives/Button.types.js +1 -0
- package/lib/ui/primitives/Checkbox.d.ts +12 -0
- package/lib/ui/primitives/Checkbox.d.ts.map +1 -0
- package/lib/ui/primitives/Checkbox.js +53 -0
- package/lib/ui/primitives/CountryPicker.d.ts +10 -0
- package/lib/ui/primitives/CountryPicker.d.ts.map +1 -0
- package/lib/ui/primitives/CountryPicker.js +166 -0
- package/lib/ui/primitives/DobInputField.d.ts +14 -0
- package/lib/ui/primitives/DobInputField.d.ts.map +1 -0
- package/lib/ui/primitives/DobInputField.js +81 -0
- package/lib/ui/primitives/DropDown.d.ts +14 -0
- package/lib/ui/primitives/DropDown.d.ts.map +1 -0
- package/lib/ui/primitives/DropDown.js +136 -0
- package/lib/ui/primitives/FrameCameraView.d.ts +17 -0
- package/lib/ui/primitives/FrameCameraView.d.ts.map +1 -0
- package/lib/ui/primitives/FrameCameraView.js +132 -0
- package/lib/ui/primitives/GooglePayButton.d.ts +13 -0
- package/lib/ui/primitives/GooglePayButton.d.ts.map +1 -0
- package/lib/ui/primitives/GooglePayButton.js +20 -0
- package/lib/ui/primitives/OtpInputField.d.ts +12 -0
- package/lib/ui/primitives/OtpInputField.d.ts.map +1 -0
- package/lib/ui/primitives/OtpInputField.js +87 -0
- package/lib/ui/primitives/PageHeader.d.ts +7 -0
- package/lib/ui/primitives/PageHeader.d.ts.map +1 -0
- package/lib/ui/primitives/PageHeader.js +57 -0
- package/lib/ui/primitives/PaymentCardField.d.ts +31 -0
- package/lib/ui/primitives/PaymentCardField.d.ts.map +1 -0
- package/lib/ui/primitives/PaymentCardField.js +198 -0
- package/lib/ui/primitives/PaymentMethodRow.d.ts +11 -0
- package/lib/ui/primitives/PaymentMethodRow.d.ts.map +1 -0
- package/lib/ui/primitives/PaymentMethodRow.js +70 -0
- package/lib/ui/primitives/PhoneCountryPicker.d.ts +9 -0
- package/lib/ui/primitives/PhoneCountryPicker.d.ts.map +1 -0
- package/lib/ui/primitives/PhoneCountryPicker.js +183 -0
- package/lib/ui/primitives/PhoneNumberField.d.ts +11 -0
- package/lib/ui/primitives/PhoneNumberField.d.ts.map +1 -0
- package/lib/ui/primitives/PhoneNumberField.js +68 -0
- package/lib/ui/primitives/ProgressBar.d.ts +8 -0
- package/lib/ui/primitives/ProgressBar.d.ts.map +1 -0
- package/lib/ui/primitives/ProgressBar.js +35 -0
- package/lib/ui/primitives/TermsOfServiceView.d.ts +6 -0
- package/lib/ui/primitives/TermsOfServiceView.d.ts.map +1 -0
- package/lib/ui/primitives/TermsOfServiceView.js +34 -0
- package/lib/ui/primitives/Toast.d.ts +2 -0
- package/lib/ui/primitives/Toast.d.ts.map +1 -0
- package/lib/ui/primitives/Toast.js +86 -0
- package/lib/ui/primitives/ValidatedTextField.d.ts +46 -0
- package/lib/ui/primitives/ValidatedTextField.d.ts.map +1 -0
- package/lib/ui/primitives/ValidatedTextField.js +70 -0
- package/lib/ui/primitives/buttonColors.d.ts +8 -0
- package/lib/ui/primitives/buttonColors.d.ts.map +1 -0
- package/lib/ui/primitives/buttonColors.js +21 -0
- package/lib/ui/primitives/otpFieldLogic.d.ts +15 -0
- package/lib/ui/primitives/otpFieldLogic.d.ts.map +1 -0
- package/lib/ui/primitives/otpFieldLogic.js +73 -0
- package/lib/ui/primitives/paymentCardFormat.d.ts +25 -0
- package/lib/ui/primitives/paymentCardFormat.d.ts.map +1 -0
- package/lib/ui/primitives/paymentCardFormat.js +118 -0
- package/lib/ui/primitives/textFieldUtils.d.ts +2 -0
- package/lib/ui/primitives/textFieldUtils.d.ts.map +1 -0
- package/lib/ui/primitives/textFieldUtils.js +7 -0
- package/lib/ui/primitives/toastCenter.d.ts +18 -0
- package/lib/ui/primitives/toastCenter.d.ts.map +1 -0
- package/lib/ui/primitives/toastCenter.js +54 -0
- package/lib/ui/screens/cart/CartScreen.d.ts +14 -0
- package/lib/ui/screens/cart/CartScreen.d.ts.map +1 -0
- package/lib/ui/screens/cart/CartScreen.js +165 -0
- package/lib/ui/screens/cart/useCartViewModel.d.ts +13 -0
- package/lib/ui/screens/cart/useCartViewModel.d.ts.map +1 -0
- package/lib/ui/screens/cart/useCartViewModel.js +16 -0
- package/lib/ui/screens/checkout/CheckoutScreen.d.ts +17 -0
- package/lib/ui/screens/checkout/CheckoutScreen.d.ts.map +1 -0
- package/lib/ui/screens/checkout/CheckoutScreen.js +279 -0
- package/lib/ui/screens/checkout/checkoutReducer.d.ts +77 -0
- package/lib/ui/screens/checkout/checkoutReducer.d.ts.map +1 -0
- package/lib/ui/screens/checkout/checkoutReducer.js +158 -0
- package/lib/ui/screens/checkout/useCheckoutViewModel.d.ts +19 -0
- package/lib/ui/screens/checkout/useCheckoutViewModel.d.ts.map +1 -0
- package/lib/ui/screens/checkout/useCheckoutViewModel.js +141 -0
- package/lib/ui/screens/onboarding/OnboardingChrome.d.ts +14 -0
- package/lib/ui/screens/onboarding/OnboardingChrome.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/OnboardingChrome.js +39 -0
- package/lib/ui/screens/onboarding/OnboardingRoot.d.ts +15 -0
- package/lib/ui/screens/onboarding/OnboardingRoot.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/OnboardingRoot.js +275 -0
- package/lib/ui/screens/onboarding/VerificationSubmittedScreen.d.ts +5 -0
- package/lib/ui/screens/onboarding/VerificationSubmittedScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/VerificationSubmittedScreen.js +63 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/AddPayoutMethodScreen.d.ts +12 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/AddPayoutMethodScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/AddPayoutMethodScreen.js +157 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/SelectPayoutMethodScreen.d.ts +9 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/SelectPayoutMethodScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/confirmBankAccount/SelectPayoutMethodScreen.js +125 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/AddPaymentMethodScreen.d.ts +18 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/AddPaymentMethodScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/AddPaymentMethodScreen.js +180 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SecurePMVerificationScreen.d.ts +16 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SecurePMVerificationScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SecurePMVerificationScreen.js +117 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SelectPaymentMethodScreen.d.ts +9 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SelectPaymentMethodScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/confirmPaymentMethod/SelectPaymentMethodScreen.js +159 -0
- package/lib/ui/screens/onboarding/formSpacing.d.ts +20 -0
- package/lib/ui/screens/onboarding/formSpacing.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/formSpacing.js +25 -0
- package/lib/ui/screens/onboarding/onboardingReducer.d.ts +201 -0
- package/lib/ui/screens/onboarding/onboardingReducer.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/onboardingReducer.js +232 -0
- package/lib/ui/screens/onboarding/onboardingSelectors.d.ts +25 -0
- package/lib/ui/screens/onboarding/onboardingSelectors.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/onboardingSelectors.js +265 -0
- package/lib/ui/screens/onboarding/personalInformation/CustomerInformationScreen.d.ts +19 -0
- package/lib/ui/screens/onboarding/personalInformation/CustomerInformationScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/personalInformation/CustomerInformationScreen.js +157 -0
- package/lib/ui/screens/onboarding/personalInformation/GeolocationScreen.d.ts +6 -0
- package/lib/ui/screens/onboarding/personalInformation/GeolocationScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/personalInformation/GeolocationScreen.js +84 -0
- package/lib/ui/screens/onboarding/personalInformation/PhoneAuthScreen.d.ts +17 -0
- package/lib/ui/screens/onboarding/personalInformation/PhoneAuthScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/personalInformation/PhoneAuthScreen.js +93 -0
- package/lib/ui/screens/onboarding/personalInformation/VerificationWelcomeScreen.d.ts +6 -0
- package/lib/ui/screens/onboarding/personalInformation/VerificationWelcomeScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/personalInformation/VerificationWelcomeScreen.js +63 -0
- package/lib/ui/screens/onboarding/personalInformation/VerifyPhoneScreen.d.ts +17 -0
- package/lib/ui/screens/onboarding/personalInformation/VerifyPhoneScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/personalInformation/VerifyPhoneScreen.js +177 -0
- package/lib/ui/screens/onboarding/uploadDocuments/CaptureScreen.d.ts +12 -0
- package/lib/ui/screens/onboarding/uploadDocuments/CaptureScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/uploadDocuments/CaptureScreen.js +197 -0
- package/lib/ui/screens/onboarding/uploadDocuments/ReviewScreen.d.ts +11 -0
- package/lib/ui/screens/onboarding/uploadDocuments/ReviewScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/uploadDocuments/ReviewScreen.js +72 -0
- package/lib/ui/screens/onboarding/uploadDocuments/UploadDocumentsListScreen.d.ts +12 -0
- package/lib/ui/screens/onboarding/uploadDocuments/UploadDocumentsListScreen.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/uploadDocuments/UploadDocumentsListScreen.js +134 -0
- package/lib/ui/screens/onboarding/useOnboardingViewModel.d.ts +90 -0
- package/lib/ui/screens/onboarding/useOnboardingViewModel.d.ts.map +1 -0
- package/lib/ui/screens/onboarding/useOnboardingViewModel.js +886 -0
- package/lib/ui/theme/ThemeContext.d.ts +4 -0
- package/lib/ui/theme/ThemeContext.d.ts.map +1 -0
- package/lib/ui/theme/ThemeContext.js +9 -0
- package/lib/ui/theme/defaults.d.ts +35 -0
- package/lib/ui/theme/defaults.d.ts.map +1 -0
- package/lib/ui/theme/defaults.js +83 -0
- package/lib/validation.d.ts +26 -0
- package/lib/validation.d.ts.map +1 -0
- package/lib/validation.js +235 -0
- package/package.json +50 -11
- package/plugin/withFrameAndroidManifest.js +72 -0
- package/plugin/withFrameAppBuildGradle.js +42 -0
- package/plugin/withFrameEntitlements.js +27 -0
- package/plugin/withFramePodfile.js +186 -0
- package/plugin/withFrameReactNative.js +24 -0
- package/plugin/withFrameSettingsGradle.js +70 -0
- package/Package.swift +0 -47
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/results.bin +0 -1
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/BuildConfig.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameCheckoutActivity$Companion.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameCheckoutActivity$tryShowCheckout$1.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameCheckoutActivity.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameFlowActivity$CartItemDto.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameFlowActivity$Companion.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameFlowActivity$parseCartItems$type$1.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameFlowActivity.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameGooglePayActivity$Companion.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameGooglePayActivity.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameOnboardingActivity$Companion.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameOnboardingActivity$parseCapabilities$type$1.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameOnboardingActivity.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameRNTheme.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameSDKModule$Companion.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameSDKModule.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/FrameSDKPackage.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/framepayments/reactnativeframe/JsonConvertersKt.dex +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameCheckoutActivity$$InternalSyntheticLambda$2$28045340ca5b91151bb937065eeb5817c0f8f911bb460e6e7ed8bb228b67ee83$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameFlowActivity$$InternalSyntheticLambda$2$467cdf1dabffeaa07b76e313efb66791f50d3ff264e427e91d1358ac5865a7a9$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameFlowActivity$$InternalSyntheticLambda$2$d15cc37cc08a853958a9c0baad49f7fce1ef84e92db9baa5103646939a0fe3e5$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameFlowActivity$$InternalSyntheticLambda$2$ee6ef8e6758d1b8e67a54e3fecfb200ac5e867541a69809ec1db49f74ffcada1$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameGooglePayActivity$$InternalSyntheticLambda$2$46cecf303f126f7c9f20b615fc49b2714ec2eb4f046ae009cfdbce53a1759f18$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameGooglePayActivity$$InternalSyntheticLambda$2$46cecf303f126f7c9f20b615fc49b2714ec2eb4f046ae009cfdbce53a1759f18$1.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameGooglePayActivity$$InternalSyntheticLambda$2$46cecf303f126f7c9f20b615fc49b2714ec2eb4f046ae009cfdbce53a1759f18$2.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameGooglePayActivity$$InternalSyntheticLambda$2$cdad629ad452b3c7f7de1310d225629dafa75285ad515d55f056371066170154$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameOnboardingActivity$$InternalSyntheticLambda$2$5d91d018c63f48735ba5e2a00b14bd815f4ce248aa924e4a58bf6addce311837$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameOnboardingActivity$$InternalSyntheticLambda$2$a4dd99e5b5b34786859d11aae1863eaa7753520ea4b5243c4aeed484af64827d$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameOnboardingActivity$$InternalSyntheticLambda$2$f31e67c97c5bd233cb84a797fa0614f3d821bde331844034e2012a0c5cb2cc1d$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameSDKModule$$InternalSyntheticLambda$2$1f479ca48bf3a1c66ff65b38aaaef67a97119b29ddce703f8104188682007f0d$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameSDKModule$$InternalSyntheticLambda$2$7347ff5b95d03cf5be9ee5177309c1bf4be5faabda2bbedb79f5f4c91917c2b1$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameSDKModule$$InternalSyntheticLambda$2$7347ff5b95d03cf5be9ee5177309c1bf4be5faabda2bbedb79f5f4c91917c2b1$1.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameSDKModule$$InternalSyntheticLambda$2$9816d2cb3db63bf5efb3411b62dbb57847dd7ef82f88bae5f375baced7880f11$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_global-synthetics/com/framepayments/reactnativeframe/FrameSDKModule$$InternalSyntheticLambda$2$f4a55b70e496f422e1e03998843d62c7208f0229c2d5d080706056e98810c892$0.globals +0 -0
- package/android/build/.transforms/5a2061641b1fc5518a336681809507bc/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/generated/source/buildConfig/androidTest/debug/com/framepayments/reactnativeframe/test/BuildConfig.java +0 -10
- package/android/build/generated/source/buildConfig/debug/com/framepayments/reactnativeframe/BuildConfig.java +0 -10
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -26
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
- package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
- package/android/build/intermediates/android_res_source_set_path_map/debug/mapDebugSourceSetPaths/file-map.txt +0 -10
- package/android/build/intermediates/android_res_source_set_path_map/debugAndroidTest/mapDebugAndroidTestSourceSetPaths/file-map.txt +0 -6
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
- package/android/build/intermediates/annotation_processor_list/debugAndroidTest/javaPreCompileDebugAndroidTest/annotationProcessors.json +0 -1
- package/android/build/intermediates/annotation_processor_list/debugUnitTest/javaPreCompileDebugUnitTest/annotationProcessors.json +0 -1
- package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/compile_and_runtime_r_class_jar/debugAndroidTest/processDebugAndroidTestResources/R.jar +0 -0
- package/android/build/intermediates/compile_and_runtime_r_class_jar/debugUnitTest/generateDebugUnitTestStubRFile/R.jar +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -2
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +0 -10
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -7
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values/values.xml +0 -15592
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-af/values-af.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-am/values-am.xml +0 -235
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ar/values-ar.xml +0 -263
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-as/values-as.xml +0 -232
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-az/values-az.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-b+es+419/values-b+es+419.xml +0 -84
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-b+sr+Latn/values-b+sr+Latn.xml +0 -233
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-be/values-be.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-bg/values-bg.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-bn/values-bn.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-bs/values-bs.xml +0 -235
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ca/values-ca.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-cs/values-cs.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-da/values-da.xml +0 -256
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-de/values-de.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-el/values-el.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rAU/values-en-rAU.xml +0 -137
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rCA/values-en-rCA.xml +0 -137
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rGB/values-en-rGB.xml +0 -244
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rIN/values-en-rIN.xml +0 -137
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rSG/values-en-rSG.xml +0 -5
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-en-rXC/values-en-rXC.xml +0 -134
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-es/values-es.xml +0 -264
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-es-rES/values-es-rES.xml +0 -28
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-es-rUS/values-es-rUS.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-et/values-et.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-eu/values-eu.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-fa/values-fa.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-fi/values-fi.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-fil/values-fil.xml +0 -5
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-fr/values-fr.xml +0 -262
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-fr-rCA/values-fr-rCA.xml +0 -257
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-gl/values-gl.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-gu/values-gu.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-h320dp-port-v13/values-h320dp-port-v13.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-h360dp-land-v13/values-h360dp-land-v13.xml +0 -12
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-h480dp-land-v13/values-h480dp-land-v13.xml +0 -12
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-h550dp-port-v13/values-h550dp-port-v13.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-h720dp-v13/values-h720dp-v13.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-hdpi-v4/values-hdpi-v4.xml +0 -8
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-hi/values-hi.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-hr/values-hr.xml +0 -260
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-hu/values-hu.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-hy/values-hy.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-id/values-id.xml +0 -5
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-in/values-in.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-is/values-is.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-it/values-it.xml +0 -255
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-iw/values-iw.xml +0 -260
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ja/values-ja.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ka/values-ka.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-kk/values-kk.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-km/values-km.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-kn/values-kn.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ko/values-ko.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ky/values-ky.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-land/values-land.xml +0 -47
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-large-v4/values-large-v4.xml +0 -16
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ldltr-v21/values-ldltr-v21.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ldrtl-v17/values-ldrtl-v17.xml +0 -5
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-lo/values-lo.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-lt/values-lt.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-lv/values-lv.xml +0 -260
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-mk/values-mk.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ml/values-ml.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-mn/values-mn.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-mr/values-mr.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ms/values-ms.xml +0 -257
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-my/values-my.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-nb/values-nb.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ne/values-ne.xml +0 -241
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-night-v8/values-night-v8.xml +0 -60
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-nl/values-nl.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-or/values-or.xml +0 -232
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-pa/values-pa.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-pl/values-pl.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-port/values-port.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-pt/values-pt.xml +0 -160
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-pt-rBR/values-pt-rBR.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-pt-rPT/values-pt-rPT.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ro/values-ro.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ru/values-ru.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-si/values-si.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sk/values-sk.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sl/values-sl.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-small-v4/values-small-v4.xml +0 -7
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sq/values-sq.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sr/values-sr.xml +0 -260
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sv/values-sv.xml +0 -258
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sw/values-sw.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-sw600dp-v13/values-sw600dp-v13.xml +0 -27
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ta/values-ta.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-te/values-te.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-th/values-th.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-tl/values-tl.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-tr/values-tr.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-uk/values-uk.xml +0 -261
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-ur/values-ur.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-uz/values-uz.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v16/values-v16.xml +0 -7
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v17/values-v17.xml +0 -62
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v18/values-v18.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v21/values-v21.xml +0 -564
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v22/values-v22.xml +0 -15
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v23/values-v23.xml +0 -93
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v24/values-v24.xml +0 -21
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v25/values-v25.xml +0 -9
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v26/values-v26.xml +0 -18
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v28/values-v28.xml +0 -29
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v30/values-v30.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v31/values-v31.xml +0 -475
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-v34/values-v34.xml +0 -91
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-vi/values-vi.xml +0 -257
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-w320dp-land-v13/values-w320dp-land-v13.xml +0 -5
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-w360dp-port-v13/values-w360dp-port-v13.xml +0 -11
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-w400dp-port-v13/values-w400dp-port-v13.xml +0 -11
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-w600dp-land-v13/values-w600dp-land-v13.xml +0 -4
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-watch-v20/values-watch-v20.xml +0 -12
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-watch-v21/values-watch-v21.xml +0 -15
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-xlarge-v4/values-xlarge-v4.xml +0 -9
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-zh-rCN/values-zh-rCN.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-zh-rHK/values-zh-rHK.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-zh-rTW/values-zh-rTW.xml +0 -259
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merged.dir/values-zu/values-zu.xml +0 -234
- package/android/build/intermediates/incremental/debugAndroidTest/mergeDebugAndroidTestResources/merger.xml +0 -17053
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +0 -2
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
- package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/framepayments-react-native_debug.kotlin_module +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/framepayments/reactnativeframe/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debugAndroidTest/compileDebugAndroidTestJavaWithJavac/classes/com/framepayments/reactnativeframe/test/BuildConfig.class +0 -0
- package/android/build/intermediates/linked_resources_binary_format/debugAndroidTest/processDebugAndroidTestResources/linked-resources-binary-format.ap_ +0 -0
- package/android/build/intermediates/linked_resources_binary_format/debugAndroidTest/processDebugAndroidTestResources/output-metadata.json +0 -20
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -4
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -45
- package/android/build/intermediates/manifest_merge_blame_file/debugAndroidTest/processDebugAndroidTestManifest/manifest-merger-blame-debug-androidTest-report.txt +0 -558
- package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-framepayments-react-native.jar +0 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -26
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-af_values-af.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-am_values-am.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ar_values-ar.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-as_values-as.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-az_values-az.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-b+es+419_values-b+es+419.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-b+sr+Latn_values-b+sr+Latn.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-be_values-be.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-bg_values-bg.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-bn_values-bn.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-bs_values-bs.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ca_values-ca.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-cs_values-cs.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-da_values-da.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-de_values-de.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-el_values-el.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rAU_values-en-rAU.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rCA_values-en-rCA.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rGB_values-en-rGB.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rIN_values-en-rIN.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rSG_values-en-rSG.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-en-rXC_values-en-rXC.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-es-rES_values-es-rES.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-es-rUS_values-es-rUS.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-es_values-es.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-et_values-et.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-eu_values-eu.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-fa_values-fa.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-fi_values-fi.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-fil_values-fil.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-fr-rCA_values-fr-rCA.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-fr_values-fr.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-gl_values-gl.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-gu_values-gu.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-h320dp-port-v13_values-h320dp-port-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-h360dp-land-v13_values-h360dp-land-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-h480dp-land-v13_values-h480dp-land-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-h550dp-port-v13_values-h550dp-port-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-h720dp-v13_values-h720dp-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-hdpi-v4_values-hdpi-v4.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-hi_values-hi.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-hr_values-hr.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-hu_values-hu.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-hy_values-hy.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-id_values-id.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-in_values-in.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-is_values-is.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-it_values-it.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-iw_values-iw.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ja_values-ja.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ka_values-ka.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-kk_values-kk.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-km_values-km.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-kn_values-kn.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ko_values-ko.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ky_values-ky.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-land_values-land.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-large-v4_values-large-v4.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ldltr-v21_values-ldltr-v21.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ldrtl-v17_values-ldrtl-v17.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-lo_values-lo.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-lt_values-lt.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-lv_values-lv.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-mk_values-mk.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ml_values-ml.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-mn_values-mn.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-mr_values-mr.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ms_values-ms.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-my_values-my.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-nb_values-nb.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ne_values-ne.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-night-v8_values-night-v8.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-nl_values-nl.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-or_values-or.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-pa_values-pa.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-pl_values-pl.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-port_values-port.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-pt-rBR_values-pt-rBR.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-pt-rPT_values-pt-rPT.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-pt_values-pt.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ro_values-ro.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ru_values-ru.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-si_values-si.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sk_values-sk.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sl_values-sl.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-small-v4_values-small-v4.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sq_values-sq.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sr_values-sr.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sv_values-sv.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sw600dp-v13_values-sw600dp-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-sw_values-sw.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ta_values-ta.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-te_values-te.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-th_values-th.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-tl_values-tl.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-tr_values-tr.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-uk_values-uk.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-ur_values-ur.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-uz_values-uz.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v16_values-v16.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v17_values-v17.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v18_values-v18.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v21_values-v21.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v22_values-v22.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v23_values-v23.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v24_values-v24.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v25_values-v25.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v26_values-v26.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v28_values-v28.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v30_values-v30.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v31_values-v31.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-v34_values-v34.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-vi_values-vi.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-w320dp-land-v13_values-w320dp-land-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-w360dp-port-v13_values-w360dp-port-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-w400dp-port-v13_values-w400dp-port-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-w600dp-land-v13_values-w600dp-land-v13.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-watch-v20_values-watch-v20.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-watch-v21_values-watch-v21.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-xlarge-v4_values-xlarge-v4.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-zh-rCN_values-zh-rCN.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-zh-rHK_values-zh-rHK.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-zh-rTW_values-zh-rTW.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values-zu_values-zu.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugAndroidTest/mergeDebugAndroidTestResources/values_values.arsc.flat +0 -0
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/mergeDebugAndroidTestResources.json +0 -20499
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-af.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-am.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ar.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-as.json +0 -198
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-az.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-b+es+419.json +0 -45
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-b+sr+Latn.json +0 -198
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-be.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-bg.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-bn.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-bs.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ca.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-cs.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-da.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-de.json +0 -249
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-el.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rAU.json +0 -162
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rCA.json +0 -162
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rGB.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rIN.json +0 -162
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rSG.json +0 -26
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-en-rXC.json +0 -145
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-es-rES.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-es-rUS.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-es.json +0 -249
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-et.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-eu.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-fa.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-fi.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-fil.json +0 -26
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-fr-rCA.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-fr.json +0 -249
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-gl.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-gu.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-h320dp-port-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-h360dp-land-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-h480dp-land-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-h550dp-port-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-h720dp-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-hdpi-v4.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-hi.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-hr.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-hu.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-hy.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-id.json +0 -26
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-in.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-is.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-it.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-iw.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ja.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ka.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-kk.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-km.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-kn.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ko.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ky.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-land.json +0 -38
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-large-v4.json +0 -36
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ldltr-v21.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ldrtl-v17.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-lo.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-lt.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-lv.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-mk.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ml.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-mn.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-mr.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ms.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-my.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-nb.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ne.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-night-v8.json +0 -53
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-nl.json +0 -249
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-or.json +0 -198
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-pa.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-pl.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-port.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-pt-rBR.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-pt-rPT.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-pt.json +0 -162
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ro.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ru.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-si.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sk.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sl.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-small-v4.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sq.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sr.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sv.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sw.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-sw600dp-v13.json +0 -38
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ta.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-te.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-th.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-tl.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-tr.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-uk.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-ur.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-uz.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v16.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v17.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v18.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v21.json +0 -66
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v22.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v23.json +0 -95
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v24.json +0 -38
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v25.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v26.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v28.json +0 -47
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v30.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v31.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-v34.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-vi.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-w320dp-land-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-w360dp-port-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-w400dp-port-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-w600dp-land-v13.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-watch-v20.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-watch-v21.json +0 -20
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-xlarge-v4.json +0 -19
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-zh-rCN.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-zh-rHK.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-zh-rTW.json +0 -232
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values-zu.json +0 -215
- package/android/build/intermediates/merged_res_blame_folder/debugAndroidTest/mergeDebugAndroidTestResources/out/multi-v2/values.json +0 -824
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
- package/android/build/intermediates/nested_resources_validation_report/debugAndroidTest/generateDebugAndroidTestResources/nestedResourcesValidationReport.txt +0 -1
- package/android/build/intermediates/packaged_manifests/debugAndroidTest/processDebugAndroidTestManifest/AndroidManifest.xml +0 -292
- package/android/build/intermediates/packaged_manifests/debugAndroidTest/processDebugAndroidTestManifest/output-metadata.json +0 -18
- package/android/build/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +0 -10
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/framepayments-react-native_debug.kotlin_module +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameCheckoutActivity$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameCheckoutActivity$tryShowCheckout$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameCheckoutActivity.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameFlowActivity$CartItemDto.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameFlowActivity$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameFlowActivity$parseCartItems$type$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameFlowActivity.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameGooglePayActivity$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameGooglePayActivity.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameOnboardingActivity$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameOnboardingActivity$parseCapabilities$type$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameOnboardingActivity.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameRNTheme.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameSDKModule$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameSDKModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/FrameSDKPackage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/framepayments/reactnativeframe/JsonConvertersKt.class +0 -0
- package/android/build/intermediates/runtime_symbol_list/debugAndroidTest/processDebugAndroidTestResources/R.txt +0 -8219
- package/android/build/intermediates/stable_resource_ids_file/debugAndroidTest/processDebugAndroidTestResources/stableIds.txt +0 -6584
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -3
- package/android/build/intermediates/symbol_list_with_package_name/debugAndroidTest/processDebugAndroidTestResources/package-aware-r.txt +0 -6168
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/outputs/aar/framepayments-react-native-debug.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -51
- package/android/build/tmp/compileDebugAndroidTestJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/framepayments-react-native_debug.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameCheckoutActivity$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameCheckoutActivity$tryShowCheckout$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameCheckoutActivity.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameFlowActivity$CartItemDto.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameFlowActivity$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameFlowActivity$parseCartItems$type$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameFlowActivity.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameGooglePayActivity$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameGooglePayActivity.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameOnboardingActivity$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameOnboardingActivity$parseCapabilities$type$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameOnboardingActivity.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameRNTheme.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameSDKModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameSDKModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/FrameSDKPackage.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/framepayments/reactnativeframe/JsonConvertersKt.class +0 -0
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameCheckoutActivity.kt +0 -89
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameFlowActivity.kt +0 -93
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameGooglePayActivity.kt +0 -171
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameOnboardingActivity.kt +0 -76
- package/android/src/main/java/com/framepayments/reactnativeframe/FrameRNTheme.kt +0 -138
- package/android/src/main/res/values/frame_styles.xml +0 -15
- package/ios/ApplePayPresenter.swift +0 -180
- package/ios/FramePreloader.h +0 -23
- package/ios/FramePreloader.swift +0 -28
- package/ios/FrameRNTheme.swift +0 -98
- package/ios/FrameVCHelper.h +0 -12
- package/ios/FrameVCHelper.m +0 -11
- package/src/__tests__/native.test.ts +0 -346
- package/src/errors.ts +0 -61
- package/src/index.ts +0 -60
- package/src/native.ts +0 -232
- package/src/types.ts +0 -187
|
@@ -0,0 +1,886 @@
|
|
|
1
|
+
import { useCallback, useEffect, useReducer, useRef } from 'react';
|
|
2
|
+
import { client } from '../../../client';
|
|
3
|
+
import { configureEvervault, encryptWithEvervault } from '../../../evervault';
|
|
4
|
+
import { __internal as configInternal, getIpAddress } from '../../../config';
|
|
5
|
+
import { ErrorCodes, frameError } from '../../../errors';
|
|
6
|
+
import { addApplePayToOwnerFlow } from '../../../applePay';
|
|
7
|
+
import { openPlaidLink as runPlaidLink } from '../../../plaid';
|
|
8
|
+
import { PaymentAccountType, PaymentMethodType } from 'framepayments/dist/types/payment_methods';
|
|
9
|
+
import { initialOnboardingState, onboardingReducer, } from './onboardingReducer';
|
|
10
|
+
import { computeFlow, entrySubStep, nextStep as selectorNextStep, previousStep as selectorPreviousStep, validateAch, validateAddress, validateCustomerInformation, validateOtp, validatePhoneAuth, isCapabilitySatisfied, } from './onboardingSelectors';
|
|
11
|
+
export function useOnboardingViewModel({ accountId: initialAccountId, capabilities, onComplete, onCancel, }) {
|
|
12
|
+
const [state, dispatch] = useReducer(onboardingReducer, initialOnboardingState(capabilities, initialAccountId));
|
|
13
|
+
const stateRef = useRef(state);
|
|
14
|
+
stateRef.current = state;
|
|
15
|
+
const performingRef = useRef(false);
|
|
16
|
+
const completedRef = useRef(false);
|
|
17
|
+
// ─── Init: compute flow + drop into the first step on mount ───
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const flow = computeFlow(capabilities);
|
|
20
|
+
const firstStep = flow[0] ?? 'verification_welcome';
|
|
21
|
+
dispatch({
|
|
22
|
+
type: 'SET_FLOW',
|
|
23
|
+
flow,
|
|
24
|
+
currentStep: firstStep,
|
|
25
|
+
subStep: entrySubStep(firstStep, capabilities),
|
|
26
|
+
});
|
|
27
|
+
if (!initialAccountId) {
|
|
28
|
+
// No accountId → nothing to prefetch. The Verify-Welcome continue
|
|
29
|
+
// button gates on accountLoaded so we flip it immediately.
|
|
30
|
+
dispatch({ type: 'SET_ACCOUNT_LOADED', loaded: true });
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
let cancelled = false;
|
|
34
|
+
(async () => {
|
|
35
|
+
try {
|
|
36
|
+
// Pull the account profile + saved methods in parallel. Failures are
|
|
37
|
+
// non-fatal — the user can still complete the flow, just without
|
|
38
|
+
// prefill.
|
|
39
|
+
const [accountInitial, methodsResp] = await Promise.all([
|
|
40
|
+
client.sdk.accounts.get(initialAccountId).catch(() => null),
|
|
41
|
+
client.sdk.accounts
|
|
42
|
+
.getPaymentMethods(initialAccountId)
|
|
43
|
+
.catch(() => ({ data: [] })),
|
|
44
|
+
]);
|
|
45
|
+
if (cancelled)
|
|
46
|
+
return;
|
|
47
|
+
// Reconcile the merchant-requested capabilities with the account's
|
|
48
|
+
// existing capabilities. Mirrors iOS OnboardingContainerViewModel.
|
|
49
|
+
// checkExistingAccount(updateCapabilies: true):
|
|
50
|
+
// • If the account is missing any required capability, POST
|
|
51
|
+
// /capabilities to add them, then re-fetch.
|
|
52
|
+
// • For every required capability whose `currently_due` is empty,
|
|
53
|
+
// drop it from requiredCapabilities so the flow skips that step.
|
|
54
|
+
const account = await reconcileCapabilities(accountInitial, initialAccountId, capabilities);
|
|
55
|
+
if (cancelled)
|
|
56
|
+
return;
|
|
57
|
+
if (account) {
|
|
58
|
+
dispatch({ type: 'PREFILL', values: prefillFromAccount(account) });
|
|
59
|
+
const trimmed = trimCompletedCapabilities(capabilities, account);
|
|
60
|
+
if (trimmed.length !== capabilities.length) {
|
|
61
|
+
dispatch({ type: 'SET_REQUIRED_CAPABILITIES', capabilities: trimmed });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Split saved methods by kind: cards on the payment list, ACHs on
|
|
65
|
+
// the payout list. The reducer's selectors filter again on render
|
|
66
|
+
// but pre-sorting is cleaner.
|
|
67
|
+
const list = (methodsResp.data ?? []);
|
|
68
|
+
const cards = list.filter((m) => m.card != null);
|
|
69
|
+
const achs = list.filter((m) => m.ach != null);
|
|
70
|
+
dispatch({ type: 'SET_SAVED_PAYMENT_METHODS', methods: cards });
|
|
71
|
+
dispatch({ type: 'SET_SAVED_PAYOUT_METHODS', methods: achs });
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Any other unhandled failure (shouldn't happen — both promises
|
|
75
|
+
// catch internally). Flip loaded so the user isn't wedged on the
|
|
76
|
+
// welcome spinner.
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
if (!cancelled)
|
|
80
|
+
dispatch({ type: 'SET_ACCOUNT_LOADED', loaded: true });
|
|
81
|
+
}
|
|
82
|
+
})();
|
|
83
|
+
return () => {
|
|
84
|
+
cancelled = true;
|
|
85
|
+
};
|
|
86
|
+
// capabilities is the only effect input; runs once on mount.
|
|
87
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
88
|
+
}, []);
|
|
89
|
+
// Re-sync flow if requiredCapabilities changes after the initial computation
|
|
90
|
+
// (used by 8g: capabilities resolved by account-prefetch). If the new flow
|
|
91
|
+
// doesn't include the user's current step, snap them back to the first step
|
|
92
|
+
// that still exists rather than wedging on a stale step.
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
const flow = computeFlow(state.requiredCapabilities);
|
|
95
|
+
const currentStep = flow.includes(stateRef.current.currentStep)
|
|
96
|
+
? stateRef.current.currentStep
|
|
97
|
+
: (flow[0] ?? 'verification_welcome');
|
|
98
|
+
const subStep = currentStep === stateRef.current.currentStep
|
|
99
|
+
? stateRef.current.subStep
|
|
100
|
+
: entrySubStep(currentStep, state.requiredCapabilities);
|
|
101
|
+
dispatch({ type: 'SET_FLOW', flow, currentStep, subStep });
|
|
102
|
+
// We deliberately read currentStep/subStep via stateRef rather than as
|
|
103
|
+
// deps — using them as deps would loop on every step transition.
|
|
104
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
|
+
}, [state.requiredCapabilities]);
|
|
106
|
+
// ─── Navigation ───
|
|
107
|
+
const advance = useCallback(() => {
|
|
108
|
+
const current = stateRef.current;
|
|
109
|
+
const target = selectorNextStep(current);
|
|
110
|
+
if (!target)
|
|
111
|
+
return;
|
|
112
|
+
dispatch({ type: 'GO_TO_STEP', step: target, subStep: entrySubStep(target, current.requiredCapabilities) });
|
|
113
|
+
}, []);
|
|
114
|
+
const back = useCallback(() => {
|
|
115
|
+
const current = stateRef.current;
|
|
116
|
+
const target = selectorPreviousStep(current);
|
|
117
|
+
if (!target)
|
|
118
|
+
return;
|
|
119
|
+
dispatch({ type: 'GO_TO_STEP', step: target, subStep: entrySubStep(target, current.requiredCapabilities) });
|
|
120
|
+
}, []);
|
|
121
|
+
const goTo = useCallback((step, subStep) => {
|
|
122
|
+
dispatch({ type: 'GO_TO_STEP', step, subStep });
|
|
123
|
+
}, []);
|
|
124
|
+
const cancel = useCallback(() => {
|
|
125
|
+
if (completedRef.current)
|
|
126
|
+
return;
|
|
127
|
+
completedRef.current = true;
|
|
128
|
+
onCancel();
|
|
129
|
+
}, [onCancel]);
|
|
130
|
+
// The completed result returns the accountId, not the payment-method id.
|
|
131
|
+
// Reads from stateRef so the value reflects auto-created accounts (the
|
|
132
|
+
// empty-account-create path in sendOtp dispatches SET_ACCOUNT_ID before the
|
|
133
|
+
// user reaches the final step).
|
|
134
|
+
const complete = useCallback(() => {
|
|
135
|
+
if (completedRef.current)
|
|
136
|
+
return;
|
|
137
|
+
completedRef.current = true;
|
|
138
|
+
onComplete({ status: 'completed', accountId: stateRef.current.accountId ?? undefined });
|
|
139
|
+
}, [onComplete]);
|
|
140
|
+
// ─── Helper for guarded async actions ───
|
|
141
|
+
const guardedAction = useCallback(async (fn) => {
|
|
142
|
+
if (performingRef.current) {
|
|
143
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'An action is already in flight.');
|
|
144
|
+
}
|
|
145
|
+
performingRef.current = true;
|
|
146
|
+
dispatch({ type: 'SET_PERFORMING_ACTION', value: true });
|
|
147
|
+
try {
|
|
148
|
+
return await fn();
|
|
149
|
+
}
|
|
150
|
+
finally {
|
|
151
|
+
performingRef.current = false;
|
|
152
|
+
dispatch({ type: 'SET_PERFORMING_ACTION', value: false });
|
|
153
|
+
}
|
|
154
|
+
}, []);
|
|
155
|
+
// ─── Personal information ───
|
|
156
|
+
const sendOtp = useCallback(async (opts) => {
|
|
157
|
+
return guardedAction(async () => {
|
|
158
|
+
const current = stateRef.current;
|
|
159
|
+
const errors = validatePhoneAuth(current);
|
|
160
|
+
if (Object.keys(errors).length > 0) {
|
|
161
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors });
|
|
162
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Resolve the highlighted fields and try again.');
|
|
163
|
+
}
|
|
164
|
+
const forceFrameOtp = opts?.forceFrameOtp === true;
|
|
165
|
+
// Account creation: empty-individual account if none exists, then OTP.
|
|
166
|
+
// Mirrors iOS OnboardingContainerViewModel.createEmptyIndividualAccount
|
|
167
|
+
// (lines 169-188): empty name + email, phone {number, country_code},
|
|
168
|
+
// birthdate when present, plus termsOfService + capabilities on the
|
|
169
|
+
// CreateAccountRequest. The SDK's CreateAccountProfile type requires
|
|
170
|
+
// name + email at the type level, but the backend treats them as
|
|
171
|
+
// optional on initial create — we use a runtime-safe cast here and
|
|
172
|
+
// assert the response shape ourselves.
|
|
173
|
+
let accountId = current.accountId;
|
|
174
|
+
if (!accountId) {
|
|
175
|
+
const e164 = `+${current.phoneCountry.callingCode}${current.phoneNumber.replace(/\D+/g, '')}`;
|
|
176
|
+
const dob = current.dobYear && current.dobMonth && current.dobDay
|
|
177
|
+
? `${current.dobYear}-${current.dobMonth.padStart(2, '0')}-${current.dobDay.padStart(2, '0')}`
|
|
178
|
+
: undefined;
|
|
179
|
+
const createParams = {
|
|
180
|
+
type: 'individual',
|
|
181
|
+
terms_of_service: buildTosPayload(current.termsOfServiceToken),
|
|
182
|
+
capabilities: [...current.requiredCapabilities],
|
|
183
|
+
profile: {
|
|
184
|
+
individual: {
|
|
185
|
+
name: { first_name: '', last_name: '' },
|
|
186
|
+
email: '',
|
|
187
|
+
phone: { number: e164, country_code: current.phoneCountry.callingCode },
|
|
188
|
+
...(dob ? { birthdate: dob } : {}),
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
const account = await client.sdk.accounts.create(createParams);
|
|
193
|
+
if (!account?.id) {
|
|
194
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Frame returned no account id.');
|
|
195
|
+
}
|
|
196
|
+
accountId = account.id;
|
|
197
|
+
dispatch({ type: 'SET_ACCOUNT_ID', id: accountId });
|
|
198
|
+
}
|
|
199
|
+
const e164 = `+${current.phoneCountry.callingCode}${current.phoneNumber.replace(/\D+/g, '')}`;
|
|
200
|
+
const verification = await client.sdk.phoneVerifications.create(accountId, { phone_number: e164 });
|
|
201
|
+
// When the Prove branch has already failed, force the Frame OTP path
|
|
202
|
+
// even if the backend still returns a prove_auth_token. Prevents the
|
|
203
|
+
// user from being stuck in a loading_prove → otp_for_prove cycle.
|
|
204
|
+
const proveAuthToken = forceFrameOtp
|
|
205
|
+
? null
|
|
206
|
+
: (verification.prove_auth_token ?? null);
|
|
207
|
+
const ui = proveAuthToken ? 'loading_prove' : 'otp_frame_api';
|
|
208
|
+
dispatch({
|
|
209
|
+
type: 'SET_VERIFY_PHONE',
|
|
210
|
+
verificationId: verification.id,
|
|
211
|
+
proveAuthToken,
|
|
212
|
+
ui,
|
|
213
|
+
});
|
|
214
|
+
dispatch({ type: 'SET_SUB_STEP', subStep: 'verify_phone' });
|
|
215
|
+
});
|
|
216
|
+
}, [guardedAction]);
|
|
217
|
+
// Re-fetch the account after phone OTP succeeds so any server-side
|
|
218
|
+
// enrichment (Prove identity prefill, capability state shifts) is reflected
|
|
219
|
+
// in the customer-information screen the user is about to see. Matches the
|
|
220
|
+
// iOS SDK's checkExistingAccount() call from sendOTPVerification (Prove
|
|
221
|
+
// success) and confirmTwilioOTP (Twilio success). Non-fatal on failure —
|
|
222
|
+
// the user can still complete the flow with mount-time prefill.
|
|
223
|
+
const refreshAccountAfterPhoneVerify = useCallback(async () => {
|
|
224
|
+
const accountId = stateRef.current.accountId;
|
|
225
|
+
if (!accountId)
|
|
226
|
+
return;
|
|
227
|
+
const account = await client.sdk.accounts.get(accountId).catch(() => null);
|
|
228
|
+
if (!account)
|
|
229
|
+
return;
|
|
230
|
+
dispatch({ type: 'PREFILL', values: prefillFromAccount(account) });
|
|
231
|
+
}, []);
|
|
232
|
+
const confirmFrameOtp = useCallback(async () => {
|
|
233
|
+
return guardedAction(async () => {
|
|
234
|
+
const current = stateRef.current;
|
|
235
|
+
const errors = validateOtp(current);
|
|
236
|
+
if (Object.keys(errors).length > 0) {
|
|
237
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors });
|
|
238
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Enter the 6-digit code.');
|
|
239
|
+
}
|
|
240
|
+
if (!current.accountId || !current.pendingVerificationId) {
|
|
241
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Phone verification session expired. Restart the step.');
|
|
242
|
+
}
|
|
243
|
+
await client.sdk.phoneVerifications.confirm(current.accountId, current.pendingVerificationId, { code: current.otpCode });
|
|
244
|
+
await refreshAccountAfterPhoneVerify();
|
|
245
|
+
dispatch({ type: 'SET_SUB_STEP', subStep: 'customer_information' });
|
|
246
|
+
});
|
|
247
|
+
}, [guardedAction, refreshAccountAfterPhoneVerify]);
|
|
248
|
+
const submitCustomerInformation = useCallback(async () => {
|
|
249
|
+
return guardedAction(async () => {
|
|
250
|
+
const current = stateRef.current;
|
|
251
|
+
const errors = validateCustomerInformation(current);
|
|
252
|
+
if (Object.keys(errors).length > 0) {
|
|
253
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors });
|
|
254
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Resolve the highlighted fields and try again.');
|
|
255
|
+
}
|
|
256
|
+
if (!current.accountId) {
|
|
257
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present. Restart onboarding.');
|
|
258
|
+
}
|
|
259
|
+
// Field names match the backend's AccountProfileIndividual shape as
|
|
260
|
+
// observed on the wire (also matches iOS UpdateIndividualAccount):
|
|
261
|
+
// name.{first_name,last_name}, email, phone.{number,country_code},
|
|
262
|
+
// address.{line_1,line_2,city,state,country,postal_code},
|
|
263
|
+
// birthdate ('YYYY-MM-DD'), ssn_last_four (4-digit string).
|
|
264
|
+
const phoneE164 = `+${current.phoneCountry.callingCode}${current.phoneNumber.replace(/\D+/g, '')}`;
|
|
265
|
+
const individual = {
|
|
266
|
+
name: {
|
|
267
|
+
first_name: current.customerFirstName,
|
|
268
|
+
last_name: current.customerLastName,
|
|
269
|
+
},
|
|
270
|
+
email: current.customerEmail,
|
|
271
|
+
phone: { number: phoneE164, country_code: current.phoneCountry.callingCode },
|
|
272
|
+
birthdate: `${current.dobYear}-${current.dobMonth.padStart(2, '0')}-${current.dobDay.padStart(2, '0')}`,
|
|
273
|
+
ssn_last_four: current.ssnLast4 || undefined,
|
|
274
|
+
address: {
|
|
275
|
+
line_1: current.address.line1,
|
|
276
|
+
line_2: current.address.line2 || undefined,
|
|
277
|
+
city: current.address.city,
|
|
278
|
+
state: current.address.state,
|
|
279
|
+
country: current.address.country,
|
|
280
|
+
postal_code: current.address.postalCode,
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
// Mirrors iOS updateExistingIndividualAccount
|
|
284
|
+
// (OnboardingContainerViewModel.swift:210):
|
|
285
|
+
// termsOfService: existingAccountHasTOS ? nil : termsOfService
|
|
286
|
+
// The JS SDK's UpdateAccountParams type doesn't declare terms_of_service,
|
|
287
|
+
// but the backend accepts it (iOS sends it on every update where TOS
|
|
288
|
+
// hasn't been accepted yet). Runtime cast preserves type-safety on the
|
|
289
|
+
// rest of the payload.
|
|
290
|
+
const updateBody = { profile: { individual } };
|
|
291
|
+
if (!current.existingAccountHasTOS) {
|
|
292
|
+
const tos = buildTosPayload(current.termsOfServiceToken);
|
|
293
|
+
if (tos)
|
|
294
|
+
updateBody.terms_of_service = tos;
|
|
295
|
+
}
|
|
296
|
+
await client.sdk.accounts.update(current.accountId, updateBody);
|
|
297
|
+
// Subsequent updates within this session should not re-send the TOS
|
|
298
|
+
// payload (mirrors iOS behavior — `existingAccountHasTOS` flips after
|
|
299
|
+
// first acceptance).
|
|
300
|
+
if (!current.existingAccountHasTOS) {
|
|
301
|
+
dispatch({ type: 'SET_EXISTING_ACCOUNT_HAS_TOS', value: true });
|
|
302
|
+
}
|
|
303
|
+
// Per the flow chart, customer-information is the last sub-step of
|
|
304
|
+
// PersonalInformation unless geo_compliance is requested.
|
|
305
|
+
if (current.requiredCapabilities.includes('geo_compliance')) {
|
|
306
|
+
dispatch({ type: 'SET_SUB_STEP', subStep: 'geolocation' });
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
advance();
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
}, [guardedAction, advance]);
|
|
313
|
+
// ─── Payment methods ───
|
|
314
|
+
const loadSavedPaymentMethods = useCallback(async () => {
|
|
315
|
+
return guardedAction(async () => {
|
|
316
|
+
const current = stateRef.current;
|
|
317
|
+
if (!current.accountId)
|
|
318
|
+
return;
|
|
319
|
+
try {
|
|
320
|
+
const resp = await client.sdk.accounts.getPaymentMethods(current.accountId);
|
|
321
|
+
// Cards only on this step; ACH lives on the payout step.
|
|
322
|
+
const cards = (resp.data ?? []).filter((m) => m.card != null);
|
|
323
|
+
dispatch({ type: 'SET_SAVED_PAYMENT_METHODS', methods: cards });
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
dispatch({ type: 'SET_SAVED_PAYMENT_METHODS', methods: [] });
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
}, [guardedAction]);
|
|
330
|
+
const submitNewCard = useCallback(async (card) => {
|
|
331
|
+
return guardedAction(async () => {
|
|
332
|
+
const current = stateRef.current;
|
|
333
|
+
if (!current.accountId) {
|
|
334
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
335
|
+
}
|
|
336
|
+
const addressErrors = validateAddress(current.address, true);
|
|
337
|
+
if (Object.keys(addressErrors).length > 0) {
|
|
338
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors: addressErrors });
|
|
339
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Resolve the highlighted fields and try again.');
|
|
340
|
+
}
|
|
341
|
+
await ensureEvervaultConfigured();
|
|
342
|
+
const [encryptedPan, encryptedCvc] = await Promise.all([
|
|
343
|
+
encryptWithEvervault(card.pan),
|
|
344
|
+
encryptWithEvervault(card.cvc),
|
|
345
|
+
]);
|
|
346
|
+
const billing = {
|
|
347
|
+
line_1: current.address.line1,
|
|
348
|
+
line_2: current.address.line2 || undefined,
|
|
349
|
+
city: current.address.city,
|
|
350
|
+
state: current.address.state,
|
|
351
|
+
country: current.address.country,
|
|
352
|
+
postal_code: current.address.postalCode,
|
|
353
|
+
};
|
|
354
|
+
const pm = await client.sdk.paymentMethods.createCard({
|
|
355
|
+
type: PaymentMethodType.CARD,
|
|
356
|
+
account: current.accountId,
|
|
357
|
+
card_number: encryptedPan,
|
|
358
|
+
exp_month: card.expirationMonth,
|
|
359
|
+
exp_year: card.expirationYear,
|
|
360
|
+
cvc: encryptedCvc,
|
|
361
|
+
billing,
|
|
362
|
+
});
|
|
363
|
+
if (!pm?.id) {
|
|
364
|
+
throw frameError(ErrorCodes.PAYMENT_METHOD_FAILED, 'Frame returned no payment method id.');
|
|
365
|
+
}
|
|
366
|
+
// Mirror iOS OnboardingContainerViewModel.addNewPaymentMethod():
|
|
367
|
+
// selectedPaymentMethod = paymentMethod
|
|
368
|
+
// paymentMethods.append(paymentMethod)
|
|
369
|
+
// so the SelectPaymentMethod screen sees the new card without a
|
|
370
|
+
// round-trip back to the server.
|
|
371
|
+
dispatch({ type: 'APPEND_SAVED_PAYMENT_METHOD', method: pm });
|
|
372
|
+
dispatch({ type: 'SELECT_PAYMENT_METHOD', id: pm.id });
|
|
373
|
+
return pm.id;
|
|
374
|
+
});
|
|
375
|
+
}, [guardedAction]);
|
|
376
|
+
const addApplePayToOwner = useCallback(async () => {
|
|
377
|
+
return guardedAction(async () => {
|
|
378
|
+
const current = stateRef.current;
|
|
379
|
+
if (!current.accountId) {
|
|
380
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
381
|
+
}
|
|
382
|
+
const pmId = await addApplePayToOwnerFlow({
|
|
383
|
+
owner: { type: 'account', id: current.accountId },
|
|
384
|
+
});
|
|
385
|
+
dispatch({ type: 'SELECT_PAYMENT_METHOD', id: pmId });
|
|
386
|
+
return pmId;
|
|
387
|
+
});
|
|
388
|
+
}, [guardedAction]);
|
|
389
|
+
const updateSavedPaymentMethodBilling = useCallback(async (paymentMethodId) => {
|
|
390
|
+
return guardedAction(async () => {
|
|
391
|
+
const current = stateRef.current;
|
|
392
|
+
const addressErrors = validateAddress(current.address, true);
|
|
393
|
+
if (Object.keys(addressErrors).length > 0) {
|
|
394
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors: addressErrors });
|
|
395
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Resolve the highlighted fields and try again.');
|
|
396
|
+
}
|
|
397
|
+
await client.sdk.paymentMethods.update(paymentMethodId, {
|
|
398
|
+
billing: {
|
|
399
|
+
line_1: current.address.line1,
|
|
400
|
+
line_2: current.address.line2 || undefined,
|
|
401
|
+
city: current.address.city,
|
|
402
|
+
state: current.address.state,
|
|
403
|
+
country: current.address.country,
|
|
404
|
+
postal_code: current.address.postalCode,
|
|
405
|
+
},
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
}, [guardedAction]);
|
|
409
|
+
const start3DS = useCallback(async (paymentMethodId) => {
|
|
410
|
+
return guardedAction(async () => {
|
|
411
|
+
const verification = await client.sdk.threeDS.create({ payment_method_id: paymentMethodId });
|
|
412
|
+
if (!verification?.id) {
|
|
413
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Failed to initialize card verification. Please try again.');
|
|
414
|
+
}
|
|
415
|
+
dispatch({ type: 'SET_THREE_DS_VERIFICATION_ID', id: verification.id });
|
|
416
|
+
dispatch({ type: 'SET_SUB_STEP', subStep: 'secure_3ds' });
|
|
417
|
+
});
|
|
418
|
+
}, [guardedAction]);
|
|
419
|
+
const poll3DS = useCallback(async (opts) => {
|
|
420
|
+
const timeoutMs = opts?.timeoutMs ?? 5 * 60 * 1000; // 5 min
|
|
421
|
+
const intervalMs = opts?.intervalMs ?? 2000;
|
|
422
|
+
const signal = opts?.signal;
|
|
423
|
+
const id = stateRef.current.threeDsVerificationId;
|
|
424
|
+
if (!id) {
|
|
425
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No 3DS challenge in progress.');
|
|
426
|
+
}
|
|
427
|
+
const deadline = Date.now() + timeoutMs;
|
|
428
|
+
// No guardedAction here — the poll is intentionally long-running and
|
|
429
|
+
// shouldn't block other actions (e.g. Resend). Caller-supplied AbortSignal
|
|
430
|
+
// is how SecurePMVerificationScreen cancels the loop on unmount.
|
|
431
|
+
while (Date.now() < deadline) {
|
|
432
|
+
if (signal?.aborted) {
|
|
433
|
+
throw frameError(ErrorCodes.USER_CANCELED, '3DS poll canceled.');
|
|
434
|
+
}
|
|
435
|
+
const v = (await client.sdk.threeDS.get(id));
|
|
436
|
+
const status = v?.status ?? '';
|
|
437
|
+
if (status === 'succeeded')
|
|
438
|
+
return;
|
|
439
|
+
if (status === 'failed' || status === 'canceled') {
|
|
440
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, '3DS challenge was declined.');
|
|
441
|
+
}
|
|
442
|
+
// Abortable sleep — resolves either after intervalMs or on signal abort.
|
|
443
|
+
await new Promise((resolve) => {
|
|
444
|
+
const timer = setTimeout(() => {
|
|
445
|
+
signal?.removeEventListener('abort', onAbort);
|
|
446
|
+
resolve();
|
|
447
|
+
}, intervalMs);
|
|
448
|
+
const onAbort = () => {
|
|
449
|
+
clearTimeout(timer);
|
|
450
|
+
resolve();
|
|
451
|
+
};
|
|
452
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, '3DS challenge timed out.');
|
|
456
|
+
}, []);
|
|
457
|
+
const resend3DS = useCallback(async () => {
|
|
458
|
+
return guardedAction(async () => {
|
|
459
|
+
const current = stateRef.current;
|
|
460
|
+
if (!current.threeDsVerificationId) {
|
|
461
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No 3DS challenge in progress.');
|
|
462
|
+
}
|
|
463
|
+
await client.sdk.threeDS.resend(current.threeDsVerificationId);
|
|
464
|
+
});
|
|
465
|
+
}, [guardedAction]);
|
|
466
|
+
// ─── Payout methods ───
|
|
467
|
+
const loadSavedPayoutMethods = useCallback(async () => {
|
|
468
|
+
return guardedAction(async () => {
|
|
469
|
+
const current = stateRef.current;
|
|
470
|
+
if (!current.accountId)
|
|
471
|
+
return;
|
|
472
|
+
try {
|
|
473
|
+
const resp = await client.sdk.accounts.getPaymentMethods(current.accountId);
|
|
474
|
+
const achs = (resp.data ?? []).filter((m) => m.ach != null);
|
|
475
|
+
dispatch({ type: 'SET_SAVED_PAYOUT_METHODS', methods: achs });
|
|
476
|
+
}
|
|
477
|
+
catch {
|
|
478
|
+
dispatch({ type: 'SET_SAVED_PAYOUT_METHODS', methods: [] });
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
}, [guardedAction]);
|
|
482
|
+
const submitManualAch = useCallback(async () => {
|
|
483
|
+
return guardedAction(async () => {
|
|
484
|
+
const current = stateRef.current;
|
|
485
|
+
if (!current.accountId) {
|
|
486
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
487
|
+
}
|
|
488
|
+
const errors = validateAch(current.ach, current.address);
|
|
489
|
+
if (Object.keys(errors).length > 0) {
|
|
490
|
+
dispatch({ type: 'SET_FIELD_ERRORS', errors });
|
|
491
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Resolve the highlighted fields and try again.');
|
|
492
|
+
}
|
|
493
|
+
const billing = {
|
|
494
|
+
line_1: current.address.line1,
|
|
495
|
+
line_2: current.address.line2 || undefined,
|
|
496
|
+
city: current.address.city,
|
|
497
|
+
state: current.address.state,
|
|
498
|
+
country: 'US',
|
|
499
|
+
postal_code: current.address.postalCode,
|
|
500
|
+
};
|
|
501
|
+
const pm = await client.sdk.paymentMethods.createACH({
|
|
502
|
+
type: PaymentMethodType.ACH,
|
|
503
|
+
account: current.accountId,
|
|
504
|
+
account_type: current.ach.accountType === 'savings'
|
|
505
|
+
? PaymentAccountType.SAVINGS
|
|
506
|
+
: PaymentAccountType.CHECKING,
|
|
507
|
+
account_number: current.ach.accountNumber,
|
|
508
|
+
routing_number: current.ach.routingNumber,
|
|
509
|
+
billing,
|
|
510
|
+
});
|
|
511
|
+
if (!pm?.id) {
|
|
512
|
+
throw frameError(ErrorCodes.PAYMENT_METHOD_FAILED, 'Frame returned no payment method id.');
|
|
513
|
+
}
|
|
514
|
+
dispatch({ type: 'SELECT_PAYOUT_METHOD', id: pm.id });
|
|
515
|
+
return pm.id;
|
|
516
|
+
});
|
|
517
|
+
}, [guardedAction]);
|
|
518
|
+
const connectPlaidAccount = useCallback(async (params) => {
|
|
519
|
+
return guardedAction(async () => {
|
|
520
|
+
const current = stateRef.current;
|
|
521
|
+
if (!current.accountId) {
|
|
522
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
523
|
+
}
|
|
524
|
+
const pm = await client.sdk.paymentMethods.connectPlaidBankAccount({
|
|
525
|
+
account: current.accountId,
|
|
526
|
+
public_token: params.publicToken,
|
|
527
|
+
account_id: params.accountId,
|
|
528
|
+
institution_name: params.institutionName,
|
|
529
|
+
subtype: params.subtype,
|
|
530
|
+
});
|
|
531
|
+
if (!pm?.id) {
|
|
532
|
+
throw frameError(ErrorCodes.PAYMENT_METHOD_FAILED, 'Frame returned no payment method id.');
|
|
533
|
+
}
|
|
534
|
+
dispatch({ type: 'SELECT_PAYOUT_METHOD', id: pm.id });
|
|
535
|
+
return pm.id;
|
|
536
|
+
});
|
|
537
|
+
}, [guardedAction]);
|
|
538
|
+
// End-to-end Plaid: open the SDK, then hand the publicToken + selected
|
|
539
|
+
// account id to the Frame backend via paymentMethods.connectPlaidBankAccount.
|
|
540
|
+
// Errors from openPlaidLink (USER_CANCELED, PAYMENT_FAILED, PLAID_UNAVAILABLE)
|
|
541
|
+
// propagate up so the caller can render a toast or stay on the screen.
|
|
542
|
+
const openPlaidLink = useCallback(async () => {
|
|
543
|
+
return guardedAction(async () => {
|
|
544
|
+
const current = stateRef.current;
|
|
545
|
+
if (!current.accountId) {
|
|
546
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
547
|
+
}
|
|
548
|
+
const linkResult = await runPlaidLink({ accountId: current.accountId });
|
|
549
|
+
const pm = await client.sdk.paymentMethods.connectPlaidBankAccount({
|
|
550
|
+
account: current.accountId,
|
|
551
|
+
public_token: linkResult.publicToken,
|
|
552
|
+
account_id: linkResult.selectedAccountId,
|
|
553
|
+
institution_name: linkResult.institutionName,
|
|
554
|
+
subtype: linkResult.subtype,
|
|
555
|
+
});
|
|
556
|
+
if (!pm?.id) {
|
|
557
|
+
throw frameError(ErrorCodes.PAYMENT_METHOD_FAILED, 'Frame returned no payment method id.');
|
|
558
|
+
}
|
|
559
|
+
dispatch({ type: 'SELECT_PAYOUT_METHOD', id: pm.id });
|
|
560
|
+
return pm.id;
|
|
561
|
+
});
|
|
562
|
+
}, [guardedAction]);
|
|
563
|
+
// ─── Documents ───
|
|
564
|
+
const ensureCustomerIdentity = useCallback(async () => {
|
|
565
|
+
return guardedAction(async () => {
|
|
566
|
+
const current = stateRef.current;
|
|
567
|
+
if (current.customerIdentityId)
|
|
568
|
+
return current.customerIdentityId;
|
|
569
|
+
if (!current.accountId) {
|
|
570
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No account id present.');
|
|
571
|
+
}
|
|
572
|
+
// The customer identity verification carries the same identity payload
|
|
573
|
+
// that was just submitted to accounts.update on the CustomerInformation
|
|
574
|
+
// screen. The SDK has no createForAccount(accountId) helper, so build
|
|
575
|
+
// the full params from reducer state. Missing fields here mean the
|
|
576
|
+
// user skipped CustomerInformation — surface a clear error.
|
|
577
|
+
const e164 = `+${current.phoneCountry.callingCode}${current.phoneNumber.replace(/\D+/g, '')}`;
|
|
578
|
+
const dob = current.dobYear && current.dobMonth && current.dobDay
|
|
579
|
+
? `${current.dobYear}-${current.dobMonth.padStart(2, '0')}-${current.dobDay.padStart(2, '0')}`
|
|
580
|
+
: '';
|
|
581
|
+
const params = {
|
|
582
|
+
first_name: current.customerFirstName,
|
|
583
|
+
last_name: current.customerLastName,
|
|
584
|
+
date_of_birth: dob,
|
|
585
|
+
email: current.customerEmail,
|
|
586
|
+
phone_number: e164,
|
|
587
|
+
ssn: current.ssnLast4,
|
|
588
|
+
address: {
|
|
589
|
+
line_1: current.address.line1,
|
|
590
|
+
line_2: current.address.line2 || undefined,
|
|
591
|
+
city: current.address.city,
|
|
592
|
+
state: current.address.state,
|
|
593
|
+
country: current.address.country,
|
|
594
|
+
postal_code: current.address.postalCode,
|
|
595
|
+
},
|
|
596
|
+
};
|
|
597
|
+
if (!params.first_name ||
|
|
598
|
+
!params.last_name ||
|
|
599
|
+
!params.date_of_birth ||
|
|
600
|
+
!params.email ||
|
|
601
|
+
!params.phone_number ||
|
|
602
|
+
!params.ssn ||
|
|
603
|
+
!params.address.line_1) {
|
|
604
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Customer identity is missing required fields. Complete the customer information step before uploading documents.');
|
|
605
|
+
}
|
|
606
|
+
const identity = await client.sdk.customerIdentityVerifications.create(params);
|
|
607
|
+
if (!identity?.id) {
|
|
608
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Frame returned no customer-identity id.');
|
|
609
|
+
}
|
|
610
|
+
dispatch({ type: 'SET_CUSTOMER_IDENTITY_ID', id: identity.id });
|
|
611
|
+
return identity.id;
|
|
612
|
+
});
|
|
613
|
+
}, [guardedAction]);
|
|
614
|
+
const uploadCapturedDocuments = useCallback(async () => {
|
|
615
|
+
return guardedAction(async () => {
|
|
616
|
+
const current = stateRef.current;
|
|
617
|
+
const identityId = current.customerIdentityId;
|
|
618
|
+
if (!identityId) {
|
|
619
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Customer identity not initialized.');
|
|
620
|
+
}
|
|
621
|
+
// Map captured photos to the frame-node IdentityDocumentUpload shape.
|
|
622
|
+
// document_type is the kind of ID (drivers_license/passport/etc.) the
|
|
623
|
+
// user picked; field_name identifies which side / face within that ID.
|
|
624
|
+
const docType = current.docs.idType ?? 'drivers_license';
|
|
625
|
+
const files = [];
|
|
626
|
+
const addFile = (fieldName, photo) => {
|
|
627
|
+
files.push({
|
|
628
|
+
document_type: docType,
|
|
629
|
+
field_name: fieldName,
|
|
630
|
+
file: photo,
|
|
631
|
+
content_type: photo.type,
|
|
632
|
+
file_name: photo.name,
|
|
633
|
+
});
|
|
634
|
+
};
|
|
635
|
+
if (current.docs.front)
|
|
636
|
+
addFile('front', current.docs.front);
|
|
637
|
+
if (current.docs.back)
|
|
638
|
+
addFile('back', current.docs.back);
|
|
639
|
+
if (current.docs.selfie)
|
|
640
|
+
addFile('selfie', current.docs.selfie);
|
|
641
|
+
if (files.length === 0) {
|
|
642
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'No documents captured.');
|
|
643
|
+
}
|
|
644
|
+
await client.sdk.customerIdentityVerifications.uploadIdentityDocuments(identityId, files);
|
|
645
|
+
await client.sdk.customerIdentityVerifications.submitForVerification(identityId);
|
|
646
|
+
});
|
|
647
|
+
}, [guardedAction]);
|
|
648
|
+
// ─── Simple field setters ───
|
|
649
|
+
// Thin wrappers around dispatch so screens can stay decoupled from the
|
|
650
|
+
// reducer's action union. Identities are stable (no deps), so screens that
|
|
651
|
+
// pass them into useEffect deps don't loop.
|
|
652
|
+
const setPhoneCountry = useCallback((alpha2, callingCode) => {
|
|
653
|
+
dispatch({ type: 'SET_PHONE_COUNTRY', country: { alpha2, callingCode } });
|
|
654
|
+
}, []);
|
|
655
|
+
const setPhoneNumber = useCallback((value) => {
|
|
656
|
+
dispatch({ type: 'SET_PHONE_NUMBER', value });
|
|
657
|
+
}, []);
|
|
658
|
+
const setDob = useCallback((next) => {
|
|
659
|
+
dispatch({ type: 'SET_DOB', month: next.month, day: next.day, year: next.year });
|
|
660
|
+
}, []);
|
|
661
|
+
const setOtpCode = useCallback((value) => {
|
|
662
|
+
dispatch({ type: 'SET_OTP_CODE', value });
|
|
663
|
+
}, []);
|
|
664
|
+
// Mirrors iOS generateTermsOfServiceToken (OnboardingContainerViewModel.swift
|
|
665
|
+
// line 217-224): fire once on phone-auth screen mount to obtain a TOS token
|
|
666
|
+
// we can later attach to account.create / account.update payloads.
|
|
667
|
+
const generateTermsOfServiceToken = useCallback(async () => {
|
|
668
|
+
if (stateRef.current.termsOfServiceToken)
|
|
669
|
+
return;
|
|
670
|
+
try {
|
|
671
|
+
const response = await client.sdk.termsOfService.createToken();
|
|
672
|
+
if (response?.token) {
|
|
673
|
+
dispatch({ type: 'SET_TERMS_OF_SERVICE_TOKEN', token: response.token });
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
catch {
|
|
677
|
+
// iOS silently `print(error)` and proceeds — the account create/update
|
|
678
|
+
// still goes through, just without the token. Match that behavior.
|
|
679
|
+
}
|
|
680
|
+
}, []);
|
|
681
|
+
const setCustomerFirstName = useCallback((value) => {
|
|
682
|
+
dispatch({ type: 'SET_CUSTOMER_FIRST_NAME', value });
|
|
683
|
+
}, []);
|
|
684
|
+
const setCustomerLastName = useCallback((value) => {
|
|
685
|
+
dispatch({ type: 'SET_CUSTOMER_LAST_NAME', value });
|
|
686
|
+
}, []);
|
|
687
|
+
const setCustomerEmail = useCallback((value) => {
|
|
688
|
+
dispatch({ type: 'SET_CUSTOMER_EMAIL', value });
|
|
689
|
+
}, []);
|
|
690
|
+
const setSsnLast4 = useCallback((value) => {
|
|
691
|
+
dispatch({ type: 'SET_SSN_LAST4', value });
|
|
692
|
+
}, []);
|
|
693
|
+
const setAddressField = useCallback((field, value) => {
|
|
694
|
+
dispatch({ type: 'SET_ADDRESS_FIELD', field, value });
|
|
695
|
+
}, []);
|
|
696
|
+
const setVerifyPhoneUi = useCallback((ui) => {
|
|
697
|
+
dispatch({ type: 'SET_VERIFY_PHONE_UI', ui });
|
|
698
|
+
}, []);
|
|
699
|
+
const setAchField = useCallback((field, value) => {
|
|
700
|
+
dispatch({ type: 'SET_ACH_FIELD', field, value });
|
|
701
|
+
}, []);
|
|
702
|
+
const setAchAccountType = useCallback((value) => {
|
|
703
|
+
dispatch({ type: 'SET_ACH_ACCOUNT_TYPE', value });
|
|
704
|
+
}, []);
|
|
705
|
+
const setAchManualMode = useCallback((value) => {
|
|
706
|
+
dispatch({ type: 'SET_ACH_MANUAL_MODE', value });
|
|
707
|
+
}, []);
|
|
708
|
+
// Surface adjacent helpers used by 8g via the returned shape.
|
|
709
|
+
// (Kept on the object so screens have one canonical access point.)
|
|
710
|
+
return {
|
|
711
|
+
state,
|
|
712
|
+
dispatch,
|
|
713
|
+
advance,
|
|
714
|
+
back,
|
|
715
|
+
goTo,
|
|
716
|
+
cancel,
|
|
717
|
+
complete,
|
|
718
|
+
setPhoneCountry,
|
|
719
|
+
setPhoneNumber,
|
|
720
|
+
setDob,
|
|
721
|
+
setOtpCode,
|
|
722
|
+
generateTermsOfServiceToken,
|
|
723
|
+
setCustomerFirstName,
|
|
724
|
+
setCustomerLastName,
|
|
725
|
+
setCustomerEmail,
|
|
726
|
+
setSsnLast4,
|
|
727
|
+
setAddressField,
|
|
728
|
+
setVerifyPhoneUi,
|
|
729
|
+
setAchField,
|
|
730
|
+
setAchAccountType,
|
|
731
|
+
setAchManualMode,
|
|
732
|
+
sendOtp,
|
|
733
|
+
confirmFrameOtp,
|
|
734
|
+
refreshAccountAfterPhoneVerify,
|
|
735
|
+
submitCustomerInformation,
|
|
736
|
+
loadSavedPaymentMethods,
|
|
737
|
+
submitNewCard,
|
|
738
|
+
addApplePayToOwner,
|
|
739
|
+
updateSavedPaymentMethodBilling,
|
|
740
|
+
start3DS,
|
|
741
|
+
poll3DS,
|
|
742
|
+
resend3DS,
|
|
743
|
+
loadSavedPayoutMethods,
|
|
744
|
+
submitManualAch,
|
|
745
|
+
connectPlaidAccount,
|
|
746
|
+
openPlaidLink,
|
|
747
|
+
ensureCustomerIdentity,
|
|
748
|
+
uploadCapturedDocuments,
|
|
749
|
+
};
|
|
750
|
+
}
|
|
751
|
+
// Re-exposed for advanced consumers (e.g. tests + 8g prefetch logic).
|
|
752
|
+
export { isCapabilitySatisfied };
|
|
753
|
+
function readAccountCapabilities(account) {
|
|
754
|
+
const raw = account?.capabilities;
|
|
755
|
+
if (!Array.isArray(raw))
|
|
756
|
+
return [];
|
|
757
|
+
return raw.filter((c) => {
|
|
758
|
+
return typeof c === 'object' && c !== null && typeof c.name === 'string';
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
// Mirrors iOS OnboardingContainerViewModel.checkExistingAccount(updateCapabilies:
|
|
762
|
+
// true): if the account's capabilities aren't a superset of what the merchant
|
|
763
|
+
// asked for, POST the missing ones via the Capabilities API and re-fetch the
|
|
764
|
+
// account so we see the resulting `currently_due` state. Idempotent — returns
|
|
765
|
+
// the (possibly refreshed) account or the original if nothing was missing.
|
|
766
|
+
async function reconcileCapabilities(account, accountId, required) {
|
|
767
|
+
if (!account)
|
|
768
|
+
return account;
|
|
769
|
+
const present = new Set(readAccountCapabilities(account).map((c) => c.name));
|
|
770
|
+
const missing = required.filter((r) => !present.has(r));
|
|
771
|
+
if (missing.length === 0)
|
|
772
|
+
return account;
|
|
773
|
+
try {
|
|
774
|
+
await client.sdk.capabilities.request(accountId, { capabilities: [...missing] });
|
|
775
|
+
const refreshed = await client.sdk.accounts.get(accountId).catch(() => null);
|
|
776
|
+
return refreshed ?? account;
|
|
777
|
+
}
|
|
778
|
+
catch {
|
|
779
|
+
// Non-fatal — fall back to the original account so the user can still
|
|
780
|
+
// attempt the flow. Server-side validation will catch any unmet caps.
|
|
781
|
+
return account;
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
// For each required capability the account already has with an empty
|
|
785
|
+
// `currently_due`, remove it from the merchant's requested list. The mount
|
|
786
|
+
// effect's downstream `SET_REQUIRED_CAPABILITIES` dispatch triggers the
|
|
787
|
+
// existing `state.requiredCapabilities` effect (see ~line 182) which
|
|
788
|
+
// recomputes the flow.
|
|
789
|
+
function trimCompletedCapabilities(required, account) {
|
|
790
|
+
const rows = readAccountCapabilities(account);
|
|
791
|
+
const completed = new Set(rows
|
|
792
|
+
.filter((c) => Array.isArray(c.currently_due) && c.currently_due.length === 0)
|
|
793
|
+
.map((c) => c.name));
|
|
794
|
+
return required.filter((r) => !completed.has(r));
|
|
795
|
+
}
|
|
796
|
+
// Map Frame's Account.profile (a Record<string, unknown>) into the reducer's
|
|
797
|
+
// PREFILL partial. Best-effort — every field stays empty when the profile is
|
|
798
|
+
// missing or shaped differently than expected.
|
|
799
|
+
function prefillFromAccount(account) {
|
|
800
|
+
const out = { accountId: account.id };
|
|
801
|
+
// Mirrors iOS OnboardingContainerViewModel.checkExistingAccount:102 —
|
|
802
|
+
// `existingAccountHasTOS = account?.termsOfService?.acceptedAt != nil`.
|
|
803
|
+
// updateExistingIndividualAccount uses this to skip re-attaching the TOS
|
|
804
|
+
// payload on subsequent updates.
|
|
805
|
+
out.existingAccountHasTOS = account.terms_of_service?.accepted_at != null;
|
|
806
|
+
const profile = (account.profile ?? {});
|
|
807
|
+
const individual = (profile.individual ?? profile);
|
|
808
|
+
if (!individual)
|
|
809
|
+
return out;
|
|
810
|
+
const name = individual.name;
|
|
811
|
+
if (name) {
|
|
812
|
+
if (typeof name.first_name === 'string')
|
|
813
|
+
out.customerFirstName = name.first_name;
|
|
814
|
+
if (typeof name.last_name === 'string')
|
|
815
|
+
out.customerLastName = name.last_name;
|
|
816
|
+
}
|
|
817
|
+
// Email can land in several places depending on enrichment source (Prove vs.
|
|
818
|
+
// manual). Try individual.email first (matches iOS IndividualAccount.email
|
|
819
|
+
// path), then fall back to profile.email and top-level account.email.
|
|
820
|
+
const emailCandidate = (typeof individual.email === 'string' && individual.email) ||
|
|
821
|
+
(typeof profile.email === 'string' && profile.email) ||
|
|
822
|
+
(typeof account.email === 'string' && account.email) ||
|
|
823
|
+
null;
|
|
824
|
+
if (emailCandidate)
|
|
825
|
+
out.customerEmail = emailCandidate;
|
|
826
|
+
if (typeof individual.ssn_last_four === 'string')
|
|
827
|
+
out.ssnLast4 = individual.ssn_last_four;
|
|
828
|
+
// Backend returns `birthdate` (verified empirically + matches iOS
|
|
829
|
+
// IndividualAccount.birthdate). Earlier code read `date_of_birth`, which
|
|
830
|
+
// never matched — DOB only appeared prefilled because the user typed it on
|
|
831
|
+
// the auth-phone step. Accept `date_of_birth` too just in case a future
|
|
832
|
+
// schema migration renames it.
|
|
833
|
+
const birthdate = (typeof individual.birthdate === 'string' && individual.birthdate) ||
|
|
834
|
+
(typeof individual.date_of_birth === 'string' && individual.date_of_birth) ||
|
|
835
|
+
null;
|
|
836
|
+
if (birthdate) {
|
|
837
|
+
// Stored as 'YYYY-MM-DD' per the backend convention; split into the
|
|
838
|
+
// three reducer fields.
|
|
839
|
+
const [y, m, d] = birthdate.split('-');
|
|
840
|
+
if (y && m && d) {
|
|
841
|
+
out.dobYear = y;
|
|
842
|
+
out.dobMonth = m;
|
|
843
|
+
out.dobDay = d;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
const address = individual.address;
|
|
847
|
+
if (address) {
|
|
848
|
+
out.address = {
|
|
849
|
+
line1: typeof address.line_1 === 'string' ? address.line_1 : '',
|
|
850
|
+
line2: typeof address.line_2 === 'string' ? address.line_2 : '',
|
|
851
|
+
city: typeof address.city === 'string' ? address.city : '',
|
|
852
|
+
state: typeof address.state === 'string' ? address.state : '',
|
|
853
|
+
country: typeof address.country === 'string' ? address.country : 'US',
|
|
854
|
+
postalCode: typeof address.postal_code === 'string' ? address.postal_code : '',
|
|
855
|
+
};
|
|
856
|
+
}
|
|
857
|
+
return out;
|
|
858
|
+
}
|
|
859
|
+
// Mirrors iOS `FrameObjects.AccountTermsOfService(token:, ipAddress:, acceptedAt:)`
|
|
860
|
+
// (used in OnboardingContainerViewModel.swift:156, 177, 209). iOS sends the
|
|
861
|
+
// struct on every account create / update where TOS hasn't been accepted yet,
|
|
862
|
+
// even when individual fields are nil. We do the same — the backend's
|
|
863
|
+
// `TermsOfService` schema lets every field be optional, and `accepted_at` is
|
|
864
|
+
// always present because we set it at call-time.
|
|
865
|
+
function buildTosPayload(token) {
|
|
866
|
+
const acceptedAt = new Date().toISOString();
|
|
867
|
+
const ipAddress = getIpAddress();
|
|
868
|
+
return {
|
|
869
|
+
...(token ? { token } : {}),
|
|
870
|
+
...(ipAddress ? { ip_address: ipAddress } : {}),
|
|
871
|
+
accepted_at: acceptedAt,
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
async function ensureEvervaultConfigured() {
|
|
875
|
+
const cached = configInternal.getEvervaultConfiguration();
|
|
876
|
+
if (cached) {
|
|
877
|
+
await configureEvervault(cached.teamId, cached.appId);
|
|
878
|
+
return;
|
|
879
|
+
}
|
|
880
|
+
const config = await client.sdk.configuration.getEvervaultConfiguration();
|
|
881
|
+
if (!config.team_id || !config.app_id) {
|
|
882
|
+
throw frameError(ErrorCodes.PAYMENT_FAILED, 'Evervault configuration is unavailable.');
|
|
883
|
+
}
|
|
884
|
+
configInternal.setEvervaultConfiguration({ teamId: config.team_id, appId: config.app_id });
|
|
885
|
+
await configureEvervault(config.team_id, config.app_id);
|
|
886
|
+
}
|