react-native-unit-components 1.13.0 → 1.14.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 (264) hide show
  1. package/android/src/main/java/com/unitreactnativecomponents/UnitAddToWalletButtonViewManager.kt +1 -0
  2. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +9 -1
  3. package/android/src/main/java/com/unitreactnativecomponents/extensions/ContextExtensions.kt +2 -0
  4. package/android/src/main/java/com/unitreactnativecomponents/secureView/UNSecureViewManager.kt +19 -0
  5. package/android/src/main/java/com/unitreactnativecomponents/security/UNSecurityHelper.kt +37 -0
  6. package/android/src/main/java/com/unitreactnativecomponents/unSnapshotProtectionManager/UNSnapshotProtectionManager.kt +42 -0
  7. package/ios/UNSecurity/UNSecurityHelper.swift +90 -0
  8. package/ios/UNSecurity/UNSecurityHelperExportModule.m +7 -0
  9. package/ios/UNSharedServicesProvider/UNAppStateService.swift +38 -0
  10. package/ios/UNSharedServicesProvider/UNGlobalSnapshotProtectionService.swift +93 -0
  11. package/ios/UNSharedServicesProvider/UNPresentationService.swift +37 -0
  12. package/ios/UNSharedServicesProvider/UNSharedServicesProviderManager.swift +45 -0
  13. package/ios/UNSnapshotProtectionManager/UNSnapshotProtectionManager.swift +20 -0
  14. package/ios/UNSnapshotProtectionManager/UNSnapshotProtectionManagerExportModule.m +5 -0
  15. package/ios/UnitReactNativeComponents.xcodeproj/project.pbxproj +16 -0
  16. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +22 -21
  17. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  18. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +22 -21
  19. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  20. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +4 -3
  21. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  22. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +19 -20
  23. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  24. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +24 -21
  25. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  26. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  27. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +4 -3
  28. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  29. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +18 -19
  30. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  31. package/lib/commonjs/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.js +7 -1
  32. package/lib/commonjs/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.js.map +1 -1
  33. package/lib/commonjs/components/UNMultipleCardsComponent/UNMultipleCardsComponent.js +19 -20
  34. package/lib/commonjs/components/UNMultipleCardsComponent/UNMultipleCardsComponent.js.map +1 -1
  35. package/lib/commonjs/components/UNNextRepaymentComponent/UNNextRepaymentComponent.js +4 -3
  36. package/lib/commonjs/components/UNNextRepaymentComponent/UNNextRepaymentComponent.js.map +1 -1
  37. package/lib/commonjs/components/UNPayeeManagementComponent/UNPayeeManagementComponent.js +7 -2
  38. package/lib/commonjs/components/UNPayeeManagementComponent/UNPayeeManagementComponent.js.map +1 -1
  39. package/lib/commonjs/components/UNProgramDetailsComponent/UNProgramDetailsComponent.js +4 -3
  40. package/lib/commonjs/components/UNProgramDetailsComponent/UNProgramDetailsComponent.js.map +1 -1
  41. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js +7 -2
  42. package/lib/commonjs/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js.map +1 -1
  43. package/lib/commonjs/components/UNWirePaymentComponent/UNWirePaymentComponent.js +91 -0
  44. package/lib/commonjs/components/UNWirePaymentComponent/UNWirePaymentComponent.js.map +1 -0
  45. package/lib/commonjs/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.js +29 -0
  46. package/lib/commonjs/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.js.map +1 -0
  47. package/lib/commonjs/components/UNWirePaymentComponent/index.js +21 -0
  48. package/lib/commonjs/components/UNWirePaymentComponent/index.js.map +1 -0
  49. package/lib/commonjs/components/index.js +11 -0
  50. package/lib/commonjs/components/index.js.map +1 -1
  51. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +2 -1
  52. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
  53. package/lib/commonjs/hooks/useIsJailbrokeDevice.js +22 -0
  54. package/lib/commonjs/hooks/useIsJailbrokeDevice.js.map +1 -0
  55. package/lib/commonjs/hooks/useSnapshotProtection.js +31 -0
  56. package/lib/commonjs/hooks/useSnapshotProtection.js.map +1 -0
  57. package/lib/commonjs/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.js +6 -1
  58. package/lib/commonjs/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.js.map +1 -1
  59. package/lib/commonjs/nativeComponents/UNBaseView/UNBaseView.js +39 -0
  60. package/lib/commonjs/nativeComponents/UNBaseView/UNBaseView.js.map +1 -0
  61. package/lib/commonjs/nativeComponents/UNBaseView/index.js +14 -0
  62. package/lib/commonjs/nativeComponents/UNBaseView/index.js.map +1 -0
  63. package/lib/commonjs/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.js +26 -0
  64. package/lib/commonjs/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.js.map +1 -0
  65. package/lib/commonjs/nativeModulesHelpers/UNSecurityHelper.js +39 -0
  66. package/lib/commonjs/nativeModulesHelpers/UNSecurityHelper.js.map +1 -0
  67. package/lib/commonjs/networking/common/UNNetworkConstants.js +2 -1
  68. package/lib/commonjs/networking/common/UNNetworkConstants.js.map +1 -1
  69. package/lib/commonjs/types/internal/webComponent.types.js +1 -0
  70. package/lib/commonjs/types/internal/webComponent.types.js.map +1 -1
  71. package/lib/commonjs/types/shared/env.types.js +1 -0
  72. package/lib/commonjs/types/shared/env.types.js.map +1 -1
  73. package/lib/commonjs/types/shared/index.js +11 -0
  74. package/lib/commonjs/types/shared/index.js.map +1 -1
  75. package/lib/commonjs/types/shared/payments.types.js +1 -0
  76. package/lib/commonjs/types/shared/payments.types.js.map +1 -1
  77. package/lib/commonjs/types/shared/securitySettings.js +12 -0
  78. package/lib/commonjs/types/shared/securitySettings.js.map +1 -0
  79. package/lib/commonjs/types/shared/wirePayment.types.js +6 -0
  80. package/lib/commonjs/types/shared/wirePayment.types.js.map +1 -0
  81. package/lib/commonjs/unitSdkManager/UnitSdk.constants.js +6 -1
  82. package/lib/commonjs/unitSdkManager/UnitSdk.constants.js.map +1 -1
  83. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +22 -5
  84. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
  85. package/lib/commonjs/unitSdkManager/UnitSdkManager.utils.internal.js +2 -0
  86. package/lib/commonjs/unitSdkManager/UnitSdkManager.utils.internal.js.map +1 -1
  87. package/lib/commonjs/utils/onLoadMessages.utils.js +10 -0
  88. package/lib/commonjs/utils/onLoadMessages.utils.js.map +1 -0
  89. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +23 -22
  90. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  91. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +23 -22
  92. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  93. package/lib/module/components/UNAccountComponent/UNAccountComponent.js +4 -3
  94. package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  95. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +20 -21
  96. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  97. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +24 -21
  98. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  99. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  100. package/lib/module/components/UNCardComponent/UNCardComponent.js +4 -3
  101. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  102. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +19 -20
  103. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  104. package/lib/module/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.js +7 -1
  105. package/lib/module/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.js.map +1 -1
  106. package/lib/module/components/UNMultipleCardsComponent/UNMultipleCardsComponent.js +20 -21
  107. package/lib/module/components/UNMultipleCardsComponent/UNMultipleCardsComponent.js.map +1 -1
  108. package/lib/module/components/UNNextRepaymentComponent/UNNextRepaymentComponent.js +4 -3
  109. package/lib/module/components/UNNextRepaymentComponent/UNNextRepaymentComponent.js.map +1 -1
  110. package/lib/module/components/UNPayeeManagementComponent/UNPayeeManagementComponent.js +7 -2
  111. package/lib/module/components/UNPayeeManagementComponent/UNPayeeManagementComponent.js.map +1 -1
  112. package/lib/module/components/UNProgramDetailsComponent/UNProgramDetailsComponent.js +4 -3
  113. package/lib/module/components/UNProgramDetailsComponent/UNProgramDetailsComponent.js.map +1 -1
  114. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js +7 -2
  115. package/lib/module/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.js.map +1 -1
  116. package/lib/module/components/UNWirePaymentComponent/UNWirePaymentComponent.js +83 -0
  117. package/lib/module/components/UNWirePaymentComponent/UNWirePaymentComponent.js.map +1 -0
  118. package/lib/module/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.js +21 -0
  119. package/lib/module/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.js.map +1 -0
  120. package/lib/module/components/UNWirePaymentComponent/index.js +2 -0
  121. package/lib/module/components/UNWirePaymentComponent/index.js.map +1 -0
  122. package/lib/module/components/index.js +1 -0
  123. package/lib/module/components/index.js.map +1 -1
  124. package/lib/module/helpers/BottomSheet/BottomSheet.js +2 -1
  125. package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
  126. package/lib/module/hooks/useIsJailbrokeDevice.js +14 -0
  127. package/lib/module/hooks/useIsJailbrokeDevice.js.map +1 -0
  128. package/lib/module/hooks/useSnapshotProtection.js +23 -0
  129. package/lib/module/hooks/useSnapshotProtection.js.map +1 -0
  130. package/lib/module/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.js +6 -1
  131. package/lib/module/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.js.map +1 -1
  132. package/lib/module/nativeComponents/UNBaseView/UNBaseView.js +31 -0
  133. package/lib/module/nativeComponents/UNBaseView/UNBaseView.js.map +1 -0
  134. package/lib/module/nativeComponents/UNBaseView/index.js +2 -0
  135. package/lib/module/nativeComponents/UNBaseView/index.js.map +1 -0
  136. package/lib/module/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.js +20 -0
  137. package/lib/module/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.js.map +1 -0
  138. package/lib/module/nativeModulesHelpers/UNSecurityHelper.js +33 -0
  139. package/lib/module/nativeModulesHelpers/UNSecurityHelper.js.map +1 -0
  140. package/lib/module/networking/common/UNNetworkConstants.js +2 -1
  141. package/lib/module/networking/common/UNNetworkConstants.js.map +1 -1
  142. package/lib/module/types/internal/webComponent.types.js +1 -0
  143. package/lib/module/types/internal/webComponent.types.js.map +1 -1
  144. package/lib/module/types/shared/env.types.js +1 -0
  145. package/lib/module/types/shared/env.types.js.map +1 -1
  146. package/lib/module/types/shared/index.js +1 -0
  147. package/lib/module/types/shared/index.js.map +1 -1
  148. package/lib/module/types/shared/payments.types.js +1 -0
  149. package/lib/module/types/shared/payments.types.js.map +1 -1
  150. package/lib/module/types/shared/securitySettings.js +6 -0
  151. package/lib/module/types/shared/securitySettings.js.map +1 -0
  152. package/lib/module/types/shared/wirePayment.types.js +2 -0
  153. package/lib/module/types/shared/wirePayment.types.js.map +1 -0
  154. package/lib/module/unitSdkManager/UnitSdk.constants.js +6 -1
  155. package/lib/module/unitSdkManager/UnitSdk.constants.js.map +1 -1
  156. package/lib/module/unitSdkManager/UnitSdkManager.js +22 -5
  157. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
  158. package/lib/module/unitSdkManager/UnitSdkManager.utils.internal.js +2 -0
  159. package/lib/module/unitSdkManager/UnitSdkManager.utils.internal.js.map +1 -1
  160. package/lib/module/utils/onLoadMessages.utils.js +4 -0
  161. package/lib/module/utils/onLoadMessages.utils.js.map +1 -0
  162. package/lib/typescript/src/components/UNACHCreditComponent/UNACHCreditComponent.d.ts.map +1 -1
  163. package/lib/typescript/src/components/UNACHDebitComponent/UNACHDebitComponent.d.ts.map +1 -1
  164. package/lib/typescript/src/components/UNAccountComponent/UNAccountComponent.d.ts.map +1 -1
  165. package/lib/typescript/src/components/UNActivityComponent/UNActivityComponent.d.ts.map +1 -1
  166. package/lib/typescript/src/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +1 -1
  167. package/lib/typescript/src/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts.map +1 -1
  168. package/lib/typescript/src/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts.map +1 -1
  169. package/lib/typescript/src/components/UNCardComponent/UNCardComponent.d.ts.map +1 -1
  170. package/lib/typescript/src/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts.map +1 -1
  171. package/lib/typescript/src/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.d.ts.map +1 -1
  172. package/lib/typescript/src/components/UNMultipleCardsComponent/UNMultipleCardsComponent.d.ts.map +1 -1
  173. package/lib/typescript/src/components/UNNextRepaymentComponent/UNNextRepaymentComponent.d.ts.map +1 -1
  174. package/lib/typescript/src/components/UNPayeeManagementComponent/UNPayeeManagementComponent.d.ts.map +1 -1
  175. package/lib/typescript/src/components/UNProgramDetailsComponent/UNProgramDetailsComponent.d.ts.map +1 -1
  176. package/lib/typescript/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.d.ts.map +1 -1
  177. package/lib/typescript/src/components/UNWirePaymentComponent/UNWirePaymentComponent.d.ts +20 -0
  178. package/lib/typescript/src/components/UNWirePaymentComponent/UNWirePaymentComponent.d.ts.map +1 -0
  179. package/lib/typescript/src/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.d.ts +4 -0
  180. package/lib/typescript/src/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.d.ts.map +1 -0
  181. package/lib/typescript/src/components/UNWirePaymentComponent/index.d.ts +2 -0
  182. package/lib/typescript/src/components/UNWirePaymentComponent/index.d.ts.map +1 -0
  183. package/lib/typescript/src/components/index.d.ts +1 -0
  184. package/lib/typescript/src/components/index.d.ts.map +1 -1
  185. package/lib/typescript/src/helpers/BottomSheet/BottomSheet.d.ts.map +1 -1
  186. package/lib/typescript/src/hooks/useIsJailbrokeDevice.d.ts +2 -0
  187. package/lib/typescript/src/hooks/useIsJailbrokeDevice.d.ts.map +1 -0
  188. package/lib/typescript/src/hooks/useSnapshotProtection.d.ts +2 -0
  189. package/lib/typescript/src/hooks/useSnapshotProtection.d.ts.map +1 -0
  190. package/lib/typescript/src/messages/webMessages/onLoadMessage.d.ts +1 -1
  191. package/lib/typescript/src/messages/webMessages/onLoadMessage.d.ts.map +1 -1
  192. package/lib/typescript/src/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.d.ts.map +1 -1
  193. package/lib/typescript/src/nativeComponents/UNBaseView/UNBaseView.d.ts +11 -0
  194. package/lib/typescript/src/nativeComponents/UNBaseView/UNBaseView.d.ts.map +1 -0
  195. package/lib/typescript/src/nativeComponents/UNBaseView/index.d.ts +2 -0
  196. package/lib/typescript/src/nativeComponents/UNBaseView/index.d.ts.map +1 -0
  197. package/lib/typescript/src/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.d.ts +6 -0
  198. package/lib/typescript/src/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.d.ts.map +1 -0
  199. package/lib/typescript/src/nativeModulesHelpers/UNSecurityHelper.d.ts +12 -0
  200. package/lib/typescript/src/nativeModulesHelpers/UNSecurityHelper.d.ts.map +1 -0
  201. package/lib/typescript/src/networking/common/UNNetworkConstants.d.ts +1 -0
  202. package/lib/typescript/src/networking/common/UNNetworkConstants.d.ts.map +1 -1
  203. package/lib/typescript/src/types/internal/webComponent.types.d.ts +1 -0
  204. package/lib/typescript/src/types/internal/webComponent.types.d.ts.map +1 -1
  205. package/lib/typescript/src/types/shared/achCredit.types.d.ts +1 -1
  206. package/lib/typescript/src/types/shared/achCredit.types.d.ts.map +1 -1
  207. package/lib/typescript/src/types/shared/env.types.d.ts +2 -1
  208. package/lib/typescript/src/types/shared/env.types.d.ts.map +1 -1
  209. package/lib/typescript/src/types/shared/index.d.ts +1 -0
  210. package/lib/typescript/src/types/shared/index.d.ts.map +1 -1
  211. package/lib/typescript/src/types/shared/payments.types.d.ts +2 -1
  212. package/lib/typescript/src/types/shared/payments.types.d.ts.map +1 -1
  213. package/lib/typescript/src/types/shared/securitySettings.d.ts +8 -0
  214. package/lib/typescript/src/types/shared/securitySettings.d.ts.map +1 -0
  215. package/lib/typescript/src/types/shared/wirePayment.types.d.ts +42 -0
  216. package/lib/typescript/src/types/shared/wirePayment.types.d.ts.map +1 -0
  217. package/lib/typescript/src/unitSdkManager/UnitSdk.constants.d.ts +2 -0
  218. package/lib/typescript/src/unitSdkManager/UnitSdk.constants.d.ts.map +1 -1
  219. package/lib/typescript/src/unitSdkManager/UnitSdkManager.d.ts +5 -1
  220. package/lib/typescript/src/unitSdkManager/UnitSdkManager.d.ts.map +1 -1
  221. package/lib/typescript/src/unitSdkManager/UnitSdkManager.utils.internal.d.ts.map +1 -1
  222. package/lib/typescript/src/utils/onLoadMessages.utils.d.ts +2 -0
  223. package/lib/typescript/src/utils/onLoadMessages.utils.d.ts.map +1 -0
  224. package/package.json +1 -1
  225. package/react-native-unit-components.podspec +1 -1
  226. package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +11 -16
  227. package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +11 -17
  228. package/src/components/UNAccountComponent/UNAccountComponent.tsx +3 -3
  229. package/src/components/UNActivityComponent/UNActivityComponent.tsx +7 -14
  230. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +14 -17
  231. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +0 -1
  232. package/src/components/UNCardComponent/UNCardComponent.tsx +3 -3
  233. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +7 -14
  234. package/src/components/UNFundAccountPaymentComponent/UNFundAccountPaymentComponent.tsx +16 -12
  235. package/src/components/UNMultipleCardsComponent/UNMultipleCardsComponent.tsx +6 -14
  236. package/src/components/UNNextRepaymentComponent/UNNextRepaymentComponent.tsx +3 -3
  237. package/src/components/UNPayeeManagementComponent/UNPayeeManagementComponent.tsx +14 -11
  238. package/src/components/UNProgramDetailsComponent/UNProgramDetailsComponent.tsx +3 -3
  239. package/src/components/UNWhiteLabelAppComponent/UNWhiteLabelAppComponent.tsx +14 -11
  240. package/src/components/UNWirePaymentComponent/UNWirePaymentComponent.tsx +109 -0
  241. package/src/components/UNWirePaymentComponent/UNWirePaymentComponent.utils.ts +23 -0
  242. package/src/components/UNWirePaymentComponent/index.ts +1 -0
  243. package/src/components/index.ts +1 -0
  244. package/src/helpers/BottomSheet/BottomSheet.tsx +3 -4
  245. package/src/hooks/useIsJailbrokeDevice.ts +17 -0
  246. package/src/hooks/useSnapshotProtection.ts +25 -0
  247. package/src/messages/webMessages/onLoadMessage.ts +1 -1
  248. package/src/nativeComponents/UNAddToWallet/UNAddToWalletComponent/UNAddToWalletComponent.tsx +12 -11
  249. package/src/nativeComponents/UNBaseView/UNBaseView.tsx +50 -0
  250. package/src/nativeComponents/UNBaseView/index.ts +1 -0
  251. package/src/nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper.ts +21 -0
  252. package/src/nativeModulesHelpers/UNSecurityHelper.ts +35 -0
  253. package/src/networking/common/UNNetworkConstants.ts +2 -1
  254. package/src/types/internal/webComponent.types.ts +1 -0
  255. package/src/types/shared/achCredit.types.ts +1 -1
  256. package/src/types/shared/env.types.ts +2 -1
  257. package/src/types/shared/index.ts +1 -0
  258. package/src/types/shared/payments.types.ts +1 -0
  259. package/src/types/shared/securitySettings.ts +8 -0
  260. package/src/types/shared/wirePayment.types.ts +43 -0
  261. package/src/unitSdkManager/UnitSdk.constants.ts +6 -0
  262. package/src/unitSdkManager/UnitSdkManager.ts +33 -5
  263. package/src/unitSdkManager/UnitSdkManager.utils.internal.ts +3 -0
  264. package/src/utils/onLoadMessages.utils.ts +3 -0
