webtonative 1.0.74 → 1.0.75-beta.2

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 (376) hide show
  1. package/.editorconfig +10 -0
  2. package/.prettierrc.json +7 -0
  3. package/README.md +31 -2
  4. package/build/ATTConsent/index.d.ts +17 -0
  5. package/build/ATTConsent/index.d.ts.map +1 -0
  6. package/build/ATTConsent/index.js +54 -0
  7. package/build/ATTConsent/index.js.map +1 -0
  8. package/build/ATTConsent/types.d.ts +15 -0
  9. package/build/ATTConsent/types.d.ts.map +1 -0
  10. package/build/ATTConsent/types.js +3 -0
  11. package/build/ATTConsent/types.js.map +1 -0
  12. package/build/AdMob/index.d.ts +31 -0
  13. package/build/AdMob/index.d.ts.map +1 -0
  14. package/build/AdMob/index.js +102 -0
  15. package/build/AdMob/index.js.map +1 -0
  16. package/build/AdMob/types.d.ts +25 -0
  17. package/build/AdMob/types.d.ts.map +1 -0
  18. package/build/AdMob/types.js +4 -0
  19. package/build/AdMob/types.js.map +1 -0
  20. package/build/AppReview/index.d.ts +7 -0
  21. package/build/AppReview/index.d.ts.map +1 -0
  22. package/build/AppReview/index.js +22 -0
  23. package/build/AppReview/index.js.map +1 -0
  24. package/build/AppReview/types.d.ts +8 -0
  25. package/build/AppReview/types.d.ts.map +1 -0
  26. package/build/AppReview/types.js +4 -0
  27. package/build/AppReview/types.js.map +1 -0
  28. package/build/AppsFlyer/index.d.ts +15 -0
  29. package/build/AppsFlyer/index.d.ts.map +1 -0
  30. package/build/AppsFlyer/index.js +43 -0
  31. package/build/AppsFlyer/index.js.map +1 -0
  32. package/build/AppsFlyer/types.d.ts +10 -0
  33. package/build/AppsFlyer/types.d.ts.map +1 -0
  34. package/build/AppsFlyer/types.js +3 -0
  35. package/build/AppsFlyer/types.js.map +1 -0
  36. package/build/BackgroundLocation/index.d.ts +12 -0
  37. package/build/BackgroundLocation/index.d.ts.map +1 -0
  38. package/build/BackgroundLocation/index.js +65 -0
  39. package/build/BackgroundLocation/index.js.map +1 -0
  40. package/build/BackgroundLocation/types.d.ts +32 -0
  41. package/build/BackgroundLocation/types.d.ts.map +1 -0
  42. package/build/BackgroundLocation/types.js +3 -0
  43. package/build/BackgroundLocation/types.js.map +1 -0
  44. package/build/Beacon/index.d.ts +7 -0
  45. package/build/Beacon/index.d.ts.map +1 -0
  46. package/build/Beacon/index.js +30 -0
  47. package/build/Beacon/index.js.map +1 -0
  48. package/build/Beacon/types.d.ts +19 -0
  49. package/build/Beacon/types.d.ts.map +1 -0
  50. package/build/Beacon/types.js +3 -0
  51. package/build/Beacon/types.js.map +1 -0
  52. package/build/Biometric/index.d.ts +27 -0
  53. package/build/Biometric/index.d.ts.map +1 -0
  54. package/build/Biometric/index.js +125 -0
  55. package/build/Biometric/index.js.map +1 -0
  56. package/build/Biometric/types.d.ts +24 -0
  57. package/build/Biometric/types.d.ts.map +1 -0
  58. package/build/Biometric/types.js +3 -0
  59. package/build/Biometric/types.js.map +1 -0
  60. package/build/Bluetooth/index.d.ts +17 -0
  61. package/build/Bluetooth/index.d.ts.map +1 -0
  62. package/build/Bluetooth/index.js +67 -0
  63. package/build/Bluetooth/index.js.map +1 -0
  64. package/build/Bluetooth/types.d.ts +34 -0
  65. package/build/Bluetooth/types.d.ts.map +1 -0
  66. package/build/Bluetooth/types.js +3 -0
  67. package/build/Bluetooth/types.js.map +1 -0
  68. package/build/BottomNavigation/index.d.ts +11 -0
  69. package/build/BottomNavigation/index.d.ts.map +1 -0
  70. package/build/BottomNavigation/index.js +41 -0
  71. package/build/BottomNavigation/index.js.map +1 -0
  72. package/build/BottomNavigation/types.d.ts +9 -0
  73. package/build/BottomNavigation/types.d.ts.map +1 -0
  74. package/build/BottomNavigation/types.js +3 -0
  75. package/build/BottomNavigation/types.js.map +1 -0
  76. package/build/Clipboard/index.d.ts +12 -0
  77. package/build/Clipboard/index.d.ts.map +1 -0
  78. package/build/Clipboard/index.js +45 -0
  79. package/build/Clipboard/index.js.map +1 -0
  80. package/build/Clipboard/types.d.ts +20 -0
  81. package/build/Clipboard/types.d.ts.map +1 -0
  82. package/build/Clipboard/types.js +4 -0
  83. package/build/Clipboard/types.js.map +1 -0
  84. package/build/Facebook/events.d.ts +13 -0
  85. package/build/Facebook/events.d.ts.map +1 -0
  86. package/build/Facebook/events.js +44 -0
  87. package/build/Facebook/events.js.map +1 -0
  88. package/build/Facebook/index.d.ts +3 -0
  89. package/build/Facebook/index.d.ts.map +1 -0
  90. package/build/Facebook/index.js +29 -0
  91. package/build/Facebook/index.js.map +1 -0
  92. package/build/Facebook/types.d.ts +22 -0
  93. package/build/Facebook/types.d.ts.map +1 -0
  94. package/build/Facebook/types.js +3 -0
  95. package/build/Facebook/types.js.map +1 -0
  96. package/build/Firebase/Analytics/index.d.ts +32 -0
  97. package/build/Firebase/Analytics/index.d.ts.map +1 -0
  98. package/build/Firebase/Analytics/index.js +110 -0
  99. package/build/Firebase/Analytics/index.js.map +1 -0
  100. package/build/Firebase/Messaging/index.d.ts +17 -0
  101. package/build/Firebase/Messaging/index.d.ts.map +1 -0
  102. package/build/Firebase/Messaging/index.js +64 -0
  103. package/build/Firebase/Messaging/index.js.map +1 -0
  104. package/build/Firebase/index.d.ts +4 -0
  105. package/build/Firebase/index.d.ts.map +1 -0
  106. package/build/Firebase/index.js +31 -0
  107. package/build/Firebase/index.js.map +1 -0
  108. package/build/Firebase/types.d.ts +58 -0
  109. package/build/Firebase/types.d.ts.map +1 -0
  110. package/build/Firebase/types.js +4 -0
  111. package/build/Firebase/types.js.map +1 -0
  112. package/build/FirebaseAnalytics/index.d.ts +3 -0
  113. package/build/FirebaseAnalytics/index.d.ts.map +1 -0
  114. package/build/FirebaseAnalytics/index.js +29 -0
  115. package/build/FirebaseAnalytics/index.js.map +1 -0
  116. package/build/Haptics/index.d.ts +7 -0
  117. package/build/Haptics/index.d.ts.map +1 -0
  118. package/build/Haptics/index.js +21 -0
  119. package/build/Haptics/index.js.map +1 -0
  120. package/build/Haptics/types.d.ts +8 -0
  121. package/build/Haptics/types.d.ts.map +1 -0
  122. package/build/Haptics/types.js +3 -0
  123. package/build/Haptics/types.js.map +1 -0
  124. package/build/InAppPurchase/index.d.ts +23 -0
  125. package/build/InAppPurchase/index.d.ts.map +1 -0
  126. package/build/InAppPurchase/index.js +81 -0
  127. package/build/InAppPurchase/index.js.map +1 -0
  128. package/build/InAppPurchase/types.d.ts +30 -0
  129. package/build/InAppPurchase/types.d.ts.map +1 -0
  130. package/build/InAppPurchase/types.js +3 -0
  131. package/build/InAppPurchase/types.js.map +1 -0
  132. package/build/InAppUpdate/index.d.ts +12 -0
  133. package/build/InAppUpdate/index.d.ts.map +1 -0
  134. package/build/InAppUpdate/index.js +39 -0
  135. package/build/InAppUpdate/index.js.map +1 -0
  136. package/build/InAppUpdate/types.d.ts +15 -0
  137. package/build/InAppUpdate/types.d.ts.map +1 -0
  138. package/build/InAppUpdate/types.js +3 -0
  139. package/build/InAppUpdate/types.js.map +1 -0
  140. package/build/MediaPlayer/index.d.ts +17 -0
  141. package/build/MediaPlayer/index.d.ts.map +1 -0
  142. package/build/MediaPlayer/index.js +56 -0
  143. package/build/MediaPlayer/index.js.map +1 -0
  144. package/build/MediaPlayer/types.d.ts +14 -0
  145. package/build/MediaPlayer/types.d.ts.map +1 -0
  146. package/build/MediaPlayer/types.js +3 -0
  147. package/build/MediaPlayer/types.js.map +1 -0
  148. package/build/NativeContacts/index.d.ts +12 -0
  149. package/build/NativeContacts/index.d.ts.map +1 -0
  150. package/build/NativeContacts/index.js +51 -0
  151. package/build/NativeContacts/index.js.map +1 -0
  152. package/build/NativeContacts/types.d.ts +14 -0
  153. package/build/NativeContacts/types.d.ts.map +1 -0
  154. package/build/NativeContacts/types.js +3 -0
  155. package/build/NativeContacts/types.js.map +1 -0
  156. package/build/Notification/index.d.ts +11 -0
  157. package/build/Notification/index.d.ts.map +1 -0
  158. package/build/Notification/index.js +42 -0
  159. package/build/Notification/index.js.map +1 -0
  160. package/build/Notification/types.d.ts +14 -0
  161. package/build/Notification/types.d.ts.map +1 -0
  162. package/build/Notification/types.js +3 -0
  163. package/build/Notification/types.js.map +1 -0
  164. package/build/OneSignal/index.d.ts +4 -0
  165. package/build/OneSignal/index.d.ts.map +1 -0
  166. package/build/OneSignal/index.js +59 -0
  167. package/build/OneSignal/index.js.map +1 -0
  168. package/build/OneSignal/types.d.ts +11 -0
  169. package/build/OneSignal/types.d.ts.map +1 -0
  170. package/build/OneSignal/types.js +4 -0
  171. package/build/OneSignal/types.js.map +1 -0
  172. package/build/Printing/index.d.ts +7 -0
  173. package/build/Printing/index.d.ts.map +1 -0
  174. package/build/Printing/index.js +20 -0
  175. package/build/Printing/index.js.map +1 -0
  176. package/build/Printing/types.d.ts +9 -0
  177. package/build/Printing/types.d.ts.map +1 -0
  178. package/build/Printing/types.js +3 -0
  179. package/build/Printing/types.js.map +1 -0
  180. package/build/README.md +33 -0
  181. package/build/Screen/index.d.ts +9 -0
  182. package/build/Screen/index.d.ts.map +1 -0
  183. package/build/Screen/index.js +35 -0
  184. package/build/Screen/index.js.map +1 -0
  185. package/build/Screen/types.d.ts +6 -0
  186. package/build/Screen/types.d.ts.map +1 -0
  187. package/build/Screen/types.js +4 -0
  188. package/build/Screen/types.js.map +1 -0
  189. package/build/Siri/index.d.ts +7 -0
  190. package/build/Siri/index.d.ts.map +1 -0
  191. package/build/Siri/index.js +26 -0
  192. package/build/Siri/index.js.map +1 -0
  193. package/build/Siri/types.d.ts +14 -0
  194. package/build/Siri/types.d.ts.map +1 -0
  195. package/build/Siri/types.js +3 -0
  196. package/build/Siri/types.js.map +1 -0
  197. package/build/SocialLogin/apple.d.ts +12 -0
  198. package/build/SocialLogin/apple.d.ts.map +1 -0
  199. package/build/SocialLogin/apple.js +32 -0
  200. package/build/SocialLogin/apple.js.map +1 -0
  201. package/build/SocialLogin/facebook.d.ts +22 -0
  202. package/build/SocialLogin/facebook.d.ts.map +1 -0
  203. package/build/SocialLogin/facebook.js +61 -0
  204. package/build/SocialLogin/facebook.js.map +1 -0
  205. package/build/SocialLogin/google.d.ts +22 -0
  206. package/build/SocialLogin/google.d.ts.map +1 -0
  207. package/build/SocialLogin/google.js +61 -0
  208. package/build/SocialLogin/google.js.map +1 -0
  209. package/build/SocialLogin/index.d.ts +17 -0
  210. package/build/SocialLogin/index.d.ts.map +1 -0
  211. package/build/SocialLogin/index.js +23 -0
  212. package/build/SocialLogin/index.js.map +1 -0
  213. package/build/SocialLogin/types.d.ts +39 -0
  214. package/build/SocialLogin/types.d.ts.map +1 -0
  215. package/build/SocialLogin/types.js +3 -0
  216. package/build/SocialLogin/types.js.map +1 -0
  217. package/build/Stripe/index.d.ts +3 -0
  218. package/build/Stripe/index.d.ts.map +1 -0
  219. package/build/Stripe/index.js +49 -0
  220. package/build/Stripe/index.js.map +1 -0
  221. package/build/Stripe/types.d.ts +32 -0
  222. package/build/Stripe/types.d.ts.map +1 -0
  223. package/build/Stripe/types.js +3 -0
  224. package/build/Stripe/types.js.map +1 -0
  225. package/build/VoiceSearch/index.d.ts +13 -0
  226. package/build/VoiceSearch/index.d.ts.map +1 -0
  227. package/build/VoiceSearch/index.js +34 -0
  228. package/build/VoiceSearch/index.js.map +1 -0
  229. package/build/VoiceSearch/types.d.ts +10 -0
  230. package/build/VoiceSearch/types.d.ts.map +1 -0
  231. package/build/VoiceSearch/types.js +3 -0
  232. package/build/VoiceSearch/types.js.map +1 -0
  233. package/build/barcode/barcode-scan.d.ts +16 -0
  234. package/build/barcode/barcode-scan.d.ts.map +1 -0
  235. package/build/barcode/barcode-scan.js +40 -0
  236. package/build/barcode/barcode-scan.js.map +1 -0
  237. package/build/barcode/barcode-types.d.ts +18 -0
  238. package/build/barcode/barcode-types.d.ts.map +1 -0
  239. package/build/barcode/barcode-types.js +3 -0
  240. package/build/barcode/barcode-types.js.map +1 -0
  241. package/build/barcode/formats.d.ts +18 -0
  242. package/build/barcode/formats.d.ts.map +1 -0
  243. package/build/barcode/formats.js +23 -0
  244. package/build/barcode/formats.js.map +1 -0
  245. package/build/barcode/index.d.ts +5 -0
  246. package/build/barcode/index.d.ts.map +1 -0
  247. package/build/barcode/index.js +13 -0
  248. package/build/barcode/index.js.map +1 -0
  249. package/build/barcode/types.d.ts +17 -0
  250. package/build/barcode/types.d.ts.map +1 -0
  251. package/build/barcode/types.js +22 -0
  252. package/build/barcode/types.js.map +1 -0
  253. package/build/index.d.ts +15 -0
  254. package/build/index.d.ts.map +1 -0
  255. package/build/index.js +110 -0
  256. package/build/index.js.map +1 -0
  257. package/build/package.json +155 -0
  258. package/build/types/index.d.ts +49 -0
  259. package/build/types/index.d.ts.map +1 -0
  260. package/build/types/index.js +4 -0
  261. package/build/types/index.js.map +1 -0
  262. package/build/utills.d.ts +12 -0
  263. package/build/utills.d.ts.map +1 -0
  264. package/build/utills.js +111 -0
  265. package/build/utills.js.map +1 -0
  266. package/build/webtonative.min.js +1 -0
  267. package/buildScript.ts +35 -0
  268. package/client.ts +106 -0
  269. package/index.d.ts +65 -0
  270. package/package.json +36 -31
  271. package/src/ATTConsent/index.ts +51 -0
  272. package/src/ATTConsent/types.ts +17 -0
  273. package/src/AdMob/index.ts +113 -0
  274. package/src/AdMob/types.ts +37 -0
  275. package/src/AppReview/index.ts +19 -0
  276. package/src/AppReview/types.ts +12 -0
  277. package/src/AppsFlyer/index.ts +46 -0
  278. package/src/AppsFlyer/types.ts +10 -0
  279. package/src/BackgroundLocation/index.ts +78 -0
  280. package/src/BackgroundLocation/types.ts +34 -0
  281. package/src/Beacon/index.ts +28 -0
  282. package/src/Beacon/types.ts +22 -0
  283. package/src/Biometric/index.ts +126 -0
  284. package/src/Biometric/types.ts +27 -0
  285. package/src/Bluetooth/index.ts +71 -0
  286. package/src/Bluetooth/types.ts +40 -0
  287. package/src/BottomNavigation/index.ts +39 -0
  288. package/src/BottomNavigation/types.ts +9 -0
  289. package/src/Clipboard/index.ts +48 -0
  290. package/src/Clipboard/types.ts +30 -0
  291. package/src/Facebook/events.ts +45 -0
  292. package/src/Facebook/index.ts +3 -0
  293. package/src/Facebook/types.ts +24 -0
  294. package/src/Firebase/Analytics/index.ts +127 -0
  295. package/src/Firebase/Messaging/index.ts +73 -0
  296. package/src/Firebase/index.ts +4 -0
  297. package/src/Firebase/types.ts +74 -0
  298. package/src/FirebaseAnalytics/index.ts +3 -0
  299. package/src/Haptics/index.ts +17 -0
  300. package/src/Haptics/types.ts +8 -0
  301. package/src/InAppPurchase/index.ts +92 -0
  302. package/src/InAppPurchase/types.ts +35 -0
  303. package/src/InAppUpdate/index.ts +40 -0
  304. package/src/InAppUpdate/types.ts +17 -0
  305. package/src/MediaPlayer/index.ts +56 -0
  306. package/src/MediaPlayer/types.ts +15 -0
  307. package/src/NativeContacts/index.ts +50 -0
  308. package/src/NativeContacts/types.ts +16 -0
  309. package/src/Notification/index.ts +41 -0
  310. package/src/Notification/types.ts +16 -0
  311. package/src/OneSignal/index.ts +54 -0
  312. package/src/OneSignal/types.ts +15 -0
  313. package/src/Printing/index.ts +17 -0
  314. package/src/Printing/types.ts +9 -0
  315. package/src/Screen/index.ts +34 -0
  316. package/src/Screen/types.ts +8 -0
  317. package/src/Siri/index.ts +23 -0
  318. package/src/Siri/types.ts +14 -0
  319. package/src/SocialLogin/apple.ts +31 -0
  320. package/src/SocialLogin/facebook.ts +64 -0
  321. package/src/SocialLogin/google.ts +64 -0
  322. package/src/SocialLogin/index.ts +20 -0
  323. package/src/SocialLogin/types.ts +52 -0
  324. package/src/Stripe/index.ts +54 -0
  325. package/src/Stripe/types.ts +37 -0
  326. package/src/VoiceSearch/index.ts +37 -0
  327. package/src/VoiceSearch/types.ts +12 -0
  328. package/src/barcode/barcode-scan.ts +59 -0
  329. package/src/barcode/barcode-types.ts +22 -0
  330. package/src/barcode/formats.ts +19 -0
  331. package/src/barcode/index.ts +5 -0
  332. package/src/barcode/types.ts +18 -0
  333. package/src/index.ts +105 -0
  334. package/src/types/index.ts +71 -0
  335. package/src/utills.ts +110 -0
  336. package/tsconfig.json +27 -0
  337. package/webpack.config.js +57 -0
  338. package/ATTConsent/index.js +0 -1
  339. package/AdMob/index.js +0 -1
  340. package/AppReview/index.js +0 -1
  341. package/AppsFlyer/index.js +0 -4
  342. package/BackgroundLocation/index.js +0 -4
  343. package/Beacon/index.js +0 -1
  344. package/Biometric/index.js +0 -1
  345. package/Bluetooth/index.js +0 -1
  346. package/BottomNavigation/index.js +0 -4
  347. package/Clipboard/index.js +0 -4
  348. package/Facebook/events.js +0 -4
  349. package/Facebook/index.js +0 -1
  350. package/Firebase/Analytics/index.js +0 -4
  351. package/Firebase/Messaging/index.js +0 -4
  352. package/Firebase/index.js +0 -1
  353. package/FirebaseAnalytics/index.js +0 -1
  354. package/Haptics/index.js +0 -1
  355. package/InAppPurchase/index.js +0 -1
  356. package/InAppUpdate/index.js +0 -1
  357. package/MediaPlayer/index.js +0 -7
  358. package/NativeContacts/index.js +0 -6
  359. package/Notification/index.js +0 -5
  360. package/OneSignal/index.js +0 -1
  361. package/Printing/index.js +0 -1
  362. package/Screen/index.js +0 -4
  363. package/Siri/index.js +0 -1
  364. package/SocialLogin/apple.js +0 -1
  365. package/SocialLogin/facebook.js +0 -9
  366. package/SocialLogin/google.js +0 -9
  367. package/SocialLogin/index.js +0 -1
  368. package/Stripe/index.js +0 -1
  369. package/VoiceSearch/index.js +0 -1
  370. package/barcode/barcode-scan.js +0 -1
  371. package/barcode/formats.js +0 -1
  372. package/barcode/index.js +0 -1
  373. package/barcode/types.js +0 -1
  374. package/index.js +0 -4
  375. package/utills.js +0 -1
  376. package/webtonative.min.js +0 -1
