@deuna/react-native-sdk 2.0.4 → 2.1.0-beta.1

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.
Files changed (116) hide show
  1. package/DeunaWalletsModule.podspec +19 -0
  2. package/README.md +141 -2
  3. package/android/build.gradle +43 -0
  4. package/android/src/main/AndroidManifest.xml +8 -0
  5. package/android/src/main/java/com/deuna/wallets/DeunaWalletsModule.kt +103 -0
  6. package/app.plugin.js +1 -0
  7. package/expo-module.config.json +10 -0
  8. package/ios/DeunaWalletsModule.swift +56 -0
  9. package/lib/module/DeunaSDK.js +44 -3
  10. package/lib/module/DeunaSDK.js.map +1 -1
  11. package/lib/module/components/DeunaWebView.js +3 -0
  12. package/lib/module/components/DeunaWebView.js.map +1 -1
  13. package/lib/module/components/DeunaWidget.js +1 -0
  14. package/lib/module/components/DeunaWidget.js.map +1 -1
  15. package/lib/module/controllers/BaseWebViewController.js +17 -4
  16. package/lib/module/controllers/BaseWebViewController.js.map +1 -1
  17. package/lib/module/controllers/ElementsWidgetController.js +9 -1
  18. package/lib/module/controllers/ElementsWidgetController.js.map +1 -1
  19. package/lib/module/helpers/ExternalUrlHelper.js +4 -1
  20. package/lib/module/helpers/ExternalUrlHelper.js.map +1 -1
  21. package/lib/module/index.js +1 -0
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/plugin/index.js +25 -0
  24. package/lib/module/plugin/index.js.map +1 -0
  25. package/lib/module/plugin/withAndroidGooglePay.js +20 -0
  26. package/lib/module/plugin/withAndroidGooglePay.js.map +1 -0
  27. package/lib/module/plugin/withIosApplePay.js +10 -0
  28. package/lib/module/plugin/withIosApplePay.js.map +1 -0
  29. package/lib/module/plugin/withIosFmtFix.js +34 -0
  30. package/lib/module/plugin/withIosFmtFix.js.map +1 -0
  31. package/lib/module/types/base.js +16 -0
  32. package/lib/module/types/base.js.map +1 -1
  33. package/lib/module/types/envs.js +12 -0
  34. package/lib/module/types/envs.js.map +1 -1
  35. package/lib/module/wallets/WalletModule.js +218 -0
  36. package/lib/module/wallets/WalletModule.js.map +1 -0
  37. package/lib/module/wallets/index.js +4 -0
  38. package/lib/module/wallets/index.js.map +1 -0
  39. package/lib/module/wallets/tokenize/applePay.js +24 -0
  40. package/lib/module/wallets/tokenize/applePay.js.map +1 -0
  41. package/lib/module/wallets/tokenize/googlePay.js +24 -0
  42. package/lib/module/wallets/tokenize/googlePay.js.map +1 -0
  43. package/lib/module/wallets/tokenize/index.js +12 -0
  44. package/lib/module/wallets/tokenize/index.js.map +1 -0
  45. package/lib/module/wallets/types.js +4 -0
  46. package/lib/module/wallets/types.js.map +1 -0
  47. package/lib/module/wallets/vaultApi.js +121 -0
  48. package/lib/module/wallets/vaultApi.js.map +1 -0
  49. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +12 -3
  50. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
  51. package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.d.ts +1 -0
  52. package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.d.ts.map +1 -1
  53. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +7 -0
  54. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
  55. package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts.map +1 -1
  56. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts +1 -0
  57. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts.map +1 -1
  58. package/lib/typescript/deuna-sdk-react-native/src/index.d.ts +1 -0
  59. package/lib/typescript/deuna-sdk-react-native/src/index.d.ts.map +1 -1
  60. package/lib/typescript/deuna-sdk-react-native/src/plugin/index.d.ts +8 -0
  61. package/lib/typescript/deuna-sdk-react-native/src/plugin/index.d.ts.map +1 -0
  62. package/lib/typescript/deuna-sdk-react-native/src/plugin/withAndroidGooglePay.d.ts +3 -0
  63. package/lib/typescript/deuna-sdk-react-native/src/plugin/withAndroidGooglePay.d.ts.map +1 -0
  64. package/lib/typescript/deuna-sdk-react-native/src/plugin/withIosApplePay.d.ts +5 -0
  65. package/lib/typescript/deuna-sdk-react-native/src/plugin/withIosApplePay.d.ts.map +1 -0
  66. package/lib/typescript/deuna-sdk-react-native/src/plugin/withIosFmtFix.d.ts +3 -0
  67. package/lib/typescript/deuna-sdk-react-native/src/plugin/withIosFmtFix.d.ts.map +1 -0
  68. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +78 -14
  69. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts.map +1 -1
  70. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts +12 -0
  71. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts.map +1 -1
  72. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts +1 -1
  73. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts.map +1 -1
  74. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts +11 -0
  75. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts.map +1 -1
  76. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +3 -3
  77. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -1
  78. package/lib/typescript/deuna-sdk-react-native/src/wallets/WalletModule.d.ts +29 -0
  79. package/lib/typescript/deuna-sdk-react-native/src/wallets/WalletModule.d.ts.map +1 -0
  80. package/lib/typescript/deuna-sdk-react-native/src/wallets/index.d.ts +3 -0
  81. package/lib/typescript/deuna-sdk-react-native/src/wallets/index.d.ts.map +1 -0
  82. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/applePay.d.ts +2 -0
  83. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/applePay.d.ts.map +1 -0
  84. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/googlePay.d.ts +2 -0
  85. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/googlePay.d.ts.map +1 -0
  86. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/index.d.ts +3 -0
  87. package/lib/typescript/deuna-sdk-react-native/src/wallets/tokenize/index.d.ts.map +1 -0
  88. package/lib/typescript/deuna-sdk-react-native/src/wallets/types.d.ts +15 -0
  89. package/lib/typescript/deuna-sdk-react-native/src/wallets/types.d.ts.map +1 -0
  90. package/lib/typescript/deuna-sdk-react-native/src/wallets/vaultApi.d.ts +38 -0
  91. package/lib/typescript/deuna-sdk-react-native/src/wallets/vaultApi.d.ts.map +1 -0
  92. package/package.json +14 -2
  93. package/react-native.config.js +8 -0
  94. package/src/DeunaSDK.ts +65 -4
  95. package/src/components/DeunaWebView.tsx +4 -0
  96. package/src/components/DeunaWidget.tsx +2 -0
  97. package/src/controllers/BaseWebViewController.ts +15 -4
  98. package/src/controllers/ElementsWidgetController.ts +16 -1
  99. package/src/helpers/ExternalUrlHelper.ts +5 -1
  100. package/src/index.tsx +1 -0
  101. package/src/plugin/index.ts +29 -0
  102. package/src/plugin/withAndroidGooglePay.ts +15 -0
  103. package/src/plugin/withIosApplePay.ts +10 -0
  104. package/src/plugin/withIosFmtFix.ts +49 -0
  105. package/src/types/base.ts +92 -14
  106. package/src/types/envs.ts +14 -0
  107. package/src/types/helpers/urlConfig.ts +1 -1
  108. package/src/types/interfaces/callbacks.ts +15 -0
  109. package/src/types/interfaces/initWidgetBase.ts +3 -3
  110. package/src/wallets/WalletModule.ts +255 -0
  111. package/src/wallets/index.ts +13 -0
  112. package/src/wallets/tokenize/applePay.ts +22 -0
  113. package/src/wallets/tokenize/googlePay.ts +27 -0
  114. package/src/wallets/tokenize/index.ts +12 -0
  115. package/src/wallets/types.ts +17 -0
  116. package/src/wallets/vaultApi.ts +229 -0
