React Native SDK Changelog
All notable changes to this project are documented here. Follows Keep a Changelog and Semantic Versioning.
[2.1.10] - 2026-09-11
Added
- Enabled third-party cookies on Android
DeunaWebView(thirdPartyCookiesEnabled) to support redirect and authentication flows requiring session cookies.
Fixed
- Implemented state-based process-wide mutex in
ExternalUrlHelperto strictly prevent duplicate external URL openings (3DS, modal, or in-app browser) while an external view is actively open. - Preserved asynchronous
AppStateclose detection forIN_APP_BROWSER(Chrome Custom Tabs) on Android while enforcing process-wide mutex. - Routed
WebViewEventType.openExternalUrlandWebViewEventType.redirectthroughnotifyOpenExternalUrlto ensure debounce and mutex checks are applied consistently. - Fixed
ExternalUrlControllerto handlecloseExternalUrlevents sent from external WebViews. - Added
resetReopenGuardcleanup inDeunaSDK.setWidgetControllerto prevent orphaned static mutex states across new widget initializations. - Moved
Opening external URLlog to execute only aftercanOpenUrlguard passes.
[2.1.9] - 2026-09-07
Removed
- Removed
deuna-web-sdkgit submodule andcopy-types.shscript to prevent CI build desyncs. - Embedded and directly versioned
src/types/within the repository.
[2.1.8] - 2026-09-07
Added
- Added
onOpenWindowprop forwarding toDeunaWidget. - Added
warnmethod toDeunaLogsand exportedDeunaLogs.
Fixed
- Fixed window popups blocking in iOS WebView by enabling
javaScriptCanOpenWindowsAutomatically. - Fixed trailing slashes in widget URLs when constructing controllers.
- Fixed duplicate URL openings and redirection loops via unified reopen guard in
ExternalUrlHelper.
Changed
- Centralized SDK logging into
DeunaLogsand removed redundant console logs across SDK and example apps.
[2.1.7] - 2026-08-11
Fixed
- Fixed
ELEMENTS_URLSimport path invaultApi.tsto referenceconstantsinstead ofbuildElementsLink.
[2.1.6] - 2026-08-06
Added
- Added
errorApmMissingReferencetoCheckoutEventTypeenum. PaymentWidgetControllernow firesonErrorwithPaymentErrorType.paymentErrorwhen an APM reference fails to generate or display (generation_failed/display_failed).
[2.1.4] - 2026-06-10
Added
- Added
paymentMethodsEnteredandpaymentMethodsStartedto theElementsEventenum.
Fixed
initPaymentwidget:userInfois now always forwarded regardless of whetheruserTokenis present, allowing both fields simultaneously.
[2.1.0] - 2026-05-12
BREAKING CHANGE — Native Wallet Support (Google Pay & Apple Pay)
Version 2.1.0 introduces native Google Pay and Apple Pay support via a new native module (DeunaWalletsModule). This requires additional setup steps that did not exist in previous versions.
What's new
sdk.getWalletsAvailable()— queries the vault API and filters by what the device actually supports natively.sdk.initElements()— launches the native Google Pay or Apple Pay payment sheet directly, without a WebView.
Migration Guide
React Native CLI — run pod install after upgrading:
npm install @deuna/[email protected]
cd ios && pod installExpo (managed workflow) — re-run prebuild after upgrading:
npm install @deuna/[email protected]
npx expo prebuild
If you skip these steps,getWalletsAvailable()will always return[]andinitElements()will throw.
Added
getWalletsAvailable(params)— returns native wallet providers available on the current device for the given order.initElements(params)— launches the native wallet payment sheet (Google Pay or Apple Pay) and handles tokenization.- Native iOS module (
DeunaWalletsModule) implemented asRCTEventEmitter— linked automatically via React Native autolinking. - Native Android module (
DeunaWalletsModule) implemented asReactContextBaseJavaModule— linked automatically via React Native autolinking. - Expo config plugin (
withAndroidDepsCompat) automatically patchesapp/build.gradleduringexpo prebuild.
Fixed
- Android:
allowedCardNetworksincorrectly cast toString, causing crash on Google Pay launch. - Android:
ObjectAlreadyConsumedExceptioncrash on Google Pay success —WritableMapconsumed twice. - iOS: Removed redundant conditional cast warning in success callback logging.
[2.0.5] - 2026-04-28
Fixed
- Fixed race condition for InAppBrowser close listener causing WebView to close before external URL was closed.
[2.0.4] - 2026-03-26
Fixed
- Improved iOS in-app browser close handling by marking browser as closed after returning from
openUrl.