@@ -0,0 +1,109 @@
1
+ import { WebComponent } from '../../webComponent/WebComponent';
2
+ import React, { useState } from 'react';
3
+ import { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';
4
+ import { withReduxStore } from '../../helpers/store/helpers';
5
+ import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
6
+ import { UNAccountData, UNError, UNOnLoadResponse, UNOnLoadResponseData } from '../../types/shared';
7
+ import { WebViewMessage } from '../../messages/webMessages';
8
+ import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
9
+ import { UnitMessage } from '../../messages/webMessages/unitMessages';
10
+ import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
11
+ import { getWirePaymentParams, getWirePaymentScript } from './UNWirePaymentComponent.utils';
12
+ import { UNWirePaymentData, WirePaymentCreatedEvent } from '../../types/shared/wirePayment.types';
13
+ import { UNBaseView } from '../../nativeComponents/UNBaseView';
14
+ import { ensureArray } from '../../utils/onLoadMessages.utils';
15
+
16
+ export interface UNWirePaymentComponentProps {
17
+ // inputs
18
+ customerToken: string;
19
+ accountId?: string;
20
+ fee?: number;
21
+
22
+ // ui
23
+ theme?: string;
24
+ language?: string;
25
+
26
+ isAutoFocus?: boolean;
27
+ initialStageBackButton?: boolean;
28
+ finalStageDoneButton?: boolean;
29
+
30
+ // events
31
+ onPaymentCreated?: (data: UNWirePaymentData) => void;
32
+ onLoad?: (response: UNOnLoadResponse<[UNAccountData]>) => void;
33
+ onInitialStageBackButtonClicked?: () => void;
34
+ onFinalStageDoneButtonClicked?: () => void;
35
+ }
36
+
37
+ const UNWirePaymentComponent = (props: UNWirePaymentComponentProps) => {
38
+ const [height, setHeight] = useState<number>(0);
39
+ const [presentationMode, setPresentationMode] = useState<PresentationMode>(PresentationMode.Inherit);
40
+
41
+ const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {
42
+ if (!props.onLoad) {
43
+ return;
44
+ }
45
+
46
+ if (RESPONSE_KEYS.errors in response) {
47
+ props.onLoad(response as UNError);
48
+ return;
49
+ }
50
+
51
+ if (RESPONSE_KEYS.account in response) {
52
+ const account = response[RESPONSE_KEYS.account].data;
53
+ const paymentOnLoad: UNOnLoadResponseData<[UNAccountData]> = {
54
+ data: ensureArray(account),
55
+ };
56
+ props.onLoad(paymentOnLoad);
57
+ return;
58
+ }
59
+
60
+ console.error('On Load Error: unexpected response type');
61
+ return;
62
+ };
63
+
64
+ const handleWebViewMessage = (message: WebViewMessage) => {
65
+ if (!message || !message.details) return;
66
+ switch (message.type) {
67
+ case PaymentMessage.INITIAL_STAGE_BACK_BUTTON_CLICKED: {
68
+ props.onInitialStageBackButtonClicked && props.onInitialStageBackButtonClicked();
69
+ break;
70
+ }
71
+ case PaymentMessage.FINAL_STAGE_DONE_BUTTON_CLICKED: {
72
+ props.onFinalStageDoneButtonClicked && props.onFinalStageDoneButtonClicked();
73
+ break;
74
+ }
75
+ case PaymentMessage.PAYMENT_CREATED:
76
+ props.onPaymentCreated && props.onPaymentCreated((message.details as WirePaymentCreatedEvent).data);
77
+ break;
78
+ case UnitMessage.UNIT_ON_LOAD:
79
+ handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);
80
+ break;
81
+ case PageMessage.PAGE_HEIGHT: {
82
+ const currentHeight = (message.details as HeightEvent).height;
83
+ setHeight(currentHeight);
84
+ if (presentationMode === PresentationMode.Inherit && currentHeight === 0) {
85
+ setPresentationMode(PresentationMode.Default);
86
+ }
87
+ break;
88
+ }
89
+ }
90
+ };
91
+
92
+ const style = presentationMode === PresentationMode.Inherit ? { flex: 1 } : { height: height };
93
+ return (
94
+ <UNBaseView style={style}>
95
+ <WebComponent
96
+ type={WebComponentType.wirePayment}
97
+ presentationMode={presentationMode}
98
+ params={getWirePaymentParams(props)}
99
+ script={getWirePaymentScript()}
100
+ onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
101
+ isScrollable={true}
102
+ theme={props.theme}
103
+ language={props.language}
104
+ />
105
+ </UNBaseView>
106
+ );
107
+ };
108
+
109
+ export default withReduxStore<UNWirePaymentComponentProps>(UNWirePaymentComponent);
@@ -0,0 +1,23 @@
1
+ import { LISTENERS } from '../../scripts/html/bodyScript';
2
+ import { UNWirePaymentComponentProps } from './UNWirePaymentComponent';
3
+
4
+ export const getWirePaymentParams = (props: UNWirePaymentComponentProps) => {
5
+ const accountIdParam = props.accountId ? `account-id="${props.accountId}"` : '';
6
+ const feeParam = props.fee ? `fee="${props.fee}"` : '';
7
+ return `
8
+ ${accountIdParam}
9
+ customer-token="${props.customerToken}"
10
+ ${feeParam}
11
+ is-auto-focus="${props.isAutoFocus || false}"
12
+ initial-stage-back-button="${props.initialStageBackButton ?? false}"
13
+ final-stage-done-button="${props.finalStageDoneButton ?? false}"
14
+ `;
15
+ };
16
+
17
+ export const getWirePaymentScript = () => {
18
+ return `
19
+ ${LISTENERS.unitPaymentCreated}
20
+ ${LISTENERS.unitPaymentInitialStageBackButtonClicked}
21
+ ${LISTENERS.unitPaymentFinalStageDoneButtonClicked}
22
+ `;
23
+ };
@@ -0,0 +1 @@
1
+ export { default as UNWirePaymentComponent, UNWirePaymentComponentProps } from './UNWirePaymentComponent';
@@ -12,3 +12,4 @@ export * from './UNProgramDetailsComponent';
12
12
  export * from './UNNextRepaymentComponent';