@@ -0,0 +1,27 @@
1
+ export interface BiometricResponse {
2
+ type: string;
3
+ status?: string;
4
+ [key: string]: any;
5
+ }
6
+
7
+ export interface BiometricCallback {
8
+ (response: BiometricResponse): void;
9
+ }
10
+
11
+ export interface BiometricOptions {
12
+ callback?: BiometricCallback;
13
+ secret?: string;
14
+ prompt?: string;
15
+ isAuthenticationOptional?: boolean;
16
+ }
17
+
18
+ export interface BiometricIosMessage {
19
+ action: string;
20
+ secret?: string;
21
+ prompt?: string;
22
+ }
23
+
24
+ export interface BiometricAuthOptions {
25
+ prompt?: string;
26
+ isAuthenticationOptional?: boolean;
27
+ }
@@ -0,0 +1,71 @@
1
+ import { platform, registerCb, webToNative, webToNativeIos } from "../utills";
2
+ import {
3
+ BluetoothScanOptions,
4
+ BluetoothPairOptions,
5
+ BluetoothUnpairOptions,
6
+ BluetoothResponse,
7
+ BluetoothPairParams,
8
+ BluetoothUnpairParams
9
+ } from "./types";
10
+
11
+ /**
12
+ * Starts scanning for Bluetooth devices (Android only)
13
+ * @param options - Options for Bluetooth scanning
14
+ */
15
+ export const startBluetoothScan = (options: BluetoothScanOptions = {}): void => {
16
+ const { callback } = options;
17
+ if (["ANDROID_APP"].includes(platform)) {
18
+ registerCb((response: BluetoothResponse) => {
19
+ const { type } = response;
20
+ if (type === "startBluetoothScan") {
21
+ callback && callback(response);
22
+ }
23
+ });
24
+
25
+ platform === "ANDROID_APP" &&
26
+ webToNative.startBluetoothScan();
27
+ }
28
+ };
29
+
30
+ /**
31
+ * Pairs with a Bluetooth device (Android only)
32
+ * @param options - Options for pairing with a Bluetooth device
33
+ */
34
+ export const pairDevice = (options: BluetoothPairOptions = {}): void => {
35
+ const { callback, address, timeout = 10 } = options;
36
+ if (["ANDROID_APP"].includes(platform)) {
37
+ registerCb((response: BluetoothResponse) => {
38
+ const { type } = response;
39
+ if (type === "pairWithDevice") {
40
+ callback && callback(response);
41
+ }
42
+ });
43
+
44
+ platform === "ANDROID_APP" &&
45
+ webToNative.pairWithDevice(JSON.stringify({
46
+ address,
47
+ timeout
48
+ } as BluetoothPairParams));
49
+ }
50
+ };
51
+
52
+ /**
53
+ * Unpairs from a Bluetooth device (Android only)
54
+ * @param options - Options for unpairing from a Bluetooth device
55
+ */
56
+ export const unpairDevice = (options: BluetoothUnpairOptions = {}): void => {
57
+ const { callback, address } = options;
58
+ if (["ANDROID_APP"].includes(platform)) {
59
+ registerCb((response: BluetoothResponse) => {
60
+ const { type } = response;
61
+ if (type === "unpairDevice") {
62
+ callback && callback(response);
63
+ }
64
+ });
65
+
66
+ platform === "ANDROID_APP" &&
67
+ webToNative.unpairDevice(JSON.stringify({
68
+ address
69
+ } as BluetoothUnpairParams));
70
+ }
71
+ };
@@ -0,0 +1,40 @@
1
+ export interface BluetoothResponse {
2
+ type: string;
3
+ status?: string;
4
+ devices?: BluetoothDevice[];
5
+ [key: string]: any;
6
+ }
7
+
8
+ export interface BluetoothDevice {
9
+ name?: string;
10
+ address?: string;
11
+ [key: string]: any;
12
+ }
13
+
14
+ export interface BluetoothCallback {
15
+ (response: BluetoothResponse): void;
16
+ }
17
+
18
+ export interface BluetoothScanOptions {
19
+ callback?: BluetoothCallback;
20
+ }
21
+
22
+ export interface BluetoothPairOptions {
23
+ callback?: BluetoothCallback;
24
+ address?: string;
25
+ timeout?: number;
26
+ }
27
+
28
+ export interface BluetoothUnpairOptions {
29
+ callback?: BluetoothCallback;
30
+ address?: string;
31
+ }
32
+
33
+ export interface BluetoothPairParams {
34
+ address?: string;
35
+ timeout?: number;
36
+ }
37
+
38
+ export interface BluetoothUnpairParams {
39
+ address?: string;
40
+ }
@@ -0,0 +1,39 @@
1
+ import { platform, webToNative, webToNativeIos } from "../utills";
2
+ import { BottomNavigationShowOptions, BottomNavigationIosMessage } from "./types";
3
+
4
+ /**
5
+ * Hides the bottom navigation
6
+ */
7
+ export const hide = (): void => {
8
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
9
+ platform === "ANDROID_APP" &&
10
+ webToNative.showHideStickyFooter(false);
11
+
12
+ if (platform === "IOS_APP" && webToNativeIos) {
13
+ webToNativeIos.postMessage({
14
+ action: "showHideStickyFooter",
15
+ show: false,
16
+ } as BottomNavigationIosMessage);
17
+ }
18
+ }
19
+ };
20
+
21
+ /**
22
+ * Shows the bottom navigation
23
+ * @param options - Options for showing bottom navigation
24
+ */
25
+ export const show = (options: BottomNavigationShowOptions = {}): void => {
26
+ const { key } = options;
27
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
28
+ platform === "ANDROID_APP" &&
29
+ webToNative.showHideStickyFooter(true);
30
+
31
+ if (platform === "IOS_APP" && webToNativeIos) {
32
+ webToNativeIos.postMessage({
33
+ action: "showHideStickyFooter",
34
+ show: true,
35
+ key,
36
+ } as BottomNavigationIosMessage);
37
+ }
38
+ }
39
+ };
@@ -0,0 +1,9 @@
1
+ export interface BottomNavigationShowOptions {
2
+ key?: string;
3
+ }
4
+
5
+ export interface BottomNavigationIosMessage {
6
+ action: string;
7
+ show: boolean;
8
+ key?: string;
9
+ }
@@ -0,0 +1,48 @@
1
+ import { platform, registerCb, webToNative, webToNativeIos } from "../utills";
2
+ import {
3
+ ClipboardResponse,
4
+ GetClipboardOptions,
5
+ SetClipboardOptions,
6
+ ClipboardIosMessage
7
+ } from "./types";
8
+
9
+ /**
10
+ * Gets content from clipboard
11
+ * @param options - Options for getting clipboard content
12
+ */
13
+ export const get = (options: GetClipboardOptions = {}): void => {
14
+ const { callback } = options;
15
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
16
+ registerCb((response: ClipboardResponse) => {
17
+ const { type } = response;
18
+ if (type === "CLIPBOARD_CONTENT") {
19
+ callback && callback(response);
20
+ }
21
+ });
22
+
23
+ if (platform === "IOS_APP" && webToNativeIos) {
24
+ webToNativeIos.postMessage({
25
+ action: "getClipBoardData",
26
+ } as ClipboardIosMessage);
27
+ }
28
+
29
+ platform === "ANDROID_APP" && webToNative.getText();
30
+ }
31
+ };
32
+
33
+ /**
34
+ * Sets content to clipboard
35
+ * @param options - Options for setting clipboard content
36
+ */
37
+ export const set = (options: SetClipboardOptions = {}): void => {
38
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
39
+ if (platform === "IOS_APP" && webToNativeIos) {
40
+ webToNativeIos.postMessage({
41
+ action: "setClipBoardData",
42
+ text: options.data || "",
43
+ } as ClipboardIosMessage);
44
+ }
45
+
46
+ platform === "ANDROID_APP" && webToNative.setText(options.data || "");
47
+ }
48
+ };
@@ -0,0 +1,30 @@
1
+ // Define types for Clipboard module
2
+
3
+ // Clipboard response interface
4
+ export interface ClipboardResponse {
5
+ type: string;
6
+ content?: string;
7
+ [key: string]: any;
8
+ }
9
+
10
+ // Clipboard callback function type
11
+ export type ClipboardCallback = (response: ClipboardResponse) => void;
12
+
13
+ // Get clipboard options
14
+ export interface GetClipboardOptions {
15
+ callback?: ClipboardCallback;
16
+ [key: string]: any;
17
+ }
18
+
19
+ // Set clipboard options
20
+ export interface SetClipboardOptions {
21
+ data?: string;
22
+ [key: string]: any;
23
+ }
24
+
25
+ // iOS message structure
26
+ export interface ClipboardIosMessage {
27
+ action: string;
28
+ text?: string;
29
+ [key: string]: any;
30
+ }
@@ -0,0 +1,45 @@
1
+ import { platform, webToNative, webToNativeIos } from "../utills";
2
+ import { FacebookEventOptions, FacebookPurchaseOptions, FacebookEventIosMessage } from "./types";
3
+
4
+ /**
5
+ * Sends a Facebook event
6
+ * @param options - Options for the Facebook event
7
+ */
8
+ export const send = (options: FacebookEventOptions): void => {
9
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
10
+ const { event, valueToSum, parameters } = options;
11
+
12
+ platform === "ANDROID_APP" && webToNative.addFbEvents(event, parameters);
13
+
14
+ if (platform === "IOS_APP" && webToNativeIos) {
15
+ webToNativeIos.postMessage({
16
+ action: "sendFBEvent",
17
+ eventName: event,
18
+ valueToSum,
19
+ parameters,
20
+ } as FacebookEventIosMessage);
21
+ }
22
+ }
23
+ };
24
+
25
+ /**
26
+ * Sends a Facebook purchase event
27
+ * @param options - Options for the Facebook purchase event
28
+ * @example wtn.facebook.events.sendPurchase({amount: 10.99, currency: "USD", parameters: {item_name: "Product"}});
29
+ */
30
+ export const sendPurchase = (options: FacebookPurchaseOptions): void => {
31
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
32
+ const { amount, currency, parameters } = options;
33
+
34
+ platform === "ANDROID_APP" && webToNative.addFbPurchaseEvent(amount, currency, parameters);
35
+
36
+ if (platform === "IOS_APP" && webToNativeIos) {
37
+ webToNativeIos.postMessage({
38
+ action: "sendFBPurchaseEvent",
39
+ currency,
40
+ amount,
41
+ parameters,
42
+ } as FacebookEventIosMessage);
43
+ }
44
+ }
45
+ };
@@ -0,0 +1,3 @@
1
+ import * as events from "./events";
2
+
3
+ export { events };
@@ -0,0 +1,24 @@
1
+ export interface FacebookEventParameters {
2
+ [key: string]: any;
3
+ }
4
+
5
+ export interface FacebookEventOptions {
6
+ event: string;
7
+ valueToSum?: number;
8
+ parameters?: FacebookEventParameters;
9
+ }
10
+
11
+ export interface FacebookPurchaseOptions {
12
+ amount: number;
13
+ currency: string;
14
+ parameters?: FacebookEventParameters;
15
+ }
16
+
17
+ export interface FacebookEventIosMessage {
18
+ action: string;
19
+ eventName?: string;
20
+ valueToSum?: number;
21
+ parameters?: FacebookEventParameters;
22
+ currency?: string;
23
+ amount?: number;
24
+ }
@@ -0,0 +1,127 @@
1
+ import { platform, webToNative, webToNativeIos } from "../../utills";
2
+ import {
3
+ FirebaseAnalyticsCollectionOptions,
4
+ FirebaseUserIdOptions,
5
+ FirebaseUserPropertyOptions,
6
+ FirebaseDefaultParametersOptions,
7
+ FirebaseEventOptions,
8
+ FirebaseScreenOptions,
9
+ FirebaseAnalyticsIosMessage
10
+ } from "../types";
11
+
12
+ /**
13
+ * Sets Firebase Analytics collection enabled or disabled
14
+ * @param options - Options for setting analytics collection
15
+ */
16
+ export const setCollection = (options: FirebaseAnalyticsCollectionOptions): void => {
17
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
18
+ const { enabled } = options;
19
+
20
+ if (platform === "IOS_APP" && webToNativeIos) {
21
+ webToNativeIos.postMessage({
22
+ action: "setFirebaseAnalyticsCollection",
23
+ enabled,
24
+ } as FirebaseAnalyticsIosMessage);
25
+ }
26
+
27
+ platform === "ANDROID_APP" && webToNative.setFirebaseAnalyticsCollection(enabled);
28
+ }
29
+ };
30
+
31
+ /**
32
+ * Sets Firebase user ID
33
+ * @param options - Options for setting user ID
34
+ */
35
+ export const setUserId = (options: FirebaseUserIdOptions): void => {
36
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
37
+ const { userId } = options;
38
+
39
+ if (platform === "IOS_APP" && webToNativeIos) {
40
+ webToNativeIos.postMessage({
41
+ action: "setFirebaseUserId",
42
+ userId,
43
+ } as FirebaseAnalyticsIosMessage);
44
+ }
45
+
46
+ platform === "ANDROID_APP" && webToNative.setFirebaseUserId(userId);
47
+ }
48
+ };
49
+
50
+ /**
51
+ * Sets a Firebase user property
52
+ * @param options - Options for setting user property
53
+ */
54
+ export const setUserProperty = (options: FirebaseUserPropertyOptions): void => {
55
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
56
+ const { key, value } = options;
57
+
58
+ if (platform === "IOS_APP" && webToNativeIos) {
59
+ webToNativeIos.postMessage({
60
+ action: "setFirebaseUserProp",
61
+ key,
62
+ value,
63
+ } as FirebaseAnalyticsIosMessage);
64
+ }
65
+
66
+ platform === "ANDROID_APP" && webToNative.setFirebaseUserProp(key, value);
67
+ }
68
+ };
69
+
70
+ /**
71
+ * Sets default event parameters for Firebase Analytics
72
+ * @param options - Options for setting default parameters
73
+ */
74
+ export const setDefaultEventParameters = (options: FirebaseDefaultParametersOptions): void => {
75
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
76
+ const { parameters } = options;
77
+
78
+ if (platform === "IOS_APP" && webToNativeIos) {
79
+ webToNativeIos.postMessage({
80
+ action: "setFirebaseDefaultParam",
81
+ parameters,
82
+ } as FirebaseAnalyticsIosMessage);
83
+ }
84
+
85
+ platform === "ANDROID_APP" && webToNative.setFirebaseDefaultParam(parameters);
86
+ }
87
+ };
88
+
89
+ /**
90
+ * Logs a Firebase Analytics event
91
+ * @param options - Options for logging an event
92
+ */
93
+ export const logEvent = (options: FirebaseEventOptions): void => {
94
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
95
+ const { eventName, parameters } = options;
96
+
97
+ if (platform === "IOS_APP" && webToNativeIos) {
98
+ webToNativeIos.postMessage({
99
+ action: "logFirebaseEvent",
100
+ eventName,
101
+ parameters,
102
+ } as FirebaseAnalyticsIosMessage);
103
+ }
104
+
105
+ platform === "ANDROID_APP" && webToNative.logFirebaseEvent(eventName, parameters);
106
+ }
107
+ };
108
+
109
+ /**
110
+ * Logs a Firebase Analytics screen view
111
+ * @param options - Options for logging a screen view
112
+ */
113
+ export const logScreen = (options: FirebaseScreenOptions): void => {
114
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
115
+ const { screenName, screenClass } = options;
116
+
117
+ if (platform === "IOS_APP" && webToNativeIos) {
118
+ webToNativeIos.postMessage({
119
+ action: "logFirebaseScreenView",
120
+ screenName,
121
+ screenClass,
122
+ } as FirebaseAnalyticsIosMessage);
123
+ }
124
+
125
+ platform === "ANDROID_APP" && webToNative.logFirebaseScreenView(screenName, screenClass);
126
+ }
127
+ };
@@ -0,0 +1,73 @@
1
+ import { platform, webToNative, webToNativeIos, registerCb } from "../../utills";
2
+ import {
3
+ FirebaseTopicSubscriptionOptions,
4
+ FirebaseTopicUnsubscriptionOptions,
5
+ FirebaseFCMTokenOptions,
6
+ FirebaseFCMTokenResponse,
7
+ FirebaseMessagingIosMessage
8
+ } from "../types";
9
+
10
+ /**
11
+ * Subscribes to a Firebase Cloud Messaging topic
12
+ * @param options - Options for topic subscription
13
+ */
14
+ export const subscribe = (options: FirebaseTopicSubscriptionOptions): void => {
15
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
16
+ const { toTopic } = options;
17
+
18
+ if (platform === "IOS_APP" && webToNativeIos) {
19
+ webToNativeIos.postMessage({
20
+ action: "firebaseSubscribeToTopic",
21
+ topic: toTopic,
22
+ } as FirebaseMessagingIosMessage);
23
+ }
24
+
25
+ platform === "ANDROID_APP" && webToNative.subscribeToTopic(toTopic);
26
+ }
27
+ };
28
+
29
+ /**
30
+ * Unsubscribes from a Firebase Cloud Messaging topic
31
+ * @param options - Options for topic unsubscription
32
+ */
33
+ export const unsubscribe = (options: FirebaseTopicUnsubscriptionOptions): void => {
34
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
35
+ const { fromTopic } = options;
36
+
37
+ if (platform === "IOS_APP" && webToNativeIos) {
38
+ webToNativeIos.postMessage({
39
+ action: "firebaseUnsubscribeFromTopic",
40
+ topic: fromTopic,
41
+ } as FirebaseMessagingIosMessage);
42
+ }
43
+
44
+ platform === "ANDROID_APP" && webToNative.unsubscribeFromTopic(fromTopic);
45
+ }
46
+ };
47
+
48
+ /**
49
+ * Gets the Firebase Cloud Messaging token
50
+ * @param options - Options for getting FCM token
51
+ */
52
+ export const getFCMToken = (options: FirebaseFCMTokenOptions): void => {
53
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
54
+ const { callback } = options;
55
+ registerCb((response: FirebaseFCMTokenResponse) => {
56
+ const { type } = response;
57
+ if (type === "getFCMToken") {
58
+ if (platform === "ANDROID_APP") {
59
+ response.token = response.fcm_registration_token;
60
+ }
61
+ callback && callback(response);
62
+ }
63
+ });
64
+
65
+ if (platform === "IOS_APP" && webToNativeIos) {
66
+ webToNativeIos.postMessage({
67
+ action: "getFCMToken",
68
+ } as FirebaseMessagingIosMessage);
69
+ }
70
+
71
+ platform === "ANDROID_APP" && webToNative.getRegistrationToken();
72
+ }
73
+ };
@@ -0,0 +1,4 @@
1
+ import * as Analytics from "./Analytics";
2
+ import * as Messaging from "./Messaging";
3
+
4
+ export { Analytics, Messaging };
@@ -0,0 +1,74 @@
1
+ // Common Firebase types
2
+
3
+ export interface FirebaseAnalyticsCollectionOptions {
4
+ enabled: boolean;
5
+ }
6
+
7
+ export interface FirebaseUserIdOptions {
8
+ userId: string;
9
+ }
10
+
11
+ export interface FirebaseUserPropertyOptions {
12
+ key: string;
13
+ value: string;
14
+ }
15
+
16
+ export interface FirebaseEventParameters {
17
+ [key: string]: any;
18
+ }
19
+
20
+ export interface FirebaseDefaultParametersOptions {
21
+ parameters: FirebaseEventParameters;
22
+ }
23
+
24
+ export interface FirebaseEventOptions {
25
+ eventName: string;
26
+ parameters?: FirebaseEventParameters;
27
+ }
28
+
29
+ export interface FirebaseScreenOptions {
30
+ screenName: string;
31
+ screenClass?: string;
32
+ }
33
+
34
+ export interface FirebaseAnalyticsIosMessage {
35
+ action: string;
36
+ enabled?: boolean;
37
+ userId?: string;
38
+ key?: string;
39
+ value?: string;
40
+ parameters?: FirebaseEventParameters;
41
+ eventName?: string;
42
+ screenName?: string;
43
+ screenClass?: string;
44
+ }
45
+
46
+ // Firebase Messaging types
47
+
48
+ export interface FirebaseTopicSubscriptionOptions {
49
+ toTopic: string;
50
+ }
51
+
52
+ export interface FirebaseTopicUnsubscriptionOptions {
53
+ fromTopic: string;
54
+ }
55
+
56
+ export interface FirebaseFCMTokenResponse {
57
+ type: string;
58
+ token?: string;
59
+ fcm_registration_token?: string;
60
+ [key: string]: any;
61
+ }
62
+
63
+ export interface FirebaseFCMTokenCallback {
64
+ (response: FirebaseFCMTokenResponse): void;
65
+ }
66
+
67
+ export interface FirebaseFCMTokenOptions {
68
+ callback?: FirebaseFCMTokenCallback;
69
+ }
70
+
71
+ export interface FirebaseMessagingIosMessage {
72
+ action: string;
73
+ topic?: string;
74
+ }
@@ -0,0 +1,3 @@
1
+ import * as FirebaseAnalyticsEvents from "../Firebase/Analytics";
2
+
3
+ export { FirebaseAnalyticsEvents as events };
@@ -0,0 +1,17 @@
1
+ import { platform, webToNativeIos } from "../utills";
2
+ import { HapticsOptions, HapticsIosMessage } from "./types";
3
+
4
+ /**
5
+ * Triggers a haptic feedback effect
6
+ * @param options - Options for the haptic effect
7
+ */
8
+ export const trigger = (options: HapticsOptions = {}): void => {
9
+ if (["ANDROID_APP", "IOS_APP"].includes(platform)) {
10
+ if (platform === "IOS_APP" && webToNativeIos) {
11
+ webToNativeIos.postMessage({
12
+ action: "haptikEffect",
13
+ effect: options.effect,
14
+ } as HapticsIosMessage);
15
+ }
16
+ }
17
+ };
@@ -0,0 +1,8 @@
1
+ export interface HapticsOptions {
2
+ effect?: string;
3
+ }
4
+
5
+ export interface HapticsIosMessage {
6
+ action: string;
7
+ effect?: string;
8
+ }