banking_dcb_sdk_react_native 1.0.775 → 2.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.
Files changed (153) hide show
  1. package/README.md +1 -1
  2. package/android/app/build/generated/source/codegen/RCTAppDependencyProvider.h +25 -0
  3. package/android/app/build/generated/source/codegen/RCTAppDependencyProvider.mm +55 -0
  4. package/android/app/build/generated/source/codegen/RCTModulesConformingToProtocolsProvider.h +18 -0
  5. package/android/app/build/generated/source/codegen/RCTModulesConformingToProtocolsProvider.mm +33 -0
  6. package/android/app/build/generated/source/codegen/RCTThirdPartyComponentsProvider.h +16 -0
  7. package/android/app/build/generated/source/codegen/RCTThirdPartyComponentsProvider.mm +62 -0
  8. package/android/app/build/generated/source/codegen/ReactAppDependencyProvider.podspec +34 -0
  9. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeAsyncStorageModuleSpec.java +59 -0
  10. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeBlobUtilsSpec.java +280 -0
  11. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeRNCWebViewModuleSpec.java +42 -0
  12. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeRNPermissionsSpec.java +87 -0
  13. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeSafeAreaContextSpec.java +65 -0
  14. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeScreensModuleSpec.java +35 -0
  15. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerDelegate.java +26 -0
  16. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerInterface.java +17 -0
  17. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerDelegate.java +36 -0
  18. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerInterface.java +20 -0
  19. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCWebViewManagerDelegate.java +301 -0
  20. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCWebViewManagerInterface.java +107 -0
  21. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerDelegate.java +84 -0
  22. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerInterface.java +35 -0
  23. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerDelegate.java +101 -0
  24. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerInterface.java +42 -0
  25. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSFullWindowOverlayManagerDelegate.java +32 -0
  26. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSFullWindowOverlayManagerInterface.java +17 -0
  27. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSModalScreenManagerDelegate.java +128 -0
  28. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSModalScreenManagerInterface.java +51 -0
  29. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerDelegate.java +36 -0
  30. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerInterface.java +20 -0
  31. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +26 -0
  32. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +17 -0
  33. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +26 -0
  34. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +17 -0
  35. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +26 -0
  36. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +17 -0
  37. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +140 -0
  38. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +55 -0
  39. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenNavigationContainerManagerDelegate.java +26 -0
  40. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenNavigationContainerManagerInterface.java +17 -0
  41. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +121 -0
  42. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +48 -0
  43. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +35 -0
  44. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +19 -0
  45. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHostManagerDelegate.java +26 -0
  46. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHostManagerInterface.java +17 -0
  47. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +26 -0
  48. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +17 -0
  49. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +106 -0
  50. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +40 -0
  51. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewHostManagerDelegate.java +57 -0
  52. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewHostManagerInterface.java +27 -0
  53. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewScreenManagerDelegate.java +32 -0
  54. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewScreenManagerInterface.java +18 -0
  55. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSStackScreenManagerDelegate.java +35 -0
  56. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSStackScreenManagerInterface.java +19 -0
  57. package/android/app/build/generated/source/codegen/jni/BankingDcbSdkReactNative-generated.cpp +22 -0
  58. package/android/app/build/generated/source/codegen/jni/BankingDcbSdkReactNative.h +24 -0
  59. package/android/app/build/generated/source/codegen/jni/CMakeLists.txt +36 -0
  60. package/android/app/build/generated/source/codegen/jni/RNCWebViewSpec-generated.cpp +38 -0
  61. package/android/app/build/generated/source/codegen/jni/RNCWebViewSpec.h +31 -0
  62. package/android/app/build/generated/source/codegen/jni/RNPermissionsSpec-generated.cpp +104 -0
  63. package/android/app/build/generated/source/codegen/jni/RNPermissionsSpec.h +31 -0
  64. package/android/app/build/generated/source/codegen/jni/ReactNativeBlobUtilSpec-generated.cpp +320 -0
  65. package/android/app/build/generated/source/codegen/jni/ReactNativeBlobUtilSpec.h +31 -0
  66. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/BankingDcbSdkReactNativeJSI-generated.cpp +17 -0
  67. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/BankingDcbSdkReactNativeJSI.h +19 -0
  68. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ComponentDescriptors.cpp +22 -0
  69. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ComponentDescriptors.h +24 -0
  70. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/EventEmitters.cpp +16 -0
  71. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/EventEmitters.h +17 -0
  72. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/Props.cpp +19 -0
  73. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/Props.h +18 -0
  74. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ShadowNodes.cpp +17 -0
  75. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ShadowNodes.h +23 -0
  76. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/States.cpp +16 -0
  77. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/States.h +19 -0
  78. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ComponentDescriptors.cpp +22 -0
  79. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ComponentDescriptors.h +24 -0
  80. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/EventEmitters.cpp +258 -0
  81. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/EventEmitters.h +277 -0
  82. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/Props.cpp +101 -0
  83. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/Props.h +507 -0
  84. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/RNCWebViewSpecJSI-generated.cpp +35 -0
  85. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/RNCWebViewSpecJSI.h +80 -0
  86. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ShadowNodes.cpp +17 -0
  87. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ShadowNodes.h +32 -0
  88. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/States.cpp +16 -0
  89. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/States.h +29 -0
  90. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNPermissionsSpec/RNPermissionsSpecJSI-generated.cpp +106 -0
  91. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNPermissionsSpec/RNPermissionsSpecJSI.h +226 -0
  92. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlobUtilSpec/ReactNativeBlobUtilSpecJSI-generated.cpp +449 -0
  93. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlobUtilSpec/ReactNativeBlobUtilSpecJSI.h +503 -0
  94. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnasyncstorage/rnasyncstorageJSI-generated.cpp +72 -0
  95. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnasyncstorage/rnasyncstorageJSI.h +116 -0
  96. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ComponentDescriptors.cpp +31 -0
  97. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ComponentDescriptors.h +33 -0
  98. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/EventEmitters.cpp +499 -0
  99. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/EventEmitters.h +422 -0
  100. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/Props.cpp +307 -0
  101. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/Props.h +1391 -0
  102. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ShadowNodes.cpp +26 -0
  103. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ShadowNodes.h +131 -0
  104. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/States.cpp +16 -0
  105. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/States.h +137 -0
  106. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/rnscreensJSI-generated.cpp +22 -0
  107. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/rnscreensJSI.h +64 -0
  108. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.cpp +22 -0
  109. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.h +24 -0
  110. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/EventEmitters.cpp +40 -0
  111. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/EventEmitters.h +47 -0
  112. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp +33 -0
  113. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.h +85 -0
  114. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ShadowNodes.cpp +17 -0
  115. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ShadowNodes.h +32 -0
  116. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/States.cpp +16 -0
  117. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/States.h +29 -0
  118. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/safeareacontextJSI-generated.cpp +26 -0
  119. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/safeareacontextJSI.h +71 -0
  120. package/android/app/build/generated/source/codegen/jni/rnasyncstorage-generated.cpp +62 -0
  121. package/android/app/build/generated/source/codegen/jni/rnasyncstorage.h +31 -0
  122. package/android/app/build/generated/source/codegen/jni/rnscreens-generated.cpp +29 -0
  123. package/android/app/build/generated/source/codegen/jni/rnscreens.h +31 -0
  124. package/android/app/build/generated/source/codegen/jni/safeareacontext-generated.cpp +32 -0
  125. package/android/app/build/generated/source/codegen/jni/safeareacontext.h +31 -0
  126. package/android/build.gradle +5 -5
  127. package/android/gradle.properties +5 -5
  128. package/android/src/main/AndroidManifest.xml +2 -2
  129. package/android/src/main/java/com/{partnerreactnativesdk/PartnerReactNativeSdkModule.kt → bankingdcbsdkreactnative/BankingDcbSdkReactNativeModule.kt} +3 -3
  130. package/android/src/main/java/com/{partnerreactnativesdk/PartnerReactNativeSdkPackage.kt → bankingdcbsdkreactnative/BankingDcbSdkReactNativePackage.kt} +3 -3
  131. package/ios/BankingDcbSdkReactNative.h +6 -0
  132. package/ios/PartnerReactNativeSdk.mm +3 -3
  133. package/lib/module/helpers/banking_dcb_react_native.js +121 -13
  134. package/lib/module/helpers/banking_dcb_react_native.js.map +1 -1
  135. package/lib/module/helpers/utils/Constants.js +10 -7
  136. package/lib/module/helpers/utils/Constants.js.map +1 -1
  137. package/lib/module/helpers/utils/webviewCallback.js +11 -0
  138. package/lib/module/helpers/utils/webviewCallback.js.map +1 -1
  139. package/lib/module/helpers/webview.js +26 -104
  140. package/lib/module/helpers/webview.js.map +1 -1
  141. package/lib/typescript/src/helpers/banking_dcb_react_native.d.ts +1 -2
  142. package/lib/typescript/src/helpers/banking_dcb_react_native.d.ts.map +1 -1
  143. package/lib/typescript/src/helpers/utils/Constants.d.ts +3 -0
  144. package/lib/typescript/src/helpers/utils/Constants.d.ts.map +1 -1
  145. package/lib/typescript/src/helpers/utils/webviewCallback.d.ts +10 -1
  146. package/lib/typescript/src/helpers/utils/webviewCallback.d.ts.map +1 -1
  147. package/lib/typescript/src/helpers/webview.d.ts.map +1 -1
  148. package/package.json +1 -1
  149. package/src/helpers/banking_dcb_react_native.tsx +138 -20
  150. package/src/helpers/utils/Constants.tsx +11 -9
  151. package/src/helpers/utils/webviewCallback.tsx +32 -16
  152. package/src/helpers/webview.tsx +28 -108
  153. package/ios/PartnerReactNativeSdk.h +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAcjC,UAAU,oBAAqB,SAAQ,YAAY;IACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AACD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAc7C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCtE;AAuBD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CA6fpB,CAAC"}