13
13
  export * from './UNWhiteLabelAppComponent';
14
14
  export * from './UNPayeeManagementComponent';
15
+ export * from './UNWirePaymentComponent';
@@ -20,6 +20,7 @@ import {
20
20
  import { getStylesObject } from './BottomSheet.styles';
21
21
  import { useAppStateListener } from '../../hooks/useAppStateListener';
22
22
  import { BottomSheetNativePlaceType } from '../../types/internal/bottomSheet.types';
23
+ import { UNBaseView } from '../../nativeComponents/UNBaseView';
23
24
 
24
25
  export interface BottomSheetProps {
25
26
  isOpen: boolean,
@@ -223,11 +224,9 @@ const BottomSheet = (props: BottomSheetProps) => {
223
224
  <View
224
225
  onLayout={_setSize}
225
226
  >
226
- <View
227
- style={{ height: props.height }}
228
- >
227
+ <UNBaseView style={{ height: props.height }}>
229
228
  {children}
230
- </View>
229
+ </UNBaseView>
231
230
 
232
231
  </View>
233
232
  </View>
@@ -0,0 +1,17 @@
1
+ import { useEffect, useState } from 'react';
2
+ import UNSecurityManagerHelper from '../nativeModulesHelpers/UNSecurityHelper';
3
+
4
+ export const useIsJailbrokeDevice = () => {
5
+ const [isJailbroke, setIsJailbroke] = useState(false);
6
+
7
+ useEffect(() => {
8
+ const isDeviceJailbroke = async () => {
9
+ const isDeviceJailbroke = await UNSecurityManagerHelper.isDeviceJailbroke();
10
+ setIsJailbroke(isDeviceJailbroke);
11
+ };
12
+
13
+ isDeviceJailbroke();
14
+ }, []);
15
+
16
+ return isJailbroke;
17
+ };
@@ -0,0 +1,25 @@
1
+ import { Platform } from 'react-native';
2
+ import UNSnapshotProtectionHelper from '../nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper';
3
+ import { UnitSDK } from '../unitSdkManager/UnitSdkManager';
4
+ import { UNSnapshotProtectionStrategy } from '../types/shared/securitySettings';
5
+ import { useEffect } from 'react';
6
+
7
+ export const useSnapshotProtection = () => {
8
+ /**
9
+ * This hook provides snapshot protection specifically for Android.
10
+ * For iOS, a native service is utilized instead.
11
+ */
12
+ useEffect(() => {
13
+ if (!UnitSDK.isInitialized()) {
14
+ return;
15
+ }
16
+
17
+ if (UnitSDK.getSecuritySettings().snapshotProtectionStrategy == UNSnapshotProtectionStrategy.None) {
18
+ return;
19
+ }
20
+
21
+ if (Platform.OS == 'android') {
22
+ UNSnapshotProtectionHelper.setAndroidSecurity();
23
+ }
24
+ }, []);
25
+ };
@@ -38,7 +38,7 @@ export type AccountsOnLoadResponse = {
38
38
  }
39
39
 
40
40
  export type ACHOnLoadResponse = {
41
- [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData>,
41
+ [RESPONSE_KEYS.account]: UNOnLoadResponseData<UNAccountData> | UNOnLoadResponseData<[UNAccountData]>,
42
42
  [RESPONSE_KEYS.counterpartyAccount]: UNOnLoadResponseData<[UNCounterpartyAccountData]>
43
43
  }
44
44
 
@@ -21,6 +21,7 @@ import {
21
21
  } from '../../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
22
22
  import { launchStartCardProvisioning } from '../../../helpers/pushProvisioningService/startProvisioning';
23
23
  import { PageMessage } from '../../../messages/webMessages/pageMessage';
24
+ import { UNBaseView } from '../../UNBaseView';
24
25
 
25
26
  export interface UNAddToWalletComponentProps {
26
27
  customerToken: string;
@@ -64,25 +65,25 @@ const UNAddToWalletComponent = (props: UNAddToWalletComponentProps) => {
64
65
  return <ActivityIndicator style={styles.loader} />;
65
66
  }
66
67
  return (
67
- <>
68
+ <UNBaseView style={{flex: 1}}>
68
69
  {
69
70
  shouldRenderAddToWalletWebView() &&
70
- <WebComponent
71
- ref={webRef}
72
- type={WebComponentType.cardAction}
73
- presentationMode={PresentationMode.CoverInjectedHeight}
74
- params={getAddToWalletParams(props)}
75
- isScrollable={false}
76
- onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
77
- windowParams={getAddToWalletWindowParams(currentUNWallet)}
78
- />
71
+ <WebComponent
72
+ ref={webRef}
73
+ type={WebComponentType.cardAction}
74
+ presentationMode={PresentationMode.CoverInjectedHeight}
75
+ params={getAddToWalletParams(props)}
76
+ isScrollable={false}
77
+ onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
78
+ windowParams={getAddToWalletWindowParams(currentUNWallet)}
79
+ />
79
80
  }
80
81
 
81
82
  {
82
83
  currentUNWallet?.status === UNCardAddToWalletStatus.readyToProvisioning &&
83
84
  <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />
84
85
  }
85
- </>
86
+ </UNBaseView>
86
87
  );
87
88
  };
88
89
  return (
@@ -0,0 +1,50 @@
1
+ import React, { useEffect } from 'react';
2
+ import {
3
+ Platform,
4
+ StyleProp,
5
+ View,
6
+ ViewStyle,
7
+ requireNativeComponent,
8
+ } from 'react-native';
9
+ import { UNError } from '../../types/shared';
10
+ import { useIsJailbrokeDevice } from '../../hooks/useIsJailbrokeDevice';
11
+ import { useSnapshotProtection } from '../../hooks/useSnapshotProtection';
12
+
13
+ type UnitAndroidSecureViewProps = {
14
+ style?: StyleProp<ViewStyle>;
15
+ filterTouchesWhenObscured: boolean;
16
+ children: React.ReactNode;
17
+ };
18
+
19
+ type UnitSecureViewProps = {
20
+ style?: StyleProp<ViewStyle>;
21
+ children: React.ReactNode;
22
+ onLoadError?: (error: UNError) => void;
23
+ };
24
+
25
+ const UnitAndroidSecureView = requireNativeComponent<UnitAndroidSecureViewProps>('UNSecureView');
26
+
27
+ const UNBaseView = (props: UnitSecureViewProps) => {
28
+ useSnapshotProtection();
29
+
30
+ const isJailbroke = useIsJailbrokeDevice();
31
+ useEffect(() => {
32
+ if (isJailbroke) {
33
+ props.onLoadError && props.onLoadError({errors: [{title: 'Device is Jailbroke'}]});
34
+ }
35
+ }, [props, isJailbroke]);
36
+
37
+ if (isJailbroke) {
38
+ return null;
39
+ }
40
+
41
+ if (Platform.OS == 'android') {
42
+ return <UnitAndroidSecureView filterTouchesWhenObscured={true} {...props}/>;
43
+ } else {
44
+ return (
45
+ <View {...props} />
46
+ );
47
+ }
48
+ };
49
+
50
+ export default UNBaseView;
@@ -0,0 +1 @@
1
+ export { default as UNBaseView } from './UNBaseView';
@@ -0,0 +1,21 @@
1
+ import { NativeModules } from 'react-native';
2
+
3
+ const { UNSnapshotProtectionManager } = NativeModules;
4
+
5
+ class UNSnapshotProtectionHelper {
6
+ static setAndroidSecurity() {
7
+ /**
8
+ * Set secure flag on the activity's window (if it doesn't exist)
9
+ */
10
+ UNSnapshotProtectionManager.setSecureFlags();
11
+ }
12
+
13
+ static setIosSecurity(shouldProtectFromSnapshot: boolean, style: string) {
14
+ /**
15
+ * Activate a Global native service for managing the snapshotProtection by the given arguments.
16
+ */
17
+ UNSnapshotProtectionManager.configureSnapshotProtectionStrategy(shouldProtectFromSnapshot, style);
18
+ }
19
+ }
20
+
21
+ export default UNSnapshotProtectionHelper;
@@ -0,0 +1,35 @@
1
+ import { NativeModules } from 'react-native';
2
+
3
+ const { UNSecurityHelper } = NativeModules;
4
+
5
+ enum UNJailbrokeState {
6
+ Unknown,
7
+ Jailbroke,
8
+ NotJailbroke
9
+ }
10
+
11
+ class UNSecurityManagerHelper {
12
+ static deviceJailbrokeState: UNJailbrokeState = UNJailbrokeState.Unknown;
13
+
14
+ static async isDeviceJailbroke(): Promise<boolean> {
15
+ if (this.deviceJailbrokeState !== UNJailbrokeState.Unknown) {
16
+ return this.isCurrentStatusIsJailbroke();
17
+ }
18
+ const result: boolean = await UNSecurityHelper.isDeviceJailbroke();
19
+ UNSecurityManagerHelper.deviceJailbrokeState = result ? UNJailbrokeState.Jailbroke : UNJailbrokeState.NotJailbroke;
20
+ return result;
21
+ }
22
+
23
+ private static isCurrentStatusIsJailbroke = (): boolean => {
24
+ switch (this.deviceJailbrokeState) {
25
+ case UNJailbrokeState.Unknown:
26
+ return false;
27
+ case UNJailbrokeState.Jailbroke:
28
+ return true;
29
+ case UNJailbrokeState.NotJailbroke:
30
+ return false;
31
+ }
32
+ };
33
+ }
34
+
35
+ export default UNSecurityManagerHelper;
@@ -7,5 +7,6 @@ export const APIHeaders = {
7
7
 
8
8
  export const UNIT_SECURE_URL = {
9
9
  [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',
10
- [UNEnvironment.production]: 'https://secure.api.unit.co'
10
+ [UNEnvironment.production]: 'https://secure.api.unit.co',
11
+ [UNEnvironment.mock]: ''
11
12
  };
@@ -13,6 +13,7 @@ export enum WebComponentType {
13
13
  programDetails = 'unit-elements-program-details',
14
14
  nextRepayment = 'unit-elements-next-repayment',
15
15
  payeeManagement = 'unit-elements-payee-management',
16
+ wirePayment = 'unit-elements-wire-payment',
16
17
  whiteLabelApp = 'unit-elements-white-label-app',
17
18
  }
18
19
 
@@ -4,7 +4,7 @@ import type { UNPaymentType, UNAchCounterparty, UNCounterpartyVerificationMethod
4
4
  import type { UNTags, UNRelationship } from './types';
5
5
 
6
6
  export type UNACHOnLoadData = {
7
- [RESPONSE_KEYS.account]: UNAccountData,
7
+ [RESPONSE_KEYS.account]: [UNAccountData],
8
8
  [RESPONSE_KEYS.counterpartyAccount]: [UNCounterpartyAccountData]
9
9
  }
10
10
 
@@ -1,4 +1,5 @@
1
1
  export enum UNEnvironment {
2
2
  sandbox = 'sandbox',
3
- production = 'production'
3
+ production = 'production',
4
+ mock = 'mock'
4
5
  }
@@ -13,3 +13,4 @@ export * from './multipleCards.types';
13
13
  export * from './fundAccountPayment.types';
14
14
  export * from './payeeManagement.types';
15
15
  export * from './env.types';
16
+ export * from './securitySettings';
@@ -2,6 +2,7 @@ export enum UNPaymentType {
2
2
  AchPayment = 'achPayment',
3
3
  BookPayment = 'bookPayment',
4
4
  CardToCardPayment = 'cardToCardPayment',
5
+ WirePayment = 'wirePayment'
5
6
  }
6
7
 
7
8
  export type UNPaymentStatus = 'Sent' | 'Rejected' | 'Pending' | 'Clearing' | 'Canceled' | 'Returned' | 'PendingReview'
@@ -0,0 +1,8 @@
1
+ export enum UNSnapshotProtectionStrategy {
2
+ FullProtection = 'fullProtection',
3
+ None = 'none'
4
+ }
5
+
6
+ export interface UNSecuritySettings {
7
+ snapshotProtectionStrategy: UNSnapshotProtectionStrategy
8
+ }
@@ -0,0 +1,43 @@
1
+ import { UNPaymentStatus, UNPaymentType } from './payments.types';
2
+ import { UNRelationship, UNTags } from './types';
3
+
4
+ export interface WirePaymentCreatedEvent {
5
+ data: UNWirePaymentData
6
+ }
7
+
8
+ export type UNWirePaymentData = {
9
+ type: UNPaymentType.WirePayment
10
+ id: string
11
+ attributes: {
12
+ createdAt: string | Date
13
+ amount: number
14
+ direction: 'Debit' | 'Credit'
15
+ description: string
16
+ status: UNPaymentStatus
17
+ reason?: string
18
+ tags?: UNTags
19
+ counterparty: UNWireCounterparty
20
+ }
21
+ relationships: {
22
+ account: UNRelationship
23
+ customer?: UNRelationship
24
+ customers?: UNRelationship
25
+ transaction?: UNRelationship
26
+ counterpartyAccount?: UNRelationship
27
+ org?: UNRelationship
28
+ }
29
+ }
30
+
31
+ type UNWireCounterparty = {
32
+ name: string
33
+ routingNumber: string
34
+ accountNumber: string
35
+ address: {
36
+ street: string
37
+ street2?: string
38
+ city: string
39
+ state?: string
40
+ postalCode: string
41
+ country?: string
42
+ }
43
+ }
@@ -1,4 +1,5 @@
1
1
  import { UNVersioningStrategyType, UNWebVersioningStrategy } from '../types/shared';
2
+ import { UNSecuritySettings, UNSnapshotProtectionStrategy } from '../types/shared/securitySettings';
2
3
 
3
4
  const WEB_SDK_RECOMMENDED_STRATEGY: UNWebVersioningStrategy = {
4
5
  type: UNVersioningStrategyType.upToNextMinor,
@@ -6,6 +7,11 @@ const WEB_SDK_RECOMMENDED_STRATEGY: UNWebVersioningStrategy = {
6
7
  minor: 8,
7
8
  };
8
9
 
10
+ const DEFAULT_SECURITY_SETTINGS: UNSecuritySettings = {
11
+ snapshotProtectionStrategy: UNSnapshotProtectionStrategy.FullProtection
12
+ };
13
+
9
14
  export const UNSDKConstants = {
10
15
  webSDKRecommendedStrategy: WEB_SDK_RECOMMENDED_STRATEGY,
16
+ securitySettings: DEFAULT_SECURITY_SETTINGS
11
17
  };
@@ -11,34 +11,58 @@ import { UNEnvironment } from '../types/shared/env.types';
11
11
  import { UserDataKeys } from '../types/internal/unitStore.types';
12
12
  import UNStoreManagerHelper from '../nativeModulesHelpers/UNStoreManagerHelper/UNStoreManagerHelper';
13
13
  import { UnitHelpersManager } from './unitHelpersManager/UnitHelpersManager';
14
+ import UNSecurityManagerHelper from '../nativeModulesHelpers/UNSecurityHelper';
15
+ import { UNSecuritySettings, UNSnapshotProtectionStrategy } from '../types/shared/securitySettings';
16
+ import UNSnapshotProtectionHelper from '../nativeModulesHelpers/UNSanpshotProtectionHelper/UNSnapshotProtectionHelper';
14
17
 
15
18
  export class UnitSDK {
16
19
  public static ui: UnitUiManager;
17
20
  public static helpers: UnitHelpersManager;
21
+
18
22
  protected static env?: UNEnvironment;
19
23
  protected static webVersioningStrategy: UNWebVersioningStrategy;
24
+ protected static securitySettings: UNSecuritySettings = UNSDKConstants.securitySettings;
20
25
  protected static customerToken?: string;
21
26
  protected static fonts?: UNFonts;
22
27
  protected static signedNonce?: string;
23
28
  protected static pushProvisionModule?: typeof NativeModules;
24
- protected static sdkVersion = '1.13.0';
29
+ protected static sdkVersion = '1.14.0';
25
30
 
26
- public static init = async (env: UNEnvironment, theme?: string, language?: string, fonts?: UNFonts, webVersioningStrategy: UNWebVersioningStrategy = UNSDKConstants.webSDKRecommendedStrategy) => {
31
+ public static init = async (
32
+ env: UNEnvironment,
33
+ theme?: string,
34
+ language?: string,
35
+ fonts?: UNFonts,
36
+ webVersioningStrategy: UNWebVersioningStrategy = UNSDKConstants.webSDKRecommendedStrategy,
37
+ securitySettings: UNSecuritySettings = UNSDKConstants.securitySettings
38
+ ) => {
27
39
  try {
28
- this.env = env;
29
40
  this.webVersioningStrategy = webVersioningStrategy;
41
+ this.ui = new UnitUiManager();
42
+ this.helpers = new UnitHelpersManager();
43
+
44
+ const isJailbroke = await UNSecurityManagerHelper.isDeviceJailbroke();
45
+ if (isJailbroke) {
46
+ throw Error('Device is jailbroke');
47
+ }
48
+ this.env = env;
49
+ this.securitySettings = securitySettings;
30
50
  this.fonts = fonts;
31
51
  store.dispatch(setTheme(theme));
32
52
  store.dispatch(setLanguage(language));
33
- this.ui = new UnitUiManager();
34
- this.helpers = new UnitHelpersManager();
35
53
  warnClientIfNeeded(this.webVersioningStrategy);
54
+ const shouldProtectFromSnapshot = securitySettings.snapshotProtectionStrategy != UNSnapshotProtectionStrategy.None;
55
+ UNSnapshotProtectionHelper.setIosSecurity(shouldProtectFromSnapshot, 'light');
36
56
  await fetchUnitScript();
37
57
  } catch (e) {
38
58
  console.log(e);
39
59
  }
40
60
  };
41
61
 
62
+ public static isInitialized = () => {
63
+ return this.env != undefined;
64
+ };
65
+
42
66
  public static setPushProvisioningModule = (pushProvisionModule: typeof NativeModules) => {
43
67
  this.pushProvisionModule = pushProvisionModule;
44
68
  };
@@ -47,6 +71,10 @@ export class UnitSDK {
47
71
  return this.pushProvisionModule;
48
72
  };
49
73
 
74
+ public static getSecuritySettings = () => {
75
+ return this.securitySettings;
76
+ };
77
+
50
78
  /**
51
79
  * @deprecated - Unit SDK is managing the signedNonce, no need to provide it
52
80
  */
@@ -11,5 +11,8 @@ export const getUnitScriptUrl = (env: UNEnvironment, webVersioningStrategy: UNWe
11
11
 
12
12
  case UNEnvironment.production:
13
13
  return `https://ui.unit.co/release/${webSdkVersionString}/components.js`;
14
+
15
+ case UNEnvironment.mock:
16
+ return 'https://unit-white-label-ui.netlify.app/assets/components-mock.js';
14
17
  }
15
18
  };
@@ -0,0 +1,3 @@
1
+ export function ensureArray<T>(item: T | [T]): [T] {
2
+ return Array.isArray(item) ? item : [item];
3
+ }