@@ -0,0 +1,19 @@
1
+ require "json"
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = "DeunaWalletsModule"
7
+ s.version = package["version"]
8
+ s.summary = "Native wallet support (Apple Pay / Google Pay) for @deuna/react-native-sdk"
9
+ s.homepage = package["homepage"]
10
+ s.license = package["license"]
11
+ s.authors = package["author"]
12
+ s.platforms = { :ios => "13.0" }
13
+ s.source = { :git => package["repository"]["url"], :tag => "v#{s.version}" }
14
+ s.source_files = "ios/**/*.swift"
15
+ s.swift_versions = ["5.0"]
16
+
17
+ s.dependency "ExpoModulesCore"
18
+ s.dependency "DeunaSDK", "~> 2.11.2"
19
+ end
package/README.md CHANGED
@@ -13,9 +13,148 @@ React Native SDK
13
13
 
14
14
  👉 **[Read the full migration guide in CHANGELOG.md](./CHANGELOG.md)**
15
15
 
16
- ## Usage
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @deuna/react-native-sdk
20
+ # or
21
+ yarn add @deuna/react-native-sdk
22
+ ```
23
+
24
+ Then run pod install for iOS:
25
+
26
+ ```bash
27
+ cd ios && pod install
28
+ ```
29
+
30
+ The native wallet module auto-links via `expo-module.config.json` (Expo) and `react-native.config.js` (RN CLI). No extra steps needed for basic usage.
31
+
32
+ ---
33
+
34
+ ## Native Wallet Support (Apple Pay / Google Pay)
35
+
36
+ `getWalletsAvailable` and `initElements` let you present native payment sheets without a WebView.
37
+
38
+ ### Basic usage
39
+
40
+ ```typescript
41
+ import { getWalletsAvailable, initElements } from '@deuna/react-native-sdk';
42
+
43
+ // 1. Check which wallets are available on the device
44
+ const providers = await getWalletsAvailable({
45
+ orderToken: 'your-order-token',
46
+ publicApiKey: 'your-api-key',
47
+ environment: 'production',
48
+ });
49
+ // e.g. ['apple_pay'] on iPhone, ['google_pay'] on Android
50
+
51
+ // 2. Launch the payment sheet
52
+ const result = await initElements({
53
+ orderToken: 'your-order-token',
54
+ publicApiKey: 'your-api-key',
55
+ environment: 'production',
56
+ walletProvider: 'apple_pay',
57
+ });
58
+ // result === undefined → payment success
59
+ // result === 'closed' → user dismissed
60
+ ```
61
+
62
+ ### Event listeners
63
+
64
+ ```typescript
65
+ import {
66
+ addWalletSuccessListener,
67
+ addWalletErrorListener,
68
+ addWalletClosedListener,
69
+ } from '@deuna/react-native-sdk';
70
+
71
+ const sub = addWalletSuccessListener((data) => console.log('paid', data));
72
+ // cleanup
73
+ sub?.remove();
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Production setup (required for App Store / Play Store)
79
+
80
+ `getWalletsAvailable` returns an empty list until the platform entitlements/manifest are configured. This is a one-time setup per app — **not needed for development or sandbox testing**.
81
+
82
+ ### Expo (managed or bare workflow)
17
83
 