1
+ {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAcjC,UAAU,oBAAqB,SAAQ,YAAY;IACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AACD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAc7C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCtE;AAWD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAybpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banking_dcb_sdk_react_native",
3
- "version": "1.0.775",
3
+ "version": "2.0.0",
4
4
  "description": "React Native package for partner integrating with DCB",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -1,15 +1,26 @@
1
1
  import { APICall } from './network/APICall';
2
2
  import { DeviceInfoManager } from './utils/deviceInfoManager';
3
3
  import { LibraryConstants } from './utils/LibraryConstants';
4
- import { type WebViewCallbackFunction } from './utils/webviewCallback';
4
+ import {
5
+ SdkCallbackStatus,
6
+ WebViewCallback,
7
+ type WebViewCallbackFunction,
8
+ } from './utils/webviewCallback';
5
9
  import { ServiceNames } from './ServiceNames';
6
10
  import { Constants } from './utils/Constants';
7
11
  import { WebView } from './webview';
8
12
  import { SafeAreaView } from 'react-native-safe-area-context';
9
- import { StatusBar } from 'react-native';
13
+ import {
14
+ Alert,
15
+ PermissionsAndroid,
16
+ Platform,
17
+ StatusBar,
18
+ ToastAndroid,
19
+ } from 'react-native';
10
20
  export type { WebViewCallbackFunction } from './utils/webviewCallback';
11
21
  import { AnalyticsLogger } from './analytics/analytics_logger';
12
22
  import * as base64js from 'base64-js';
23
+ // import GetLocation, { type Location } from 'react-native-get-location';
13
24
 
14
25
  type InitOptions = {
15
26
  whitelistedDomains: string[];
@@ -28,7 +39,6 @@ export class BankingDcbReactNative {
28
39
 
29
40
  private _apiCall = new APICall();
30
41
  static webViewCallback: WebViewCallbackFunction;
31
- private _analyticsLogger!: AnalyticsLogger;
32
42
  private constructor() {}
33
43
 
34
44
  static getInstance(): BankingDcbReactNative {
@@ -45,7 +55,7 @@ export class BankingDcbReactNative {
45
55
  deviceBindingEnabled: false,
46
56
  }
47
57
  ): Promise<void> {
48
- // console.log("PartnerLibrary.init - initialized:", PartnerLibrary.intialized);
58
+ console.log('SDK LOG: SDK INITIALIZED');
49
59
  if (BankingDcbReactNative.intialized) return;
50
60
 
51
61
  try {
@@ -82,7 +92,6 @@ export class BankingDcbReactNative {
82
92
  whitelistedDomains: whitelistedDomains,
83
93
  deviceBinding: deviceBindingEnabled,
84
94
  });
85
- this._analyticsLogger = new AnalyticsLogger();
86
95
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_INTIALIZED' });
87
96
  }
88
97
 
@@ -90,7 +99,7 @@ export class BankingDcbReactNative {
90
99
  module: string,
91
100
  token: string,
92
101
  WebViewCallbackFunction: WebViewCallbackFunction
93
- ): Promise<React.ReactElement> {
102
+ ): Promise<React.ReactElement | null> {
94
103
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_OPEN_FN_CALLED' });
95
104
 
96
105
  if (!BankingDcbReactNative.intialized) {
@@ -122,7 +131,7 @@ export class BankingDcbReactNative {
122
131
  bank: string,
123
132
  url: string,
124
133
  WebViewCallbackFunction: WebViewCallbackFunction
125
- ): Promise<React.ReactElement> {
134
+ ): Promise<React.ReactElement | null> {
126
135
  // this._analyticsLogger.logEvent({
127
136
  // event: 'REACT_NATIVE_DEVICE_BINDING_CALLED',
128
137
  // });
@@ -143,7 +152,7 @@ export class BankingDcbReactNative {
143
152
  bank: string,
144
153
  token: string,
145
154
  WebViewCallbackFunction: WebViewCallbackFunction
146
- ): Promise<React.ReactElement> {
155
+ ): Promise<React.ReactElement | null> {
147
156
  // console.log("PartnerLibrary._loginAndNavigateToWebView - LibraryConstants.hostName:", LibraryConstants.hostName);
148
157
  try {
149
158
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_LOGIN_FN_CALLED' });
@@ -207,7 +216,7 @@ export class BankingDcbReactNative {
207
216
  bank: string,
208
217
  url: string,
209
218
  WebViewCallbackFunction: WebViewCallbackFunction
210
- ): Promise<React.ReactElement> {
219
+ ): Promise<React.ReactElement | null> {
211
220
  try {
212
221
  console.log('SDK:LOG: in setup device session');
213
222
 
@@ -219,22 +228,38 @@ export class BankingDcbReactNative {
219
228
  console.log('App Version:', appVersion);
220
229
  }
221
230
  console.log('SDK:LOG device uuid is ');
222
-
231
+ // const position = await this._getCurrentLocationIfPossible(
232
+ // BankingDcbReactNative.webViewCallback
233
+ // );
234
+
235
+ // if (!position) {
236
+ // console.log('SDK:LOG: location fetched is : ', position);
237
+ // return null;
238
+ // }
239
+
240
+ // const latitude = String(position.latitude);
241
+ // const longitude = String(position.longitude);
242
+
243
+ const body: JSONMap = {
244
+ [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
245
+ [Constants.MODEL]: deviceInfo[Constants.MODEL],
246
+ [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
247
+ [Constants.OS]: deviceInfo[Constants.OS],
248
+ [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
249
+ [Constants.APP_VERSION]: appVersion,
250
+ // [Constants.LATITUDE]: latitude,
251
+ // [Constants.LONGITUDE]: longitude,
252
+ // [Constants.ACCURACY]: String(position.accuracy),
253
+ };
254
+ console.log('SDK:LOG: body for device session is : ', body);
223
255
  const response = await this._apiCall.callAPI(
224
256
  'POST',
225
257
  ServiceNames.DEVICE_SESSION.params({ partner: bank }),
226
258
  {
227
- body: {
228
- [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
229
- [Constants.MODEL]: deviceInfo[Constants.MODEL],
230
- [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
231
- [Constants.OS]: deviceInfo[Constants.OS],
232
- [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
233
- [Constants.APP_VERSION]: appVersion,
234
- },
259
+ body,
235
260
  }
236
261
  );
237
- //console.log("response from setup device session is : ", response)
262
+ console.log('response from setup device session is : ', response);
238
263
  if (
239
264
  response &&
240
265
  response.data &&
@@ -380,7 +405,7 @@ export class BankingDcbReactNative {
380
405
  [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
381
406
  [Constants.MODEL]: deviceInfo[Constants.MODEL],
382
407
  [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
383
- [Constants.OS]: deviceInfo[Constants.OS], // "Android"/"iOS" from your manager
408
+ [Constants.OS]: deviceInfo[Constants.OS],
384
409
  [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
385
410
  [Constants.APP_VERSION]: appVersion,
386
411
  },
@@ -410,4 +435,97 @@ export class BankingDcbReactNative {
410
435
  };
411
436
  }
412
437
  }
438
+
439
+ // private async _getCurrentLocationIfPossible(
440
+ // webViewCallback: WebViewCallbackFunction
441
+ // ): Promise<Location | null> {
442
+ // try {
443
+ // console.log('SDK:LOG: in get current location');
444
+
445
+ // if (Platform.OS === 'android') {
446
+ // const hasFineLocation = await PermissionsAndroid.check(
447
+ // PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
448
+ // );
449
+
450
+ // let result: string;
451
+
452
+ // if (!hasFineLocation) {
453
+ // result = await PermissionsAndroid.request(
454
+ // PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
455
+ // );
456
+ // } else {
457
+ // result = PermissionsAndroid.RESULTS.GRANTED;
458
+ // }
459
+
460
+ // console.log('SDK:LOG: ANDROID LOCATION PERMISSION RESULT =>', result);
461
+
462
+ // if (result === PermissionsAndroid.RESULTS.DENIED) {
463
+ // webViewCallback(
464
+ // WebViewCallback.sdkEvent(
465
+ // SdkCallbackStatus.userLocationPermissionDenied
466
+ // )
467
+ // );
468
+ // return null;
469
+ // }
470
+
471
+ // if (result === PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN) {
472
+ // ToastAndroid.show(
473
+ // 'Location permission denied. Please enable it from Settings.',
474
+ // ToastAndroid.LONG
475
+ // );
476
+ // webViewCallback(
477
+ // WebViewCallback.sdkEvent(
478
+ // SdkCallbackStatus.userLocationPermissionPermanentlyDenied
479
+ // )
480
+ // );
481
+ // return null;
482
+ // }
483
+ // }
484
+
485
+ // const location = await GetLocation.getCurrentPosition({
486
+ // enableHighAccuracy: true,
487
+ // timeout: 15000,
488
+ // });
489
+
490
+ // console.log('SDK:LOG: 📍 Got position via GetLocation:', {
491
+ // latitude: location.latitude,
492
+ // longitude: location.longitude,
493
+ // accuracy: location.accuracy,
494
+ // time: location.time,
495
+ // });
496
+
497
+ // return location;
498
+ // } catch (error: any) {
499
+ // console.log(
500
+ // 'SDK:LOG: Error while fetching location (GetLocation):',
501
+ // error
502
+ // );
503
+
504
+ // const code = error?.code as string | undefined;
505
+
506
+ // if (code === 'UNAUTHORIZED') {
507
+ // webViewCallback(
508
+ // WebViewCallback.sdkEvent(
509
+ // SdkCallbackStatus.userLocationPermissionDenied
510
+ // )
511
+ // );
512
+ // } else if (code === 'UNAVAILABLE') {
513
+ // webViewCallback(
514
+ // WebViewCallback.sdkEvent(
515
+ // SdkCallbackStatus.userLocationServiceDisabled
516
+ // )
517
+ // );
518
+ // } else if (code === 'TIMEOUT') {
519
+ // webViewCallback(
520
+ // WebViewCallback.sdkEvent(SdkCallbackStatus.userLocationFetchError)
521
+ // );
522
+ // } else {
523
+ // webViewCallback(
524
+ // WebViewCallback.sdkEvent(SdkCallbackStatus.userLocationFetchError)
525
+ // );
526
+ // }
527
+
528
+ // return null;
529
+ // }
530
+ // }
413
531
  }
@@ -1,10 +1,12 @@
1
1
  export const Constants = {
2
-
3
- MANUFACTURER: "manufacturer",
4
- MODEL: "model",
5
- OS: "os",
6
- OS_VERSION: "os_version",
7
- APP_VERSION: "app_version",
8
- DEVICE_UUID: "device_uuid",
9
- PRIMARY_COLOR: "#3F51B5"
10
- } as const;
2
+ MANUFACTURER: 'manufacturer',
3
+ MODEL: 'model',
4
+ OS: 'os',
5
+ OS_VERSION: 'os_version',
6
+ APP_VERSION: 'app_version',
7
+ DEVICE_UUID: 'device_uuid',
8
+ PRIMARY_COLOR: '#3F51B5',
9
+ LATITUDE: 'latitude',
10
+ LONGITUDE: 'longitude',
11
+ ACCURACY: 'accuracy',
12
+ } as const;
@@ -1,25 +1,41 @@
1
1
  export enum WebViewCallbackType {
2
-
3
- Logout = "logout",
4
- Redirect = "redirect"
2
+ Logout = 'logout',
3
+ Redirect = 'redirect',
4
+ SdkEvent = 'sdkEvent',
5
5
  }
6
6
 
7
7
  export class WebViewCallback {
8
- type: WebViewCallbackType;
9
- status?: string | null;
8
+ type: WebViewCallbackType;
9
+ status?: string | null;
10
+
11
+ private constructor(type: WebViewCallbackType, status?: string | null) {
12
+ this.type = type;
13
+ this.status = status;
14
+ }
10
15
 
11
- private constructor(type: WebViewCallbackType, status?: string | null) {
12
- this.type = type;
13
- this.status = status;
14
- }
16
+ static logout(): WebViewCallback {
17
+ return new WebViewCallback(WebViewCallbackType.Logout);
18
+ }
15
19
 
16
- static logout(): WebViewCallback {
17
- return new WebViewCallback(WebViewCallbackType.Logout);
18
- }
20
+ static redirect(status?: string | null): WebViewCallback {
21
+ return new WebViewCallback(WebViewCallbackType.Redirect, status);
22
+ }
19
23
 
20
- static redirect(status?: string | null): WebViewCallback {
21
- return new WebViewCallback(WebViewCallbackType.Redirect, status);
22
- }
24
+ static sdkEvent(status: string): WebViewCallback {
25
+ return new WebViewCallback(WebViewCallbackType.SdkEvent, status);
26
+ }
23
27
  }
24
28
 
25
- export type WebViewCallbackFunction = (callback: WebViewCallback) => void;
29
+ export type WebViewCallbackFunction = (callback: WebViewCallback) => void;
30
+
31
+ export class SdkCallbackStatus {
32
+ static readonly userLocationPermissionGranted =
33
+ 'USER_LOCATION_PERMISSION_GRANTED';
34
+ static readonly userLocationPermissionDenied =
35
+ 'USER_LOCATION_PERMISSION_DENIED';
36
+ static readonly userLocationPermissionPermanentlyDenied =
37
+ 'USER_LOCATION_PERMISSION_PERMANENTLY_DENIED';
38
+ static readonly userLocationServiceDisabled =
39
+ 'USER_LOCATION_SERVICE_DISABLED';
40
+ static readonly userLocationFetchError = 'USER_LOCATION_FETCH_ERROR';
41
+ }
@@ -111,18 +111,6 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
111
111
 
112
112
  return false;
113
113
  }
114
- const isUserClosedRedirect = (url?: string | null): boolean => {
115
- if (!url) return false;
116
- try {
117
- // Try to parse URL properly
118
- const u = new URL(url);
119
- if (!u.pathname.includes('/api/user/redirect')) return false;
120
- return u.searchParams.get('status') === 'USER_CLOSED';
121
- } catch {
122
- // Fallback for relative / malformed URLs
123
- return url.includes('/api/user/redirect?status=USER_CLOSED');
124
- }
125
- };
126
114
 
127
115
  const clearAllCookies = async () => {
128
116
  try {
@@ -143,10 +131,8 @@ export const WebView = ({
143
131
  }: WebViewCustomProps) => {
144
132
  const webviewRef = useRef<RNWebView | null>(null);
145
133
  const [canGoBack, setCanGoBack] = useState(false);
146
- const waitingForUserClosedRedirectRef = useRef(false);
147
- const hasUserClosedRef = useRef(false);
148
-
149
134
  const canGoBackRef = useRef(false);
135
+ const hasUserClosedRef = useRef(false);
150
136
 
151
137
  // const [hasRedirected, setHasRedirected] = useState(false);
152
138
  const [, setToast] = useState<{ visible: boolean; message: string } | null>(
@@ -285,20 +271,6 @@ export const WebView = ({
285
271
  return true;
286
272
  }
287
273
 
288
- // 1. SPECIAL CASE: only USER_CLOSED navigation
289
- if (isUserClosedRedirect(url)) {
290
- console.log(
291
- 'SDK:LOG: USER_CLOSED redirect detected via navigation:',
292
- url
293
- );
294
-
295
- StatusBar.setBackgroundColor('#7E7E7EFF');
296
- clearAllCookies();
297
- onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
298
-
299
- return false; // don't actually load that URL in WebView
300
- }
301
-
302
274
  if (Platform.OS === 'android' && url) {
303
275
  if (url.includes('ms-outlook://')) {
304
276
  console.log('SDK:LOG: Intent to open Outlook detected');
@@ -404,7 +376,6 @@ export const WebView = ({
404
376
  );
405
377
 
406
378
  // Cookie injection script
407
-
408
379
  const injectedJavaScript = `
409
380
  (function() {
410
381
  function safePost(msg) {
@@ -415,13 +386,21 @@ export const WebView = ({
415
386
  } catch (e) {}
416
387
  }
417
388
 
418
- // Let RN know injection actually ran
419
- safePost({
420
- type: 'INJECT_READY',
421
- href: window.location.href
422
- });
389
+ // Preserve any existing window.onerror
390
+ var previousOnError = window.onerror || null;
391
+ window.onerror = function(message, source, lineno, colno, error) {
392
+ try {
393
+ if (String(message || '').indexOf('RATE_LIMIT_USER') !== -1 &&
394
+ window.ReactNativeWebView) {
395
+ safePost({ type: 'RATE_LIMIT_ERROR' });
396
+ }
397
+ } catch (e) {}
398
+ if (typeof previousOnError === 'function') {
399
+ try { return previousOnError.apply(this, arguments); } catch (e) {}
400
+ }
401
+ };
423
402
 
424
- // Spy on history.back()
403
+ // Patch history.back() to notify the app
425
404
  if (window.history && typeof window.history.back === 'function') {
426
405
  var originalBack = window.history.back;
427
406
  window.history.back = function() {
@@ -432,70 +411,6 @@ export const WebView = ({
432
411
  return originalBack.apply(this, arguments);
433
412
  };
434
413
  }
435
-
436
- // Spy on location.assign / replace
437
- try {
438
- var originalAssign = window.location.assign
439
- ? window.location.assign.bind(window.location)
440
- : null;
441
- var originalReplace = window.location.replace
442
- ? window.location.replace.bind(window.location)
443
- : null;
444
-
445
- if (originalAssign) {
446
- window.location.assign = function(url) {
447
- safePost({
448
- type: 'LOCATION_ASSIGN',
449
- url: url,
450
- from: window.location.href
451
- });
452
- return originalAssign(url);
453
- };
454
- }
455
-
456
- if (originalReplace) {
457
- window.location.replace = function(url) {
458
- safePost({
459
- type: 'LOCATION_REPLACE',
460
- url: url,
461
- from: window.location.href
462
- });
463
- return originalReplace(url);
464
- };
465
- }
466
-
467
- // Spy on direct href writes (best-effort)
468
- try {
469
- var currentHref = window.location.href;
470
- Object.defineProperty(window.location, 'href', {
471
- get: function() {
472
- return currentHref;
473
- },
474
- set: function(val) {
475
- safePost({
476
- type: 'LOCATION_HREF_SET',
477
- url: val,
478
- from: currentHref
479
- });
480
- currentHref = val;
481
- if (originalAssign) {
482
- return originalAssign(val);
483
- }
484
- }
485
- });
486
- } catch (e) {
487
- // Some browsers/WebViews don't allow redefining href; ignore
488
- safePost({
489
- type: 'LOCATION_HREF_PATCH_FAILED',
490
- error: String(e)
491
- });
492
- }
493
- } catch (e) {
494
- safePost({
495
- type: 'LOCATION_SPY_ERROR',
496
- error: String(e)
497
- });
498
- }
499
414
  })();
500
415
  true;
501
416
  `;
@@ -567,12 +482,12 @@ export const WebView = ({
567
482
  const handleMessage = (event: WebViewMessageEvent) => {
568
483
  try {
569
484
  const data = JSON.parse(event.nativeEvent.data);
570
- console.log('SDK:LOG: onMessage data =', data);
485
+ console.log('SDK:LOG: onMessage data =');
571
486
 
487
+ // 1) history.back() from a "root" page → treat as USER_CLOSED
572
488
  if (data?.type === 'HISTORY_BACK_CALLED') {
573
489
  console.log('SDK:LOG: HISTORY_BACK_CALLED at', data.href);
574
490
 
575
- // If WebView has no back history, treat this as "user closed"
576
491
  if (!canGoBackRef.current && !hasUserClosedRef.current) {
577
492
  hasUserClosedRef.current = true;
578
493
 
@@ -583,17 +498,22 @@ export const WebView = ({
583
498
  StatusBar.setBackgroundColor('#7E7E7EFF');
584
499
  clearAllCookies();
585
500
  onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
586
-
587
- // Now ask the host to close this WebView screen
588
- // e.g. if this component is wrapped in a modal/screen, call:
589
- // options?.onClose?.();
590
501
  }
591
502
 
592
503
  return;
593
504
  }
594
505
 
595
- // keep other existing handlers if you need them
596
- // e.g. CLOSE_CLICKED, API_USER_CLOSED from fetch/xhr, RATE_LIMIT_ERROR, etc.
506
+ if (data?.type === 'RATE_LIMIT_ERROR') {
507
+ console.log('SDK:LOG: RATE_LIMIT_ERROR received from web');
508
+ ToastAndroid.show(
509
+ 'Too many requests. Please try after 1 minute',
510
+ ToastAndroid.LONG
511
+ );
512
+ // StatusBar.setBackgroundColor('#7E7E7EFF');
513
+ // clearAllCookies();
514
+ // onCallback?.(WebViewCallback.redirect('RATE_LIMIT_ERROR'));
515
+ // return;
516
+ }
597
517
  } catch (e) {
598
518
  console.warn('SDK:LOG: Error parsing WebView message', e);
599
519
  }
@@ -1,6 +0,0 @@
1
-
2
- #import <PartnerReactNativeSdk/RNPartnerReactNativeSdkSpec.h>
3
-
4
- @interface PartnerReactNativeSdk : NSObject <NativePartnerReactNativeSdkSpec>
5
-
6
- @end