18
- For detailed installation and usage instructions, please refer to our official documentation at [DEUNA React Native SDK Documentation](https://docs.deuna.com/reference/react-native-sdk).
84
+ Add the config plugin to `app.json`:
85
+
86
+ ```json
87
+ {
88
+ "expo": {
89
+ "plugins": [
90
+ [
91
+ "@deuna/react-native-sdk/app.plugin",
92
+ {
93
+ "merchantIdentifiers": ["merchant.com.yourapp"],
94
+ "googlePay": true
95
+ }
96
+ ]
97
+ ]
98
+ }
99
+ }
100
+ ```
101
+
102
+ Then run:
103
+
104
+ ```bash
105
+ npx expo prebuild
106
+ ```
107
+
108
+ | Option | Type | Description |
109
+ |---|---|---|
110
+ | `merchantIdentifiers` | `string[]` | Apple Pay merchant IDs registered in your Apple Developer account |
111
+ | `googlePay` | `boolean` | Add Google Pay meta-data to `AndroidManifest.xml` (default: `true`) |
112
+
113
+ The plugin also automatically patches your Podfile to fix a build error with Xcode 16 / Clang 16+ (see below).
114
+
115
+ ### React Native CLI (no Expo)
116
+
117
+ **iOS** — add the Apple Pay entitlement in Xcode:
118
+
119
+ 1. Open `ios/YourApp.xcworkspace` in Xcode
120
+ 2. Select your target → **Signing & Capabilities**
121
+ 3. Click **+ Capability** → add **Apple Pay**
122
+ 4. Add your merchant identifier(s)
123
+
124
+ **Android** — add to `android/app/src/main/AndroidManifest.xml` inside `<application>`:
125
+
126
+ ```xml
127
+ <meta-data
128
+ android:name="com.google.android.gms.wallet.api.enabled"
129
+ android:value="1" />
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Xcode 16 / Clang 16+ build fix
135
+
136
+ If you see `call to consteval function ... is not a constant expression` errors from `fmt` when building for iOS, add this to your `Podfile` inside the `post_install` block:
137
+
138
+ ```ruby
139
+ post_install do |installer|
140
+ # ... existing post_install code ...
141
+
142
+ # Fix fmt consteval build error with Xcode 16 / Clang 16+
143
+ installer.pods_project.targets.each do |target|
144
+ if target.name == 'fmt'
145
+ target.build_configurations.each do |config|
146
+ config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17'
147
+ end
148
+ end
149
+ end
150
+ end
151
+ ```
152
+
153
+ **Expo users:** the `app.plugin` handles this automatically — no manual step needed.
154
+
155
+ ---
156
+
157
+ ## Usage
19
158
 
20
159
 
21
160
 
@@ -0,0 +1,43 @@
1
+ buildscript {
2
+ ext.kotlin_version = '1.9.0'
3
+ repositories {
4
+ google()
5
+ mavenCentral()
6
+ }
7
+ dependencies {
8
+ classpath 'com.android.tools.build:gradle:8.1.0'
9
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
10
+ }
11
+ }
12
+
13
+ apply plugin: 'com.android.library'
14
+ apply plugin: 'kotlin-android'
15
+
16
+ android {
17
+ compileSdk 34
18
+ namespace 'com.deuna.wallets'
19
+
20
+ defaultConfig {
21
+ minSdk 22
22
+ }
23
+
24
+ compileOptions {
25
+ sourceCompatibility JavaVersion.VERSION_17
26
+ targetCompatibility JavaVersion.VERSION_17
27
+ }
28
+
29
+ kotlinOptions {
30
+ jvmTarget = '17'
31
+ }
32
+ }
33
+
34
+ repositories {
35
+ google()
36
+ mavenCentral()
37
+ maven { url 'https://jitpack.io' }
38
+ }
39
+
40
+ dependencies {
41
+ implementation 'com.github.deuna-developers:deuna-sdk-android:2.11.5'
42
+ compileOnly project(':expo-modules-core')
43
+ }
@@ -0,0 +1,8 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <application>
3
+ <activity
4
+ android:name="com.deuna.maven.wallets.google_pay.WalletPaymentActivity"
5
+ android:theme="@android:style/Theme.Translucent.NoTitleBar"
6
+ android:exported="false" />
7
+ </application>
8
+ </manifest>
@@ -0,0 +1,103 @@
1
+ package com.deuna.wallets
2
+
3
+ import android.os.Handler
4
+ import android.os.Looper
5
+ import com.deuna.maven.wallets.DeunaWalletLauncher
6
+ import com.deuna.maven.wallets.WalletLaunchResult
7
+ import expo.modules.kotlin.Promise
8
+ import expo.modules.kotlin.modules.Module
9
+ import expo.modules.kotlin.modules.ModuleDefinition
10
+ import org.json.JSONArray
11
+ import org.json.JSONObject
12
+ import java.util.concurrent.Executors
13
+
14
+ @Suppress("UNCHECKED_CAST")
15
+ private fun deepConvert(value: Any?): Any? = when (value) {
16
+ is JSONObject -> {
17
+ val map = mutableMapOf<String, Any?>()
18
+ value.keys().forEach { key -> map[key] = deepConvert(value.get(key)) }
19
+ map
20
+ }
21
+ is JSONArray -> (0 until value.length()).map { deepConvert(value.get(it)) }
22
+ is Map<*, *> -> (value as Map<String, Any?>).mapValues { deepConvert(it.value) }
23
+ is List<*> -> value.map { deepConvert(it) }
24
+ else -> value
25
+ }
26
+
27
+ class DeunaWalletsModule : Module() {
28
+
29
+ private val mainHandler = Handler(Looper.getMainLooper())
30
+ private val workers = Executors.newSingleThreadExecutor()
31
+
32
+ override fun definition() = ModuleDefinition {
33
+ Name("DeunaWallets")
34
+ Events("onWalletSuccess", "onWalletError", "onWalletClosed")
35
+
36
+ // Pure device-side check — no network calls.
37
+ // TypeScript is responsible for fetching the provider list from the vault API.
38
+
39
+ AsyncFunction("checkAvailableProviders") { params: Map<String, Any>, promise: Promise ->
40
+ val providers = (params["providers"] as? List<*>)?.filterIsInstance<String>() ?: emptyList()
41
+ val envString = params["environment"] as? String ?: "production"
42
+
43
+ val context = appContext.reactContext
44
+ ?: run { promise.reject("NO_CONTEXT", "React context not available", null); return@AsyncFunction }
45
+
46
+ workers.execute {
47
+ val available = providers.filter { provider ->
48
+ DeunaWalletLauncher.isAvailable(context, provider, envString)
49
+ }
50
+ mainHandler.post { promise.resolve(available) }
51
+ }
52
+ }
53
+
54
+ // Launches the payment sheet. Returns raw payment data — no tokenization.
55
+ // TypeScript is responsible for the tokenization API call.
56
+ // Resolves payment map on success, "closed" on user dismiss, rejects on error.
57
+
58
+ AsyncFunction("launchWallet") { params: Map<String, Any>, promise: Promise ->
59
+ val providerString = params["provider"] as? String
60
+ @Suppress("UNCHECKED_CAST")
61
+ val credentials = params["credentials"] as? Map<String, Any>
62
+ val envString = params["environment"] as? String ?: "production"
63
+
64
+ if (providerString == null || credentials == null) {
65
+ promise.reject("INVALID_PARAMS", "provider and credentials are required", null)
66
+ return@AsyncFunction
67
+ }
68
+
69
+ val activity = appContext.currentActivity
70
+ ?: run { promise.reject("NO_ACTIVITY", "No active Activity found", null); return@AsyncFunction }
71
+
72
+ var settled = false
73
+
74
+ mainHandler.post {
75
+ DeunaWalletLauncher.launch(
76
+ context = activity,
77
+ provider = providerString,
78
+ credentials = credentials,
79
+ environment = envString,
80
+ ) { result ->
81
+ if (settled) return@launch
82
+ settled = true
83
+ when (result) {
84
+ is WalletLaunchResult.Success -> {
85
+ @Suppress("UNCHECKED_CAST")
86
+ val converted = deepConvert(result.rawData) as Map<String, Any?>
87
+ sendEvent("onWalletSuccess", mapOf("data" to converted))
88
+ promise.resolve(converted)
89
+ }
90
+ is WalletLaunchResult.Error -> {
91
+ sendEvent("onWalletError", mapOf("code" to result.code, "message" to result.message))
92
+ promise.reject(result.code, result.message, null)
93
+ }
94
+ WalletLaunchResult.Closed -> {
95
+ sendEvent("onWalletClosed", mapOf("action" to "userAction"))
96
+ promise.resolve("closed")
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
package/app.plugin.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./lib/module/plugin/index').default;
@@ -0,0 +1,10 @@
1
+ {
2
+ "platforms": ["ios", "android"],
3
+ "ios": {
4
+ "modulesClassNames": ["DeunaWalletsModule"],
5
+ "podspecPath": "DeunaWalletsModule.podspec"
6
+ },
7
+ "android": {
8
+ "modulesClassNames": ["com.deuna.wallets.DeunaWalletsModule"]
9
+ }
10
+ }
@@ -0,0 +1,56 @@
1
+ import ExpoModulesCore
2
+ import DeunaSDK
3
+
4
+ public class DeunaWalletsModule: Module {
5
+
6
+ public func definition() -> ModuleDefinition {
7
+ Name("DeunaWallets")
8
+ Events("onWalletSuccess", "onWalletError", "onWalletClosed")
9
+
10
+ // MARK: - checkAvailableProviders
11
+ // Pure device-side check — no network calls.
12
+ // TypeScript is responsible for fetching the provider list from the vault API.
13
+
14
+ AsyncFunction("checkAvailableProviders") { (params: [String: Any], promise: Promise) in
15
+ let providers = params["providers"] as? [String] ?? []
16
+ let available = providers.filter { DeunaWalletLauncher.isAvailable(provider: $0) }
17
+ promise.resolve(available)
18
+ }
19
+
20
+ // MARK: - launchWallet
21
+ // Launches the payment sheet. Returns raw payment data — no tokenization.
22
+ // TypeScript is responsible for the tokenization API call.
23
+ // Resolves payment dict on success, "closed" on user dismiss, rejects on error.
24
+
25
+ AsyncFunction("launchWallet") { (params: [String: Any], promise: Promise) in
26
+ guard
27
+ let provider = params["provider"] as? String,
28
+ let credentials = params["credentials"] as? [String: Any]
29
+ else {
30
+ promise.reject("INVALID_PARAMS", "provider and credentials are required")
31
+ return
32
+ }
33
+
34
+ var settled = false
35
+
36
+ DeunaWalletLauncher.launch(
37
+ provider: provider,
38
+ credentials: credentials
39
+ ) { [weak self] result in
40
+ guard !settled else { return }
41
+ settled = true
42
+ switch result {
43
+ case .success(let data):
44
+ self?.sendEvent("onWalletSuccess", ["data": data])
45
+ promise.resolve(data)
46
+ case .error(let code, let msg):
47
+ self?.sendEvent("onWalletError", ["code": code, "message": msg])
48
+ promise.reject(code, msg)
49
+ case .closed:
50
+ self?.sendEvent("onWalletClosed", ["action": "userAction"])
51
+ promise.resolve("closed")
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { BaseDeuna } from "./types/index.js";
4
+ import { getWalletsAvailable as getWalletsAvailableNative, initElements as initElementsNative } from "./wallets/index.js";
4
5
  import { PaymentWidgetController } from "./controllers/PaymentWidgetController.js";
5
6
  import { buildDeunaWidgetController } from "./helpers/buildDeunaWidgetController.js";
6
7
  import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
@@ -78,11 +79,51 @@ export class DeunaSDK extends BaseDeuna {
78
79
  }
79
80
 
80
81
  /**
81
- * Shows the elements widget
82
- * @param props - The parameters for the elements widget controller
83
- * @param props.mode - The mode for the widget
82
+ * Returns wallet providers available on the current device.
83
+ *
84
+ * - Pass `WalletElementConfig` to use explicit credentials (no vault fetch).
85
+ * - Pass `{ orderToken?, userInfo? }` to resolve credentials from the DEUNA vault API.
86
+ */
87
+ async getWalletsAvailable(params = {}) {
88
+ return getWalletsAvailableNative(this.config.publicApiKey, this.config.environment ?? 'production', params);
89
+ }
90
+
91
+ /**
92
+ * Shows the elements widget or launches a native wallet payment sheet.
93
+ * Pass `types: [{ name: 'APPLE_PAY' }]` or `types: [{ name: 'GOOGLE_PAY' }]` to trigger
94
+ * the native payment sheet. Optionally include `walletConfig` with explicit credentials.
84
95
  */
85
96
  async initElements(props) {
97
+ const WALLET_TYPE_TO_PROVIDER = {
98
+ APPLE_PAY: 'apple_pay',
99
+ GOOGLE_PAY: 'google_pay'
100
+ };
101
+ const firstType = props.types?.[0]?.name;
102
+ const walletProvider = firstType ? WALLET_TYPE_TO_PROVIDER[firstType] : undefined;
103
+ if (walletProvider) {
104
+ initElementsNative({
105
+ walletProvider,
106
+ orderToken: props.orderToken ?? '',
107
+ publicApiKey: this.config.publicApiKey,
108
+ environment: this.config.environment ?? 'production',
109
+ userInfo: props.userInfo
110
+ }, props.walletConfig).then(result => {
111
+ if (result === 'closed') {
112
+ props.callbacks?.onClosed?.('userAction');
113
+ } else {
114
+ props.callbacks?.onSuccess?.(result ?? {});
115
+ }
116
+ }).catch(err => {
117
+ props.callbacks?.onError?.({
118
+ type: err.code ?? 'WALLET_ERROR',
119
+ metadata: {
120
+ code: err.code ?? 'WALLET_ERROR',
121
+ message: err.message ?? 'Wallet payment failed'
122
+ }
123
+ });
124
+ });
125
+ return;
126
+ }
86
127
  this.setWidgetController({
87
128
  controller: buildDeunaWidgetController(this.config, {
88
129
  widget: 'elements',
@@ -1 +1 @@
1
- {"version":3,"names":["BaseDeuna","PaymentWidgetController","buildDeunaWidgetController","ElementsWidgetController","DownloadType","Mode","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DOMAINS_MUST_BE_USE_IN_APP_BROWSER","getSubmitStrategy","WebViewManager","ExternalUrlBrowser","ExternalUrlHelper","DefaultInAppBrowserAdapter","DeunaSDK","constructor","config","onDestroyed","externalUrlHelper","inAppBrowserAdapter","listeners","Set","deunaWidgetManager","deviceFingerprintController","submitStrategy","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","mode","MODAL","delegate","buildDelegate","initPaymentWidget","props","widget","sdkInstance","initElements","initNextAction","initVoucherWidget","isValid","submit","getStateFn","getWidgetState","setCustomStyle","style","refetchOrder","close","isInitialized","resetInAppBrowserReopenGuard","onClosedCallback","closedAction","callbacks","onClosed","waitForClose","destroy","deunaSDK","error","console","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","type","URL","data","onCloseExternalUrl","externalUrlWebViewController","closeWebView","onOpenExternalUrl","options","hostMatch","match","host","browser","WEB_VIEW","domain","includes","IN_APP_BROWSER","canOpenInAppBrowserUrl","bypassReopenGuard","userInitiated","openUrl","onFileDownload","onCloseButtonPressed"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BaseDeuna","getWalletsAvailable","getWalletsAvailableNative","initElements","initElementsNative","PaymentWidgetController","buildDeunaWidgetController","ElementsWidgetController","DownloadType","Mode","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DOMAINS_MUST_BE_USE_IN_APP_BROWSER","getSubmitStrategy","WebViewManager","ExternalUrlBrowser","ExternalUrlHelper","DefaultInAppBrowserAdapter","DeunaSDK","constructor","config","onDestroyed","externalUrlHelper","inAppBrowserAdapter","listeners","Set","deunaWidgetManager","deviceFingerprintController","submitStrategy","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","mode","MODAL","delegate","buildDelegate","initPaymentWidget","props","widget","sdkInstance","WALLET_TYPE_TO_PROVIDER","APPLE_PAY","GOOGLE_PAY","firstType","types","name","walletProvider","undefined","orderToken","userInfo","walletConfig","then","result","callbacks","onClosed","onSuccess","catch","err","onError","type","code","metadata","message","initNextAction","initVoucherWidget","isValid","submit","getStateFn","getWidgetState","setCustomStyle","style","refetchOrder","close","isInitialized","resetInAppBrowserReopenGuard","onClosedCallback","closedAction","waitForClose","destroy","deunaSDK","error","console","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","URL","data","onCloseExternalUrl","externalUrlWebViewController","closeWebView","onOpenExternalUrl","options","hostMatch","match","host","browser","WEB_VIEW","domain","includes","IN_APP_BROWSER","canOpenInAppBrowserUrl","bypassReopenGuard","userInitiated","openUrl","onFileDownload","onCloseButtonPressed"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":";;AAAA,SACEA,SAAS,QAmBJ,kBAAS;AAChB,SACEC,mBAAmB,IAAIC,yBAAyB,EAChDC,YAAY,IAAIC,kBAAkB,QAE7B,oBAAW;AAOlB,SAASC,uBAAuB,QAAQ,0CAAuC;AAC/E,SAASC,0BAA0B,QAAQ,yCAAsC;AACjF,SAASC,wBAAwB,QAAQ,2CAAwC;AACjF,SAASC,YAAY,EAAEC,IAAI,QAAwB,uBAAoB;AACvE,SAASC,2BAA2B,QAAQ,8CAA2C;AACvF,SACEC,sBAAsB,EACtBC,kCAAkC,QAC7B,2BAAwB;AAE/B,SAASC,iBAAiB,QAAQ,gCAA6B;AAC/D,SAASC,cAAc,QAAQ,0BAAuB;AACtD,SACEC,kBAAkB,EAClBC,iBAAiB,QACZ,gCAA6B;AAEpC,SAASC,0BAA0B,QAAQ,mCAAgC;AAM3E,OAAO,MAAMC,QAAQ,SAASlB,SAAS,CAAC;EACtCmB,WAAWA,CACAC,MAA+C,EAC/CC,WAAwB,EACjC;IACA,KAAK,CAAC,CAAC;IAAC,KAHCD,MAA+C,GAA/CA,MAA+C;IAAA,KAC/CC,WAAwB,GAAxBA,WAAwB;IAGjC,IAAI,CAACC,iBAAiB,GAAG,IAAIN,iBAAiB,CAC5C,IAAI,CAACI,MAAM,CAACG,mBAAmB,IAAI,IAAIN,0BAA0B,CAAC,CACpE,CAAC;EACH;EAUQO,SAAS,GAAoB,IAAIC,GAAG,CAAC,CAAC;EAE9CC,kBAAkB,GAAG,IAAIZ,cAAc,CAAyB,CAAC;EAGjEa,2BAA2B,GAAuC,IAAI;EACtEC,cAAc,GAA0B,IAAI;;EAE5C;AACF;AACA;AACA;AACA;EACEC,YAAY,GAAG,MAAOC,MAA4B,IAAsB;IACtE,IAAI,CAACH,2BAA2B,GAAG,IAAIjB,2BAA2B,CAChE,IAAI,CAACU,MAAM,CAACW,YAAY,EACxB,IAAI,CAACX,MAAM,CAACY,WAAW,IAAI,YAC7B,CAAC;IACD,IAAI,CAACL,2BAA2B,CAACM,GAAG,GAAGtB,sBAAsB;IAC7D,IAAI,CAACuB,eAAe,CAAC,CAAC;IAEtB,MAAMC,iBAAiB,GACrB,MAAM,IAAI,CAACR,2BAA2B,CAACS,yBAAyB,CAC9DN,MAAM,IAAI,CAAC,CACb,CAAC;IACH,IAAI,CAACH,2BAA2B,EAAEU,OAAO,CAAC,CAAC;IAC3C,IAAI,CAACV,2BAA2B,GAAG,IAAI;IACvC,IAAI,CAACO,eAAe,CAAC,CAAC;IACtB,OAAOC,iBAAiB,IAAI,EAAE;EAChC,CAAC;EAED,OAAOG,UAAUA,CAAClB,MAA+C,EAAY;IAC3E,OAAO,IAAIF,QAAQ,CAACE,MAAM,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACUmB,mBAAmB,GAAIT,MAG9B,IAAW;IACV,MAAM;MAAEU,UAAU;MAAEC;IAAK,CAAC,GAAGX,MAAM;IACnC,IAAI,CAACJ,kBAAkB,CAACY,UAAU,CAAC;MACjCE,UAAU;MACVC,IAAI,EAAEA,IAAI,IAAIhC,IAAI,CAACiC,KAAK;MACxBC,QAAQ,EAAE,IAAI,CAACC,aAAa,CAAC;IAC/B,CAAC,CAAC;IACF,IAAI,CAACV,eAAe,CAAC,CAAC;EACxB,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMW,iBAAiBA,CACrBC,KAIC,EACD;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAElC,0BAA0B,CAAC,IAAI,CAACc,MAAM,EAAE;QAClD2B,MAAM,EAAE,SAAS;QACjB,GAAGD,KAAK;QACRE,WAAW,EAAE;MACf,CAAC,CAAC;MACFP,IAAI,EAAEK,KAAK,CAACL;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMxC,mBAAmBA,CACvB6B,MAAiC,GAAG,CAAC,CAAC,EACX;IAC3B,OAAO5B,yBAAyB,CAC9B,IAAI,CAACkB,MAAM,CAACW,YAAY,EACxB,IAAI,CAACX,MAAM,CAACY,WAAW,IAAI,YAAY,EACvCF,MACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAM3B,YAAYA,CAChB2C,KAKC,EACc;IACf,MAAMG,uBAAuD,GAAG;MAC9DC,SAAS,EAAE,WAAW;MACtBC,UAAU,EAAE;IACd,CAAC;IACD,MAAMC,SAAS,GAAGN,KAAK,CAACO,KAAK,GAAG,CAAC,CAAC,EAAEC,IAAI;IACxC,MAAMC,cAAc,GAAGH,SAAS,GAC5BH,uBAAuB,CAACG,SAAS,CAAC,GAClCI,SAAS;IAEb,IAAID,cAAc,EAAE;MAClBnD,kBAAkB,CAChB;QACEmD,cAAc;QACdE,UAAU,EAAEX,KAAK,CAACW,UAAU,IAAI,EAAE;QAClC1B,YAAY,EAAE,IAAI,CAACX,MAAM,CAACW,YAAY;QACtCC,WAAW,EAAE,IAAI,CAACZ,MAAM,CAACY,WAAW,IAAI,YAAY;QACpD0B,QAAQ,EAAEZ,KAAK,CAACY;MAClB,CAAC,EACDZ,KAAK,CAACa,YACR,CAAC,CACEC,IAAI,CAAEC,MAAM,IAAK;QAChB,IAAIA,MAAM,KAAK,QAAQ,EAAE;UACvBf,KAAK,CAACgB,SAAS,EAAEC,QAAQ,GAAG,YAAY,CAAC;QAC3C,CAAC,MAAM;UACLjB,KAAK,CAACgB,SAAS,EAAEE,SAAS,GAAGH,MAAM,IAAI,CAAC,CAAC,CAAC;QAC5C;MACF,CAAC,CAAC,CACDI,KAAK,CAAEC,GAAwC,IAAK;QACnDpB,KAAK,CAACgB,SAAS,EAAEK,OAAO,GAAG;UACzBC,IAAI,EAAEF,GAAG,CAACG,IAAI,IAAI,cAAc;UAChCC,QAAQ,EAAE;YACRD,IAAI,EAAEH,GAAG,CAACG,IAAI,IAAI,cAAc;YAChCE,OAAO,EAAEL,GAAG,CAACK,OAAO,IAAI;UAC1B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MACJ;IACF;IAEA,IAAI,CAAChC,mBAAmB,CAAC;MACvBC,UAAU,EAAElC,0BAA0B,CAAC,IAAI,CAACc,MAAM,EAAE;QAClD2B,MAAM,EAAE,UAAU;QAClB,GAAGD;MACL,CAAC,CAAC;MACFL,IAAI,EAAEK,KAAK,CAACL;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAM+B,cAAcA,CAClB1B,KAIC,EACD;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAElC,0BAA0B,CAAC,IAAI,CAACc,MAAM,EAAE;QAClD2B,MAAM,EAAE,YAAY;QACpB,GAAGD;MACL,CAAC,CAAC;MACFL,IAAI,EAAEK,KAAK,CAACL;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMgC,iBAAiBA,CACrB3B,KAKC,EACD;IACA,IAAI,CAACP,mBAAmB,CAAC;MACvBC,UAAU,EAAElC,0BAA0B,CAAC,IAAI,CAACc,MAAM,EAAE;QAClD2B,MAAM,EAAE,SAAS;QACjB,GAAGD;MACL,CAAC,CAAC;MACFL,IAAI,EAAEK,KAAK,CAACL;IACd,CAAC,CAAC;EACJ;EAEAiC,OAAO,GAAG,MAAAA,CAAA,KAA8B;IACtC,OAAO,IAAI,CAAChD,kBAAkB,CAACc,UAAU,CAACkC,OAAO,CAAC,CAAC;EACrD,CAAC;EAEDC,MAAM,GAAG,MAAAA,CAAA,KAAmC;IAC1C,IAAI,CAACC,UAAU,GAAG,MAAM,IAAI,CAACC,cAAc,CAAC,CAAC;IAC7C,MAAMjD,cAAc,GAAG,MAAMf,iBAAiB,CAAC,IAAI,CAAC;IAEpD,IAAI,CAACe,cAAc,EAAE;MACnB,OAAO,IAAI,CAACF,kBAAkB,CAACc,UAAU,CAACmC,MAAM,CAAC,CAAC;IACpD;IAEA,IAAI,CAAC/C,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACM,eAAe,CAAC,CAAC;IACtB,OAAO,IAAI,CAACN,cAAc,CAAC+C,MAAM,CAAC,CAAC;EACrC,CAAC;EAEDG,cAAc,GAAG,MAAOC,KAA4B,IAAoB;IACtE,OAAO,IAAI,CAACrD,kBAAkB,CAACc,UAAU,CAACsC,cAAc,CAACC,KAAK,CAAC;EACjE,CAAC;EAEDC,YAAY,GAAG,MAAAA,CAAA,KAAkC;IAC/C,OAAO,IAAI,CAACtD,kBAAkB,CAACc,UAAU,CAACwC,YAAY,CAAC,CAAC;EAC1D,CAAC;EAEDH,cAAc,GAAG,MAAAA,CAAA,KAA4B;IAC3C,OAAO,IAAI,CAACnD,kBAAkB,CAACc,UAAU,CAACqC,cAAc,CAAC,CAAC;EAC5D,CAAC;;EAED;AACF;AACA;EACEI,KAAK,GAAG,MAAAA,CAAA,KAA2B;IACjC,IAAI,CAAC,IAAI,CAACvD,kBAAkB,CAACwD,aAAa,EAAE;MAC1C,IAAI,CAAC5D,iBAAiB,CAAC6D,4BAA4B,CAAC,CAAC;MACrD;IACF;IAEA,IAAI;MACF,IAAIC,gBAA8D;MAClE,MAAMC,YAAY,GAAG,IAAI,CAAC3D,kBAAkB,CAACc,UAAU,CAAC6C,YAAY;MAEpE,IACE,IAAI,CAAC3D,kBAAkB,CAACc,UAAU,YAAYnC,uBAAuB,EACrE;QACA+E,gBAAgB,GACd,IAAI,CAAC1D,kBAAkB,CAACc,UAAU,CAACsB,SAAS,CAACC,QAAQ;MACzD,CAAC,MAAM,IACL,IAAI,CAACrC,kBAAkB,CAACc,UAAU,YAAYjC,wBAAwB,EACtE;QACA6E,gBAAgB,GACd,IAAI,CAAC1D,kBAAkB,CAACc,UAAU,CAACsB,SAAS,CAACC,QAAQ;MACzD;;MAEA;MACA;MACA,MAAM,IAAI,CAACzC,iBAAiB,CAACgE,YAAY,CAAC,CAAC;;MAE3C;MACA,IAAI,CAAC5D,kBAAkB,CAAC6D,OAAO,CAAC,CAAC;;MAEjC;MACA,MAAM,IAAI,CAAC3D,cAAc,EAAE4D,QAAQ,CAACP,KAAK,CAAC,CAAC;MAC3C,IAAI,CAACrD,cAAc,GAAG,IAAI;;MAE1B;MACA,IAAI,CAACM,eAAe,CAAC,CAAC;;MAEtB;MACA,IAAI,CAACb,WAAW,GAAG,CAAC;;MAEpB;MACA+D,gBAAgB,GAAGC,YAAY,CAAC;IAClC,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;IAClD;EACF,CAAC;EAEDE,WAAW,GAAIC,QAAoB,IAAK;IACtC,IAAI,CAACpE,SAAS,CAACqE,GAAG,CAACD,QAAQ,CAAC;EAC9B,CAAC;EAEDE,cAAc,GAAIF,QAAoB,IAAK;IACzC,IAAI,CAACpE,SAAS,CAACuE,MAAM,CAACH,QAAQ,CAAC;EACjC,CAAC;EAED1D,eAAe,GAAGA,CAAA,KAAM;IACtB,IAAI,CAACV,SAAS,CAACwE,OAAO,CAAEJ,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EAClD,CAAC;EAEOK,kBAAkB,GAAIhE,GAAW,IAAK;IAC5C,IAAI,IAAI,CAACP,kBAAkB,CAACc,UAAU,YAAYnC,uBAAuB,EAAE;MACzE,IAAI,CAACqB,kBAAkB,CAACc,UAAU,CAACsB,SAAS,CAACoC,cAAc,GAAG;QAC5D9B,IAAI,EAAE5D,YAAY,CAAC2F,GAAG;QACtBC,IAAI,EAAEnE;MACR,CAAC,CAAC;IACJ;EACF,CAAC;;EAED;AACF;AACA;EACEoE,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IAC/B,IAAI,IAAI,CAAC/E,iBAAiB,CAACgF,4BAA4B,EAAE;MACvD,MAAM,IAAI,CAAChF,iBAAiB,CAACiF,YAAY,CAAC,CAAC;MAC3C,IAAI,CAACrE,eAAe,CAAC,CAAC;IACxB;EACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACEU,aAAa,GAAGA,CAAA,KAAuB;IACrC,OAAO;MACL4D,iBAAiB,EAAEA,CAACvE,GAAG,EAAEwE,OAAO,KAAK;QACnC,IAAI;UACF,MAAMC,SAAS,GAAGzE,GAAG,CAAC0E,KAAK,CAAC,wBAAwB,CAAC;UACrD,MAAMC,IAAI,GAAGF,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE;UACjC,IAAIG,OAAO,GAAG9F,kBAAkB,CAAC+F,QAAQ;UACzC;UACA,KAAK,MAAMC,MAAM,IAAInG,kCAAkC,EAAE;YACvD,IAAIgG,IAAI,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;cACzBF,OAAO,GAAG9F,kBAAkB,CAACkG,cAAc;cAC3C;YACF;UACF;UAEA,IACEJ,OAAO,KAAK9F,kBAAkB,CAACkG,cAAc,IAC7C,CAAC,IAAI,CAAC3F,iBAAiB,CAAC4F,sBAAsB,CAACjF,GAAG,EAAE;YAClDkF,iBAAiB,EAAEV,OAAO,EAAEW,aAAa,KAAK;UAChD,CAAC,CAAC,EACF;YACA;UACF;UAEA,IAAI,CAAC9F,iBAAiB,CAAC+F,OAAO,CAAC;YAC7BpF,GAAG;YACH4E,OAAO;YACPlE,QAAQ,EAAE;cACR0D,kBAAkB,EAAE,IAAI,CAACA,kBAAkB;cAC3CiB,cAAc,EAAE,IAAI,CAACrB;YACvB;UACF,CAAC,CAAC;UACF,IAAI,CAAC/D,eAAe,CAAC,CAAC;QACxB,CAAC,CAAC,OAAOuD,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEA,KAAK,CAAC;QACpD;MACF,CAAC;MACDY,kBAAkB,EAAE,IAAI,CAACA,kBAAkB;MAC3CkB,oBAAoB,EAAE,IAAI,CAACtC,KAAK;MAAE;MAClCqC,cAAc,EAAE,IAAI,CAACrB,kBAAkB,CAAE;IAC3C,CAAC;EACH,CAAC;AACH","ignoreList":[]}
@@ -22,11 +22,14 @@ export const DeunaWebView = props => {
22
22
  props.onLoad?.();
23
23
  },
24
24
  startInLoadingState: true,
25
+ paymentRequestEnabled: true,
26
+ enableApplePay: true,
25
27
  renderLoading: () => /*#__PURE__*/_jsx(WebViewLoader, {}),
26
28
  javaScriptEnabled: true,
27
29
  onError: props.onError,
28
30
  setSupportMultipleWindows: false,
29
31
  javaScriptCanOpenWindowsAutomatically: false,
32
+ onOpenWindow: event => props.onOpenWindow?.(event.nativeEvent.targetUrl),
30
33
  onShouldStartLoadWithRequest: props.onShouldStartLoadWithRequest
31
34
  })
32
35
  });
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","View","WebView","WebViewLoader","jsx","_jsx","DeunaWebView","props","style","styles","container","children","ref","webView","onWebView","source","uri","url","userAgent","undefined","onMessage","onLoad","startInLoadingState","renderLoading","javaScriptEnabled","onError","setSupportMultipleWindows","javaScriptCanOpenWindowsAutomatically","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWebView.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAYhD,OAAO,MAAMC,YAAY,GAAIC,KAAwB,IAAK;EACxD,oBACEF,IAAA,CAACJ,IAAI;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACH,OAAO;MACNU,GAAG,EAAGC,OAAO,IAAK;QAChB,IAAIA,OAAO,IAAIN,KAAK,CAACO,SAAS,EAAE;UAC9BP,KAAK,CAACO,SAAS,CAACD,OAAO,CAAC;QAC1B;MACF,CAAE;MACFE,MAAM,EAAE;QAAEC,GAAG,EAAET,KAAK,CAACU;MAAI,CAAE;MAC3BC,SAAS,EAAEX,KAAK,CAACW,SAAS,IAAIC,SAAU;MACxCC,SAAS,EAAEb,KAAK,CAACa,SAAU;MAC3BC,MAAM,EAAEA,CAAA,KAAM;QACZd,KAAK,CAACc,MAAM,GAAG,CAAC;MAClB,CAAE;MACFC,mBAAmB;MACnBC,aAAa,EAAEA,CAAA,kBAAMlB,IAAA,CAACF,aAAa,IAAE,CAAE;MACvCqB,iBAAiB,EAAE,IAAK;MACxBC,OAAO,EAAElB,KAAK,CAACkB,OAAQ;MACvBC,yBAAyB,EAAE,KAAM;MACjCC,qCAAqC,EAAE,KAAM;MAC7CC,4BAA4B,EAAErB,KAAK,CAACqB;IAA6B,CAClE;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMnB,MAAM,GAAGT,UAAU,CAAC6B,MAAM,CAAC;EAAEnB,SAAS,EAAE;IAAEoB,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","View","WebView","WebViewLoader","jsx","_jsx","DeunaWebView","props","style","styles","container","children","ref","webView","onWebView","source","uri","url","userAgent","undefined","onMessage","onLoad","startInLoadingState","paymentRequestEnabled","enableApplePay","renderLoading","javaScriptEnabled","onError","setSupportMultipleWindows","javaScriptCanOpenWindowsAutomatically","onOpenWindow","event","nativeEvent","targetUrl","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWebView.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAahD,OAAO,MAAMC,YAAY,GAAIC,KAAwB,IAAK;EACxD,oBACEF,IAAA,CAACJ,IAAI;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACH,OAAO;MACNU,GAAG,EAAGC,OAAO,IAAK;QAChB,IAAIA,OAAO,IAAIN,KAAK,CAACO,SAAS,EAAE;UAC9BP,KAAK,CAACO,SAAS,CAACD,OAAO,CAAC;QAC1B;MACF,CAAE;MACFE,MAAM,EAAE;QAAEC,GAAG,EAAET,KAAK,CAACU;MAAI,CAAE;MAC3BC,SAAS,EAAEX,KAAK,CAACW,SAAS,IAAIC,SAAU;MACxCC,SAAS,EAAEb,KAAK,CAACa,SAAU;MAC3BC,MAAM,EAAEA,CAAA,KAAM;QACZd,KAAK,CAACc,MAAM,GAAG,CAAC;MAClB,CAAE;MACFC,mBAAmB;MACnBC,qBAAqB;MACrBC,cAAc;MACdC,aAAa,EAAEA,CAAA,kBAAMpB,IAAA,CAACF,aAAa,IAAE,CAAE;MACvCuB,iBAAiB,EAAE,IAAK;MACxBC,OAAO,EAAEpB,KAAK,CAACoB,OAAQ;MACvBC,yBAAyB,EAAE,KAAM;MACjCC,qCAAqC,EAAE,KAAM;MAC7CC,YAAY,EAAGC,KAAK,IAAKxB,KAAK,CAACuB,YAAY,GAAGC,KAAK,CAACC,WAAW,CAACC,SAAS,CAAE;MAC3EC,4BAA4B,EAAE3B,KAAK,CAAC2B;IAA6B,CAClE;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMzB,MAAM,GAAGT,UAAU,CAACmC,MAAM,CAAC;EAAEzB,SAAS,EAAE;IAAE0B,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
@@ -103,6 +103,7 @@ const DeunaWidgetContainer = props => {
103
103
  onMessage: controller?.onMessage,
104
104
  onLoad: controller?.onLoad,
105
105
  onError: controller?.onError,
106
+ onOpenWindow: controller?.onOpenWindow,
106
107
  onShouldStartLoadWithRequest: controller?.onShouldStartLoadWithRequest
107
108
  }), /*#__PURE__*/_jsx(DeviceFingerprintWebView, {
108
109
  instance: instanceRef.current
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","Mode","DeviceFingerprintWebView","ExternalUrlWebView","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DeunaWidget","props","instance","instanceRef","showPaymentStrategy","setShowPaymentStrategy","current","listener","submitStrategy","addListener","removeListener","children","DeunaWidgetContainer","deunaSDK","isVisible","setIsVisible","deunaWidgetManager","isInitialized","controller","dispose","onClose","closedAction","close","viewManager","isModal","mode","MODAL","isEmbedded","EMBEDDED","presentationStyle","animationType","onRequestClose","style","styles","container","url","userAgent","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","Mode","DeviceFingerprintWebView","ExternalUrlWebView","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DeunaWidget","props","instance","instanceRef","showPaymentStrategy","setShowPaymentStrategy","current","listener","submitStrategy","addListener","removeListener","children","DeunaWidgetContainer","deunaSDK","isVisible","setIsVisible","deunaWidgetManager","isInitialized","controller","dispose","onClose","closedAction","close","viewManager","isModal","mode","MODAL","isEmbedded","EMBEDDED","presentationStyle","animationType","onRequestClose","style","styles","container","url","userAgent","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","onOpenWindow","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
@@ -66,6 +66,23 @@ export class BaseWebViewController {
66
66
  return true;
67
67
  };
68
68
 
69
+ /**
70
+ * Called when window.open() is triggered inside the WebView (native event,
71
+ * no JS injection needed). window.open returns null to the page, which causes
72
+ * payment libraries like pay.js to fall back to the Payment Request API.
73
+ * Non-payment URLs (APM redirects, etc.) are forwarded as external URLs.
74
+ */
75
+ onOpenWindow = targetUrl => {
76
+ if (!targetUrl) return;
77
+ // Google Pay opens via the Payment Request API (paymentRequestEnabled=true).
78
+ // Intercepting pay.google.com here would open it in a WebView, which Google
79
+ // Pay blocks. Drop it and let the native Payment Request handler take over.
80
+ if (targetUrl.includes('pay.google.com')) return;
81
+ this.delegate?.onOpenExternalUrl?.(targetUrl, {
82
+ userInitiated: true
83
+ });
84
+ };
85
+
69
86
  /**
70
87
  * Release the web view resources
71
88
  */
@@ -188,10 +205,6 @@ export class DeunaWebViewController extends BaseWebViewController {
188
205
  document.addEventListener('keydown', function() {
189
206
  window.__deunaLastUserInteractionAt = Date.now();
190
207
  }, true);
191
- window.open = function(url, target, features) {
192
- var isUserInitiated = Date.now() - (window.__deunaLastUserInteractionAt || 0) < 1500;
193
- window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.openExternalUrl}', url, userInitiated: isUserInitiated }));
194
- };
195
208
  window.ReactNativeWebView.postMessage(JSON.stringify({
196
209
  type: '${WebViewEventType.userAgentResolved}',
197
210
  userAgent: navigator.userAgent || null