react-native-okhi 1.2.23 → 1.2.25

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 (34) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +7 -0
  3. package/ios/Okhi.m +2 -0
  4. package/ios/Okhi.swift +303 -298
  5. package/lib/commonjs/OkCollect/OkHiLocationManager.js +67 -34
  6. package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
  7. package/lib/commonjs/OkCollect/Util.js +3 -1
  8. package/lib/commonjs/OkCollect/Util.js.map +1 -1
  9. package/lib/commonjs/OkCollect/app.json +1 -1
  10. package/lib/commonjs/OkCore/Helpers.js +10 -1
  11. package/lib/commonjs/OkCore/Helpers.js.map +1 -1
  12. package/lib/commonjs/OkHiNativeModule/index.js.map +1 -1
  13. package/lib/module/OkCollect/OkHiLocationManager.js +68 -35
  14. package/lib/module/OkCollect/OkHiLocationManager.js.map +1 -1
  15. package/lib/module/OkCollect/Util.js +3 -1
  16. package/lib/module/OkCollect/Util.js.map +1 -1
  17. package/lib/module/OkCollect/app.json +1 -1
  18. package/lib/module/OkCore/Helpers.js +8 -0
  19. package/lib/module/OkCore/Helpers.js.map +1 -1
  20. package/lib/module/OkHiNativeModule/index.js.map +1 -1
  21. package/lib/typescript/OkCore/Helpers.d.ts +5 -0
  22. package/lib/typescript/OkHiNativeModule/index.d.ts +1 -0
  23. package/package.json +1 -1
  24. package/react-native-okhi.podspec +1 -1
  25. package/src/OkCollect/OkHiLocationManager.tsx +93 -35
  26. package/src/OkCollect/Util.ts +4 -0
  27. package/src/OkCollect/app.json +1 -1
  28. package/src/OkCore/Helpers.ts +8 -0
  29. package/src/OkHiNativeModule/index.ts +3 -0
  30. package/android/local.properties +0 -8
  31. package/ios/Okhi.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
  32. package/ios/Okhi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  33. package/ios/Okhi.xcodeproj/project.xcworkspace/xcuserdata/kiano.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  34. package/ios/Okhi.xcodeproj/xcuserdata/kiano.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -5,7 +5,7 @@ import { Spinner } from './Spinner';
5
5
  import { getFrameUrl, generateJavaScriptStartScript, generateStartDataPayload, parseOkHiLocation, fetchCurrentLocation } from './Util';
6
6
  import { OkHiException } from '../OkCore/OkHiException';
7
7
  import { start as sv } from '../OkVerify';
8
- import { getApplicationConfiguration, isBackgroundLocationPermissionGranted, isLocationServicesEnabled, openAppSettings, openProtectedAppsSettings, requestBackgroundLocationPermission, requestLocationPermission } from '../OkCore';
8
+ import { getApplicationConfiguration, isBackgroundLocationPermissionGranted, isLocationPermissionGranted, openAppSettings, openProtectedAppsSettings, requestBackgroundLocationPermission, requestLocationPermission } from '../OkCore';
9
9
  import { OkHiNativeModule } from '../OkHiNativeModule';
10
10
 
11
11
  /**
@@ -32,6 +32,7 @@ export const OkHiLocationManager = props => {
32
32
  const webViewRef = useRef(null);
33
33
  const startMessage = props.mode === 'create' ? 'start_app' : 'select_location';
34
34
  const [ready, setReady] = useState(false);
35
+ const androidAlwaysRequested = useRef(false);
35
36
  useEffect(() => {
36
37
  if (launch) {
37
38
  setReady(launch);
@@ -61,44 +62,75 @@ export const OkHiLocationManager = props => {
61
62
  startOkHiLocationManager();
62
63
  }
63
64
  }, [launch, props, onError]);
64
- const runWebViewCallback = value => {
65
- if (webViewRef.current) {
66
- const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === "function") { runOkHiLocationManagerCallback("${value}") } })()`;
67
- webViewRef.current.injectJavaScript(jsString);
65
+ const runWebViewCallback = async result => {
66
+ var _webViewRef$current;
67
+ const level = await OkHiNativeModule.getLocationAccuracyLevel();
68
+ let callbackResult = result;
69
+ if ((result === 'blocked' || result === 'denied') && level === 'approximate') {
70
+ callbackResult = 'whenInUse';
68
71
  }
72
+ const update = {
73
+ locationAccuracyLevel: level
74
+ };
75
+ const jsonUpdate = JSON.stringify(update).replace(/\\/g, '\\\\').replace(/"/g, '\\"');
76
+ const jsString = `
77
+ (function (){
78
+ if (typeof runOkHiLocationManagerCallback === "function") {
79
+ runOkHiLocationManagerCallback("${callbackResult}", "${jsonUpdate}")
80
+ }
81
+ })()
82
+ `;
83
+ (_webViewRef$current = webViewRef.current) === null || _webViewRef$current === void 0 || _webViewRef$current.injectJavaScript(jsString);
69
84
  };
70
85
  const handleAndroidRequestLocationPermission = async level => {
71
- if (level === 'whenInUse') {
72
- const whenInUseResult = await requestLocationPermission();
73
- const alwaysResult = await isBackgroundLocationPermissionGranted();
74
- runWebViewCallback(alwaysResult ? 'always' : whenInUseResult ? 'whenInUse' : 'blocked');
75
- } else if (level === 'always') {
76
- const result = await requestBackgroundLocationPermission();
77
- runWebViewCallback(result ? 'always' : 'blocked');
86
+ try {
87
+ const _isLocationPermissionGranted = await isLocationPermissionGranted();
88
+ const _isBackgroundLocationPermissionGranted = await isBackgroundLocationPermissionGranted();
89
+ const _locationAccuracyLevel = await OkHiNativeModule.getLocationAccuracyLevel();
90
+ if (_isBackgroundLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
91
+ runWebViewCallback('always');
92
+ } else if (level === 'whenInUse' && _isLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
93
+ runWebViewCallback('whenInUse');
94
+ } else if (level === 'whenInUse' && _locationAccuracyLevel === 'no_permission') {
95
+ const result = await requestLocationPermission();
96
+ runWebViewCallback(result ? 'whenInUse' : 'denied');
97
+ } else if (level === 'always') {
98
+ const result = await requestBackgroundLocationPermission();
99
+ runWebViewCallback(result ? 'always' : 'denied');
100
+ androidAlwaysRequested.current = true;
101
+ } else if (level === 'whenInUse' && _locationAccuracyLevel === 'approximate') {
102
+ const result = await requestLocationPermission();
103
+ runWebViewCallback(result ? 'whenInUse' : 'denied');
104
+ } else {
105
+ openAppSettings();
106
+ }
107
+ } catch (error) {
108
+ onError(new OkHiException({
109
+ code: 'unknown',
110
+ message: 'could not request permission'
111
+ }));
78
112
  }
79
113
  };
80
114
  const handleIOSRequestLocationPermission = async level => {
81
- const unknownError = new OkHiException({
82
- code: OkHiException.UNKNOWN_ERROR_CODE,
83
- message: 'Something went wrong while requesting permissions. Please try again later.'
84
- });
85
115
  try {
86
- const isServiceAvailable = await isLocationServicesEnabled();
87
- if (!isServiceAvailable) {
88
- openAppSettings();
89
- } else if (level === 'whenInUse') {
116
+ const _isLocationPermissionGranted = await isLocationPermissionGranted();
117
+ const _isBackgroundLocationPermissionGranted = await isBackgroundLocationPermissionGranted();
118
+ const _locationAccuracyLevel = await OkHiNativeModule.getLocationAccuracyLevel();
119
+ if (_isBackgroundLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
120
+ runWebViewCallback('always');
121
+ } else if (level === 'whenInUse' && _isLocationPermissionGranted && _locationAccuracyLevel === 'precise') {
122
+ runWebViewCallback('whenInUse');
123
+ } else if (level === 'whenInUse' && !_isLocationPermissionGranted) {
90
124
  const result = await requestLocationPermission();
91
- runWebViewCallback(result ? level : 'denied');
92
- } else if (level === 'always') {
93
- const granted = await isBackgroundLocationPermissionGranted();
94
- if (granted) {
95
- runWebViewCallback(level);
96
- } else {
97
- openAppSettings();
98
- }
125
+ runWebViewCallback(result ? 'whenInUse' : 'denied');
126
+ } else {
127
+ openAppSettings();
99
128
  }
100
129
  } catch (error) {
101
- onError(unknownError);
130
+ onError(new OkHiException({
131
+ code: 'unknown',
132
+ message: 'could not request permission'
133
+ }));
102
134
  }
103
135
  };
104
136
  const handleRequestLocationPermission = async ({
@@ -127,9 +159,9 @@ export const OkHiLocationManager = props => {
127
159
  try {
128
160
  const location = await fetchCurrentLocation();
129
161
  if (location) {
130
- var _webViewRef$current;
162
+ var _webViewRef$current2;
131
163
  const jsString = `window.receiveCurrentLocation({lat: ${location.lat},lng: ${location.lng},accuracy: ${location.accuracy}})`;
132
- (_webViewRef$current = webViewRef.current) === null || _webViewRef$current === void 0 || _webViewRef$current.injectJavaScript(jsString);
164
+ (_webViewRef$current2 = webViewRef.current) === null || _webViewRef$current2 === void 0 || _webViewRef$current2.injectJavaScript(jsString);
133
165
  }
134
166
  } catch (error) {
135
167
  console.error(error);
@@ -139,9 +171,9 @@ export const OkHiLocationManager = props => {
139
171
  // prevents ios https... is requesting for your location
140
172
  const handleWebViewOnLoad = () => {
141
173
  if (Platform.OS === 'ios') {
142
- var _webViewRef$current2;
174
+ var _webViewRef$current3;
143
175
  const jsString = '(function(){navigator.geolocation.watchPosition=navigator.geolocation.getCurrentPosition=function(s,e,o){if(window.ReactNativeWebView&&typeof window.ReactNativeWebView.postMessage==="function"){window.ReactNativeWebView.postMessage(JSON.stringify({message:"fetch_current_location",payload:{}}));}window.receiveCurrentLocation=function(l){s({coords:{latitude:l.lat,longitude:l.lng,accuracy:l.accuracy,altitude:null,altitudeAccuracy:null,heading:null,speed:null},timestamp:Date.now()});};};})();';
144
- (_webViewRef$current2 = webViewRef.current) === null || _webViewRef$current2 === void 0 || _webViewRef$current2.injectJavaScript(jsString);
176
+ (_webViewRef$current3 = webViewRef.current) === null || _webViewRef$current3 === void 0 || _webViewRef$current3.injectJavaScript(jsString);
145
177
  }
146
178
  };
147
179
  const handleOnMessage = ({
@@ -151,6 +183,7 @@ export const OkHiLocationManager = props => {
151
183
  }) => {
152
184
  try {
153
185
  const response = JSON.parse(data);
186
+ console.log(response);
154
187
  if (response.message === 'fatal_exit') {
155
188
  //TODO: figure out bad phone number code
156
189
  onError(new OkHiException({
@@ -224,8 +257,8 @@ export const OkHiLocationManager = props => {
224
257
  }));
225
258
  };
226
259
  const handleModalRequestClose = () => {
227
- var _webViewRef$current3;
228
- (_webViewRef$current3 = webViewRef.current) === null || _webViewRef$current3 === void 0 || _webViewRef$current3.goBack();
260
+ var _webViewRef$current4;
261
+ (_webViewRef$current4 = webViewRef.current) === null || _webViewRef$current4 === void 0 || _webViewRef$current4.goBack();
229
262
  };
230
263
  const renderContent = () => {
231
264
  if (startPayload === null || applicationConfiguration == null) {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","fetchCurrentLocation","OkHiException","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationServicesEnabled","openAppSettings","openProtectedAppsSettings","requestBackgroundLocationPermission","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","startMessage","mode","ready","setReady","startOkHiLocationManager","appConfiguration","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","OS","Version","setItem","JSON","stringify","payload","url","catch","console","error","runWebViewCallback","value","current","jsString","injectJavaScript","handleAndroidRequestLocationPermission","level","whenInUseResult","alwaysResult","result","handleIOSRequestLocationPermission","unknownError","UNKNOWN_ERROR_CODE","isServiceAvailable","granted","handleRequestLocationPermission","handleOpenAppSettings","err","handleFetchCurrentLocation","location","_webViewRef$current","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current2","handleOnMessage","nativeEvent","data","response","parse","fcmPushNotificationToken","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current3","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","animationType","transparent","visible","onRequestClose"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n fetchCurrentLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport {\n getApplicationConfiguration,\n isBackgroundLocationPermissionGranted,\n isLocationServicesEnabled,\n openAppSettings,\n openProtectedAppsSettings,\n requestBackgroundLocationPermission,\n requestLocationPermission,\n UsageType,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n const startMessage =\n props.mode === 'create' ? 'start_app' : 'select_location';\n const [ready, setReady] = useState(false);\n\n useEffect(() => {\n if (launch) {\n setReady(launch);\n }\n }, [launch]);\n\n useEffect(() => {\n async function startOkHiLocationManager() {\n const appConfiguration = await getApplicationConfiguration();\n if (!appConfiguration) {\n throw new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n const startPayload = await generateStartDataPayload(\n props,\n appConfiguration\n );\n setApplicationConfiguration(appConfiguration);\n setStartPaylaod(startPayload);\n if (Platform.OS === 'android' && Platform.Version > 25) {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: startMessage,\n payload: startPayload,\n url: getFrameUrl(appConfiguration),\n })\n ).catch(console.error);\n }\n }\n\n if (launch) {\n startOkHiLocationManager();\n }\n }, [launch, props, onError]);\n\n const runWebViewCallback = (value: string) => {\n if (webViewRef.current) {\n const jsString = `(function (){ if (typeof runOkHiLocationManagerCallback === \"function\") { runOkHiLocationManagerCallback(\"${value}\") } })()`;\n webViewRef.current.injectJavaScript(jsString);\n }\n };\n\n const handleAndroidRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n if (level === 'whenInUse') {\n const whenInUseResult = await requestLocationPermission();\n const alwaysResult = await isBackgroundLocationPermissionGranted();\n runWebViewCallback(\n alwaysResult ? 'always' : whenInUseResult ? 'whenInUse' : 'blocked'\n );\n } else if (level === 'always') {\n const result = await requestBackgroundLocationPermission();\n runWebViewCallback(result ? 'always' : 'blocked');\n }\n };\n\n const handleIOSRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n const unknownError = new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message:\n 'Something went wrong while requesting permissions. Please try again later.',\n });\n try {\n const isServiceAvailable = await isLocationServicesEnabled();\n if (!isServiceAvailable) {\n openAppSettings();\n } else if (level === 'whenInUse') {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? level : 'denied');\n } else if (level === 'always') {\n const granted = await isBackgroundLocationPermissionGranted();\n if (granted) {\n runWebViewCallback(level);\n } else {\n openAppSettings();\n }\n }\n } catch (error) {\n onError(unknownError);\n }\n };\n\n const handleRequestLocationPermission = async ({\n level,\n }: {\n level: 'whenInUse' | 'always';\n }) => {\n if (Platform.OS === 'android') {\n handleAndroidRequestLocationPermission(level);\n } else if (Platform.OS === 'ios') {\n handleIOSRequestLocationPermission(level);\n }\n };\n\n const handleOpenAppSettings = async () => {\n try {\n const granted = await isBackgroundLocationPermissionGranted();\n if (granted) {\n runWebViewCallback('always');\n } else {\n await openAppSettings();\n }\n } catch (error) {\n const err = error as OkHiException;\n onError(err);\n }\n };\n\n const handleFetchCurrentLocation = async () => {\n try {\n const location = await fetchCurrentLocation();\n if (location) {\n const jsString = `window.receiveCurrentLocation({lat: ${location.lat},lng: ${location.lng},accuracy: ${location.accuracy}})`;\n webViewRef.current?.injectJavaScript(jsString);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n // prevents ios https... is requesting for your location\n const handleWebViewOnLoad = () => {\n if (Platform.OS === 'ios') {\n const jsString =\n '(function(){navigator.geolocation.watchPosition=navigator.geolocation.getCurrentPosition=function(s,e,o){if(window.ReactNativeWebView&&typeof window.ReactNativeWebView.postMessage===\"function\"){window.ReactNativeWebView.postMessage(JSON.stringify({message:\"fetch_current_location\",payload:{}}));}window.receiveCurrentLocation=function(l){s({coords:{latitude:l.lat,longitude:l.lng,accuracy:l.accuracy,altitude:null,altitudeAccuracy:null,heading:null,speed:null},timestamp:Date.now()});};};})();';\n webViewRef.current?.injectJavaScript(jsString);\n }\n };\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n\n if (response.message === 'fatal_exit') {\n //TODO: figure out bad phone number code\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload,\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else if (\n response.message === 'location_created' ||\n response.message === 'location_selected' ||\n response.message === 'location_updated'\n ) {\n setReady(false); // auto close\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function () {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else if (!createdUser.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing user id from response',\n })\n );\n } else if (!createdUser.token) {\n reject(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else {\n const usageTypes: UsageType = Array.isArray(location.usageTypes)\n ? location.usageTypes\n : ['digital_verification'];\n sv(\n createdUser.token,\n createdUser.phone,\n createdUser.id,\n location.id,\n location.lat,\n location.lon,\n usageTypes\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n } else if (response.message === 'request_location_permission') {\n handleRequestLocationPermission(response.payload);\n } else if (response.message === 'open_app_settings') {\n handleOpenAppSettings();\n } else if (response.message === 'fetch_current_location') {\n handleFetchCurrentLocation();\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (startPayload === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: startMessage,\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n onLoad={handleWebViewOnLoad}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={ready}\n onRequestClose={handleModalRequestClose}\n >\n {ready ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useRef","Modal","SafeAreaView","Platform","WebView","Spinner","getFrameUrl","generateJavaScriptStartScript","generateStartDataPayload","parseOkHiLocation","fetchCurrentLocation","OkHiException","start","sv","getApplicationConfiguration","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","openAppSettings","openProtectedAppsSettings","requestBackgroundLocationPermission","requestLocationPermission","OkHiNativeModule","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","startMessage","mode","ready","setReady","androidAlwaysRequested","startOkHiLocationManager","appConfiguration","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","OS","Version","setItem","JSON","stringify","payload","url","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","_locationAccuracyLevel","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","log","UNKNOWN_ERROR_CODE","fcmPushNotificationToken","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","jsAfterLoad","jsBeforeLoad","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","animationType","transparent","visible","onRequestClose"],"sources":["OkHiLocationManager.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from 'react';\nimport { Modal, SafeAreaView, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport { Spinner } from './Spinner';\nimport type {\n OkHiLocationManagerResponse,\n OkHiLocationManagerProps,\n OkHiLocationManagerStartDataPayload,\n} from './types';\nimport {\n getFrameUrl,\n generateJavaScriptStartScript,\n generateStartDataPayload,\n parseOkHiLocation,\n fetchCurrentLocation,\n} from './Util';\nimport { OkHiException } from '../OkCore/OkHiException';\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { start as sv } from '../OkVerify';\nimport {\n getApplicationConfiguration,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n openAppSettings,\n openProtectedAppsSettings,\n requestBackgroundLocationPermission,\n requestLocationPermission,\n UsageType,\n} from '../OkCore';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\n/**\n * The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.\n */\nexport const OkHiLocationManager = (props: OkHiLocationManagerProps) => {\n const [applicationConfiguration, setApplicationConfiguration] =\n useState<AuthApplicationConfig | null>(null);\n const [startPayload, setStartPaylaod] =\n useState<null | OkHiLocationManagerStartDataPayload>(null);\n const defaultStyle = { flex: 1 };\n const style = props.style\n ? { ...props.style, ...defaultStyle }\n : defaultStyle;\n\n const { user, onSuccess, onCloseRequest, onError, loader, launch } = props;\n const webViewRef = useRef<WebView | null>(null);\n const startMessage =\n props.mode === 'create' ? 'start_app' : 'select_location';\n const [ready, setReady] = useState(false);\n const androidAlwaysRequested = useRef(false);\n\n useEffect(() => {\n if (launch) {\n setReady(launch);\n }\n }, [launch]);\n\n useEffect(() => {\n async function startOkHiLocationManager() {\n const appConfiguration = await getApplicationConfiguration();\n if (!appConfiguration) {\n throw new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n const startPayload = await generateStartDataPayload(\n props,\n appConfiguration\n );\n setApplicationConfiguration(appConfiguration);\n setStartPaylaod(startPayload);\n if (Platform.OS === 'android' && Platform.Version > 25) {\n OkHiNativeModule.setItem(\n 'okcollect-launch-payload',\n JSON.stringify({\n message: startMessage,\n payload: startPayload,\n url: getFrameUrl(appConfiguration),\n })\n ).catch(console.error);\n }\n }\n\n if (launch) {\n startOkHiLocationManager();\n }\n }, [launch, props, onError]);\n\n const runWebViewCallback = async (result: string) => {\n const level = await OkHiNativeModule.getLocationAccuracyLevel();\n let callbackResult = result;\n if (\n (result === 'blocked' || result === 'denied') &&\n level === 'approximate'\n ) {\n callbackResult = 'whenInUse';\n }\n const update = { locationAccuracyLevel: level };\n const jsonUpdate = JSON.stringify(update)\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"');\n const jsString = `\n (function (){\n if (typeof runOkHiLocationManagerCallback === \"function\") {\n runOkHiLocationManagerCallback(\"${callbackResult}\", \"${jsonUpdate}\")\n }\n })()\n `;\n webViewRef.current?.injectJavaScript(jsString);\n };\n\n const handleAndroidRequestLocationPermission = async (\n level: 'whenInUse' | 'always'\n ) => {\n try {\n const _isLocationPermissionGranted = await isLocationPermissionGranted();\n const _isBackgroundLocationPermissionGranted =\n await isBackgroundLocationPermissionGranted();\n const _locationAccuracyLevel =\n await OkHiNativeModule.getLocationAccuracyLevel();\n if (\n _isBackgroundLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('always');\n } else if (\n level === 'whenInUse' &&\n _isLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('whenInUse');\n } else if (\n level === 'whenInUse' &&\n _locationAccuracyLevel === 'no_permission'\n ) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else if (level === 'always') {\n const result = await requestBackgroundLocationPermission();\n runWebViewCallback(result ? 'always' : 'denied');\n androidAlwaysRequested.current = true;\n } else if (\n level === 'whenInUse' &&\n _locationAccuracyLevel === 'approximate'\n ) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else {\n openAppSettings();\n }\n } catch (error) {\n onError(\n new OkHiException({\n code: 'unknown',\n message: 'could not request permission',\n })\n );\n }\n };\n\n const handleIOSRequestLocationPermission = async (level: string) => {\n try {\n const _isLocationPermissionGranted = await isLocationPermissionGranted();\n const _isBackgroundLocationPermissionGranted =\n await isBackgroundLocationPermissionGranted();\n const _locationAccuracyLevel =\n await OkHiNativeModule.getLocationAccuracyLevel();\n\n if (\n _isBackgroundLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('always');\n } else if (\n level === 'whenInUse' &&\n _isLocationPermissionGranted &&\n _locationAccuracyLevel === 'precise'\n ) {\n runWebViewCallback('whenInUse');\n } else if (level === 'whenInUse' && !_isLocationPermissionGranted) {\n const result = await requestLocationPermission();\n runWebViewCallback(result ? 'whenInUse' : 'denied');\n } else {\n openAppSettings();\n }\n } catch (error) {\n onError(\n new OkHiException({\n code: 'unknown',\n message: 'could not request permission',\n })\n );\n }\n };\n\n const handleRequestLocationPermission = async ({\n level,\n }: {\n level: 'whenInUse' | 'always';\n }) => {\n if (Platform.OS === 'android') {\n handleAndroidRequestLocationPermission(level);\n } else if (Platform.OS === 'ios') {\n handleIOSRequestLocationPermission(level);\n }\n };\n\n const handleOpenAppSettings = async () => {\n try {\n const granted = await isBackgroundLocationPermissionGranted();\n if (granted) {\n runWebViewCallback('always');\n } else {\n await openAppSettings();\n }\n } catch (error) {\n const err = error as OkHiException;\n onError(err);\n }\n };\n\n const handleFetchCurrentLocation = async () => {\n try {\n const location = await fetchCurrentLocation();\n if (location) {\n const jsString = `window.receiveCurrentLocation({lat: ${location.lat},lng: ${location.lng},accuracy: ${location.accuracy}})`;\n webViewRef.current?.injectJavaScript(jsString);\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n // prevents ios https... is requesting for your location\n const handleWebViewOnLoad = () => {\n if (Platform.OS === 'ios') {\n const jsString =\n '(function(){navigator.geolocation.watchPosition=navigator.geolocation.getCurrentPosition=function(s,e,o){if(window.ReactNativeWebView&&typeof window.ReactNativeWebView.postMessage===\"function\"){window.ReactNativeWebView.postMessage(JSON.stringify({message:\"fetch_current_location\",payload:{}}));}window.receiveCurrentLocation=function(l){s({coords:{latitude:l.lat,longitude:l.lng,accuracy:l.accuracy,altitude:null,altitudeAccuracy:null,heading:null,speed:null},timestamp:Date.now()});};};})();';\n webViewRef.current?.injectJavaScript(jsString);\n }\n };\n\n const handleOnMessage = ({ nativeEvent: { data } }: WebViewMessageEvent) => {\n try {\n const response: OkHiLocationManagerResponse = JSON.parse(data);\n console.log(response);\n if (response.message === 'fatal_exit') {\n //TODO: figure out bad phone number code\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: response.payload,\n })\n );\n } else if (response.message === 'exit_app') {\n onCloseRequest();\n } else if (response.message === 'request_enable_protected_apps') {\n openProtectedAppsSettings();\n } else if (\n response.message === 'location_created' ||\n response.message === 'location_selected' ||\n response.message === 'location_updated'\n ) {\n setReady(false); // auto close\n onSuccess({\n user: {\n ...response.payload.user,\n fcmPushNotificationToken: user.fcmPushNotificationToken,\n },\n location: parseOkHiLocation(response.payload.location),\n startVerification: function () {\n const createdUser = { ...this.user };\n const location = { ...this.location };\n return new Promise((resolve, reject) => {\n if (!location.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing location id from response',\n })\n );\n } else if (!createdUser.id) {\n reject(\n new OkHiException({\n code: OkHiException.BAD_REQUEST_CODE,\n message: 'Missing user id from response',\n })\n );\n } else if (!createdUser.token) {\n reject(\n new OkHiException({\n code: OkHiException.UNAUTHORIZED_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n })\n );\n } else {\n const usageTypes: UsageType = Array.isArray(location.usageTypes)\n ? location.usageTypes\n : ['digital_verification'];\n sv(\n createdUser.token,\n createdUser.phone,\n createdUser.id,\n location.id,\n location.lat,\n location.lon,\n usageTypes\n )\n .then(resolve)\n .catch(reject);\n }\n });\n },\n });\n } else if (response.message === 'request_location_permission') {\n handleRequestLocationPermission(response.payload);\n } else if (response.message === 'open_app_settings') {\n handleOpenAppSettings();\n } else if (response.message === 'fetch_current_location') {\n handleFetchCurrentLocation();\n }\n } catch (error) {\n let errorMessage = 'Something went wrong';\n if (error instanceof Error) {\n errorMessage = error.message;\n }\n onError(\n new OkHiException({\n code: OkHiException.UNKNOWN_ERROR_CODE,\n message: errorMessage,\n })\n );\n }\n };\n\n const handleOnError = () => {\n onError(\n new OkHiException({\n code: OkHiException.NETWORK_ERROR_CODE,\n message: OkHiException.NETWORK_ERROR_MESSAGE,\n })\n );\n };\n\n const handleModalRequestClose = () => {\n webViewRef.current?.goBack();\n };\n\n const renderContent = () => {\n if (startPayload === null || applicationConfiguration == null) {\n return loader || <Spinner />;\n }\n\n const { jsAfterLoad, jsBeforeLoad } = generateJavaScriptStartScript({\n message: startMessage,\n payload: startPayload,\n });\n\n return (\n <SafeAreaView style={style}>\n <WebView\n source={{ uri: getFrameUrl(applicationConfiguration) }}\n injectedJavaScriptBeforeContentLoaded={\n Platform.OS === 'ios' ? jsBeforeLoad : undefined\n }\n injectedJavaScript={Platform.OS === 'ios' ? undefined : jsAfterLoad}\n onMessage={handleOnMessage}\n onError={handleOnError}\n onHttpError={handleOnError}\n geolocationEnabled={true}\n allowsBackForwardNavigationGestures={true}\n onLoad={handleWebViewOnLoad}\n ref={webViewRef}\n />\n </SafeAreaView>\n );\n };\n\n return (\n <Modal\n animationType=\"slide\"\n transparent={false}\n visible={ready}\n onRequestClose={handleModalRequestClose}\n >\n {ready ? renderContent() : null}\n </Modal>\n );\n};\n\nexport default OkHiLocationManager;\n"],"mappings":"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","ignoreList":[]}
@@ -22,6 +22,7 @@ export const generateStartDataPayload = async (props, applicationConfiguration)
22
22
  platform
23
23
  } = await OkHiNativeModule.retrieveDeviceInfo();
24
24
  const geofences = await OkHiNativeModule.fetchRegisteredGeofences();
25
+ const locationAccuracyLevel = await OkHiNativeModule.getLocationAccuracyLevel();
25
26
  if (geofences) {
26
27
  payload.locations = JSON.parse(geofences);
27
28
  }
@@ -63,7 +64,8 @@ export const generateStartDataPayload = async (props, applicationConfiguration)
63
64
  model,
64
65
  platform,
65
66
  osVersion
66
- }
67
+ },
68
+ locationAccuracyLevel
67
69
  };
68
70
  payload.config = {
69
71
  streetView: typeof ((_props$config = props.config) === null || _props$config === void 0 ? void 0 : _props$config.streetView) === 'boolean' ? props.config.streetView : true,
@@ -1 +1 @@
1
- {"version":3,"names":["canOpenProtectedAppsSettings","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","OkHiException","OkHiMode","manifest","Platform","OkHiNativeModule","fetchCurrentLocation","result","generateStartDataPayload","props","applicationConfiguration","_props$theme","_props$theme2","_applicationConfigura","_applicationConfigura2","_applicationConfigura3","_props$config","_props$theme3","_props$config2","_props$config3","_props$config4","_props$config5","_props$config6","_props$config7","_props$location","payload","manufacturer","model","osVersion","platform","retrieveDeviceInfo","geofences","fetchRegisteredGeofences","locations","JSON","parse","style","theme","undefined","base","color","colors","primary","logo","appBar","name","app","user","phone","firstName","lastName","email","appUserId","auth","branchId","credentials","clientKey","context","container","version","developer","library","device","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","OS","permissionsOnboarding","usageTypes","status","fetchIOSLocationPermissionStatus","locationPermission","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","error","console","log","hasBackgroundLocationPermission","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","id","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","stringify","jsAfterLoad","parseOkHiLocation","_location$geo_point","_location$geo_point2","_location$street_view","_location$street_view2","geo_point","lon","placeId","place_id","plusCode","plus_code","propertyName","property_name","streetName","street_name","title","subtitle","directions","otherInformation","other_information","url","streetViewPanoId","street_view","pano_id","streetViewPanoUrl","userId","user_id","propertyNumber","photo","displayTitle","display_title","country","state","city","countryCode","country_code","usage_types"],"sources":["Util.ts"],"sourcesContent":["import type { OkHiLocationManagerProps } from './types';\nimport {\n canOpenProtectedAppsSettings,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n OkHiException,\n OkHiLocation,\n} from '../OkCore';\nimport { OkHiMode } from '../OkCore';\nimport type {\n OkHiLocationManagerStartDataPayload,\n OkHiLocationManagerStartMessage,\n} from './types';\nimport manifest from './app.json'; //TODO: fix this\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { Platform } from 'react-native';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\nexport const fetchCurrentLocation = async (): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n}> => {\n const result = await OkHiNativeModule.fetchCurrentLocation();\n return result;\n};\n\n/**\n * @ignore\n */\nexport const generateStartDataPayload = async (\n props: OkHiLocationManagerProps,\n applicationConfiguration: AuthApplicationConfig\n): Promise<OkHiLocationManagerStartDataPayload> => {\n const payload: any = {};\n const { manufacturer, model, osVersion, platform } =\n await OkHiNativeModule.retrieveDeviceInfo();\n const geofences = await OkHiNativeModule.fetchRegisteredGeofences();\n if (geofences) {\n payload.locations = JSON.parse(geofences);\n }\n payload.style = !props.theme\n ? undefined\n : {\n base: {\n color: props.theme?.colors?.primary,\n logo: props.theme?.appBar?.logo,\n name: applicationConfiguration.app?.name,\n },\n };\n payload.user = {\n phone: props.user.phone,\n firstName: props.user.firstName,\n lastName: props.user.lastName,\n email: props.user.email,\n appUserId: props.user.appUserId,\n };\n payload.auth = {\n branchId: applicationConfiguration.credentials.branchId,\n clientKey: applicationConfiguration.credentials.clientKey,\n };\n payload.context = {\n container: {\n name: applicationConfiguration.app?.name,\n version: applicationConfiguration.app?.version,\n },\n developer: {\n name: applicationConfiguration.context.developer,\n },\n library: {\n name: manifest.name,\n version: manifest.version,\n },\n platform: {\n name: 'react-native',\n },\n device: {\n manufacturer,\n model,\n platform,\n osVersion,\n },\n };\n payload.config = {\n streetView:\n typeof props.config?.streetView === 'boolean'\n ? props.config.streetView\n : true,\n appBar: {\n color: props.theme?.appBar?.backgroundColor,\n visible: props.config?.appBar?.visible,\n },\n addressTypes: {\n home:\n typeof props.config?.addressTypes?.home === 'boolean'\n ? props.config?.addressTypes?.home\n : true,\n work:\n typeof props.config?.addressTypes?.work === 'boolean'\n ? props.config?.addressTypes?.work\n : true,\n },\n protectedApps:\n Platform.OS === 'android' && (await canOpenProtectedAppsSettings()),\n permissionsOnboarding: true,\n usageTypes: props.config?.usageTypes || ['digital_verification'],\n };\n\n if (Platform.OS === 'ios') {\n const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();\n const locationPermission =\n status === 'notDetermined'\n ? 'notDetermined'\n : status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways'\n ? 'always'\n : 'denied';\n payload.context.permissions = {\n location: locationPermission,\n };\n if (\n status === 'authorized' ||\n status === 'authorizedWhenInUse' ||\n status === 'authorizedAlways'\n ) {\n const location = await fetchCurrentLocation();\n if (location) {\n payload.context.coordinates = {\n currentLocation: {\n lat: location.lat,\n lng: location.lng,\n accuracy: location.accuracy,\n },\n };\n }\n }\n } else if (Platform.OS === 'android') {\n let hasLocationPermission: boolean | undefined;\n try {\n hasLocationPermission = await isLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n let hasBackgroundLocationPermission: boolean | undefined;\n try {\n hasBackgroundLocationPermission =\n await isBackgroundLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n if (\n typeof hasLocationPermission === 'boolean' &&\n typeof hasBackgroundLocationPermission === 'boolean'\n ) {\n payload.context.permissions = {\n location: hasBackgroundLocationPermission\n ? 'always'\n : hasLocationPermission\n ? 'whenInUse'\n : 'denied',\n };\n }\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n\n if (props.location?.id) {\n payload.location = {\n id: props.location.id,\n };\n }\n\n return payload;\n};\n\n/**\n * @ignore\n */\nexport const getFrameUrl = (\n applicationConfiguration: AuthApplicationConfig\n): string => {\n const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';\n const PROD_FRAME_URL = 'https://manager-v5.okhi.io';\n const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';\n\n const LEGACY_DEV_FRAME_URL = 'https://dev-legacy-manager-v5.okhi.io';\n const LEGACY_PROD_FRAME_URL = 'https://legacy-manager-v5.okhi.io';\n const LEGACY_SANDBOX_FRAME_URL = 'https://sandbox-legacy-manager-v5.okhi.io';\n\n if (Platform.OS === 'android' && Platform.Version < 24) {\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return LEGACY_PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return LEGACY_DEV_FRAME_URL;\n }\n return LEGACY_SANDBOX_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return DEV_FRAME_URL;\n }\n return SANDBOX_FRAME_URL;\n};\n\n/**\n * @ignore\n */\nexport const generateJavaScriptStartScript = (startPayload: {\n message: OkHiLocationManagerStartMessage;\n payload: OkHiLocationManagerStartDataPayload;\n}) => {\n const jsBeforeLoad = `\n window.isNativeApp = true;\n window.NativeApp = {\n bridge: {\n receiveMessage: window.ReactNativeWebView.postMessage\n },\n data: ${JSON.stringify(startPayload)}\n }\n true;\n `;\n const jsAfterLoad = `window.startOkHiLocationManager({ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, ${JSON.stringify(\n startPayload\n )})`;\n return { jsBeforeLoad, jsAfterLoad };\n};\n\n/**\n * @ignore\n */\nexport const parseOkHiLocation = (location: any): OkHiLocation => {\n return {\n id: location?.id,\n lat: location?.geo_point?.lat,\n lon: location?.geo_point?.lon,\n placeId: location?.place_id,\n plusCode: location?.plus_code,\n propertyName: location?.property_name,\n streetName: location?.street_name,\n title: location?.title,\n subtitle: location?.subtitle,\n directions: location?.directions,\n otherInformation: location?.other_information,\n url: location?.url,\n streetViewPanoId: location?.street_view?.pano_id,\n streetViewPanoUrl: location?.street_view?.url,\n userId: location?.user_id,\n propertyNumber: location?.propertyNumber,\n photo: location?.photo,\n displayTitle: location?.display_title,\n country: location?.country,\n state: location?.state,\n city: location?.city,\n countryCode: location?.country_code,\n usageTypes: location?.usage_types,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["canOpenProtectedAppsSettings","isBackgroundLocationPermissionGranted","isLocationPermissionGranted","OkHiException","OkHiMode","manifest","Platform","OkHiNativeModule","fetchCurrentLocation","result","generateStartDataPayload","props","applicationConfiguration","_props$theme","_props$theme2","_applicationConfigura","_applicationConfigura2","_applicationConfigura3","_props$config","_props$theme3","_props$config2","_props$config3","_props$config4","_props$config5","_props$config6","_props$config7","_props$location","payload","manufacturer","model","osVersion","platform","retrieveDeviceInfo","geofences","fetchRegisteredGeofences","locationAccuracyLevel","getLocationAccuracyLevel","locations","JSON","parse","style","theme","undefined","base","color","colors","primary","logo","appBar","name","app","user","phone","firstName","lastName","email","appUserId","auth","branchId","credentials","clientKey","context","container","version","developer","library","device","config","streetView","backgroundColor","visible","addressTypes","home","work","protectedApps","OS","permissionsOnboarding","usageTypes","status","fetchIOSLocationPermissionStatus","locationPermission","permissions","location","coordinates","currentLocation","lat","lng","accuracy","hasLocationPermission","error","console","log","hasBackgroundLocationPermission","code","UNSUPPORTED_PLATFORM_CODE","message","UNAUTHORIZED_MESSAGE","id","getFrameUrl","DEV_FRAME_URL","PROD_FRAME_URL","SANDBOX_FRAME_URL","LEGACY_DEV_FRAME_URL","LEGACY_PROD_FRAME_URL","LEGACY_SANDBOX_FRAME_URL","Version","mode","PROD","generateJavaScriptStartScript","startPayload","jsBeforeLoad","stringify","jsAfterLoad","parseOkHiLocation","_location$geo_point","_location$geo_point2","_location$street_view","_location$street_view2","geo_point","lon","placeId","place_id","plusCode","plus_code","propertyName","property_name","streetName","street_name","title","subtitle","directions","otherInformation","other_information","url","streetViewPanoId","street_view","pano_id","streetViewPanoUrl","userId","user_id","propertyNumber","photo","displayTitle","display_title","country","state","city","countryCode","country_code","usage_types"],"sources":["Util.ts"],"sourcesContent":["import type { OkHiLocationManagerProps } from './types';\nimport {\n canOpenProtectedAppsSettings,\n isBackgroundLocationPermissionGranted,\n isLocationPermissionGranted,\n OkHiException,\n OkHiLocation,\n} from '../OkCore';\nimport { OkHiMode } from '../OkCore';\nimport type {\n OkHiLocationManagerStartDataPayload,\n OkHiLocationManagerStartMessage,\n} from './types';\nimport manifest from './app.json'; //TODO: fix this\nimport type { AuthApplicationConfig } from '../OkCore/_types';\nimport { Platform } from 'react-native';\nimport { OkHiNativeModule } from '../OkHiNativeModule';\n\nexport const fetchCurrentLocation = async (): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n}> => {\n const result = await OkHiNativeModule.fetchCurrentLocation();\n return result;\n};\n\n/**\n * @ignore\n */\nexport const generateStartDataPayload = async (\n props: OkHiLocationManagerProps,\n applicationConfiguration: AuthApplicationConfig\n): Promise<OkHiLocationManagerStartDataPayload> => {\n const payload: any = {};\n const { manufacturer, model, osVersion, platform } =\n await OkHiNativeModule.retrieveDeviceInfo();\n const geofences = await OkHiNativeModule.fetchRegisteredGeofences();\n const locationAccuracyLevel =\n await OkHiNativeModule.getLocationAccuracyLevel();\n\n if (geofences) {\n payload.locations = JSON.parse(geofences);\n }\n payload.style = !props.theme\n ? undefined\n : {\n base: {\n color: props.theme?.colors?.primary,\n logo: props.theme?.appBar?.logo,\n name: applicationConfiguration.app?.name,\n },\n };\n payload.user = {\n phone: props.user.phone,\n firstName: props.user.firstName,\n lastName: props.user.lastName,\n email: props.user.email,\n appUserId: props.user.appUserId,\n };\n payload.auth = {\n branchId: applicationConfiguration.credentials.branchId,\n clientKey: applicationConfiguration.credentials.clientKey,\n };\n payload.context = {\n container: {\n name: applicationConfiguration.app?.name,\n version: applicationConfiguration.app?.version,\n },\n developer: {\n name: applicationConfiguration.context.developer,\n },\n library: {\n name: manifest.name,\n version: manifest.version,\n },\n platform: {\n name: 'react-native',\n },\n device: {\n manufacturer,\n model,\n platform,\n osVersion,\n },\n locationAccuracyLevel,\n };\n payload.config = {\n streetView:\n typeof props.config?.streetView === 'boolean'\n ? props.config.streetView\n : true,\n appBar: {\n color: props.theme?.appBar?.backgroundColor,\n visible: props.config?.appBar?.visible,\n },\n addressTypes: {\n home:\n typeof props.config?.addressTypes?.home === 'boolean'\n ? props.config?.addressTypes?.home\n : true,\n work:\n typeof props.config?.addressTypes?.work === 'boolean'\n ? props.config?.addressTypes?.work\n : true,\n },\n protectedApps:\n Platform.OS === 'android' && (await canOpenProtectedAppsSettings()),\n permissionsOnboarding: true,\n usageTypes: props.config?.usageTypes || ['digital_verification'],\n };\n\n if (Platform.OS === 'ios') {\n const status = await OkHiNativeModule.fetchIOSLocationPermissionStatus();\n const locationPermission =\n status === 'notDetermined'\n ? 'notDetermined'\n : status === 'authorizedWhenInUse'\n ? 'whenInUse'\n : status === 'authorizedAlways'\n ? 'always'\n : 'denied';\n payload.context.permissions = {\n location: locationPermission,\n };\n if (\n status === 'authorized' ||\n status === 'authorizedWhenInUse' ||\n status === 'authorizedAlways'\n ) {\n const location = await fetchCurrentLocation();\n if (location) {\n payload.context.coordinates = {\n currentLocation: {\n lat: location.lat,\n lng: location.lng,\n accuracy: location.accuracy,\n },\n };\n }\n }\n } else if (Platform.OS === 'android') {\n let hasLocationPermission: boolean | undefined;\n try {\n hasLocationPermission = await isLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n let hasBackgroundLocationPermission: boolean | undefined;\n try {\n hasBackgroundLocationPermission =\n await isBackgroundLocationPermissionGranted();\n } catch (error) {\n console.log(error);\n }\n\n if (\n typeof hasLocationPermission === 'boolean' &&\n typeof hasBackgroundLocationPermission === 'boolean'\n ) {\n payload.context.permissions = {\n location: hasBackgroundLocationPermission\n ? 'always'\n : hasLocationPermission\n ? 'whenInUse'\n : 'denied',\n };\n }\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNAUTHORIZED_MESSAGE,\n });\n }\n\n if (props.location?.id) {\n payload.location = {\n id: props.location.id,\n };\n }\n\n return payload;\n};\n\n/**\n * @ignore\n */\nexport const getFrameUrl = (\n applicationConfiguration: AuthApplicationConfig\n): string => {\n const DEV_FRAME_URL = 'https://dev-manager-v5.okhi.io';\n const PROD_FRAME_URL = 'https://manager-v5.okhi.io';\n const SANDBOX_FRAME_URL = 'https://sandbox-manager-v5.okhi.io';\n\n const LEGACY_DEV_FRAME_URL = 'https://dev-legacy-manager-v5.okhi.io';\n const LEGACY_PROD_FRAME_URL = 'https://legacy-manager-v5.okhi.io';\n const LEGACY_SANDBOX_FRAME_URL = 'https://sandbox-legacy-manager-v5.okhi.io';\n\n if (Platform.OS === 'android' && Platform.Version < 24) {\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return LEGACY_PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return LEGACY_DEV_FRAME_URL;\n }\n return LEGACY_SANDBOX_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === OkHiMode.PROD) {\n return PROD_FRAME_URL;\n }\n if (applicationConfiguration.context.mode === ('dev' as any)) {\n return DEV_FRAME_URL;\n }\n return SANDBOX_FRAME_URL;\n};\n\n/**\n * @ignore\n */\nexport const generateJavaScriptStartScript = (startPayload: {\n message: OkHiLocationManagerStartMessage;\n payload: OkHiLocationManagerStartDataPayload;\n}) => {\n const jsBeforeLoad = `\n window.isNativeApp = true;\n window.NativeApp = {\n bridge: {\n receiveMessage: window.ReactNativeWebView.postMessage\n },\n data: ${JSON.stringify(startPayload)}\n }\n true;\n `;\n const jsAfterLoad = `window.startOkHiLocationManager({ receiveMessage: function(data) { window.ReactNativeWebView.postMessage(data) } }, ${JSON.stringify(\n startPayload\n )})`;\n return { jsBeforeLoad, jsAfterLoad };\n};\n\n/**\n * @ignore\n */\nexport const parseOkHiLocation = (location: any): OkHiLocation => {\n return {\n id: location?.id,\n lat: location?.geo_point?.lat,\n lon: location?.geo_point?.lon,\n placeId: location?.place_id,\n plusCode: location?.plus_code,\n propertyName: location?.property_name,\n streetName: location?.street_name,\n title: location?.title,\n subtitle: location?.subtitle,\n directions: location?.directions,\n otherInformation: location?.other_information,\n url: location?.url,\n streetViewPanoId: location?.street_view?.pano_id,\n streetViewPanoUrl: location?.street_view?.url,\n userId: location?.user_id,\n propertyNumber: location?.propertyNumber,\n photo: location?.photo,\n displayTitle: location?.display_title,\n country: location?.country,\n state: location?.state,\n city: location?.city,\n countryCode: location?.country_code,\n usageTypes: location?.usage_types,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "okhiWebReactNative",
3
- "version": "1.2.23"
3
+ "version": "1.2.25"
4
4
  }
@@ -352,4 +352,12 @@ export const requestNotificationPermission = async () => {
352
352
  });
353
353
  }
354
354
  };
355
+
356
+ /**
357
+ * Determines the current location accuracy level of the device
358
+ * @returns "no_permission" | "approximate" | "precise"
359
+ */
360
+ export const getLocationAccuracyLevel = async () => {
361
+ return OkHiNativeModule.getLocationAccuracyLevel();
362
+ };
355
363
  //# sourceMappingURL=Helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OkHiNativeModule","OkHiNativeEvents","Alert","PermissionsAndroid","Platform","errorHandler","isValidPlatform","OkHiException","isLocationServicesEnabled","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","permission","POST_NOTIFICATIONS","POST_NOTIFICATION","Error","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\n) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\n });\n\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const permission =\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ||\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION;\n if (!permission)\n throw new Error('Unable to request notification permission');\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ||\n (PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission)\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS as Permission\n );\n return status === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OkHiNativeModule","OkHiNativeEvents","Alert","PermissionsAndroid","Platform","errorHandler","isValidPlatform","OkHiException","isLocationServicesEnabled","isLocationPermissionGranted","isBackgroundLocationPermissionGrantedAndroid","sdkVersion","getSystemVersion","Number","PERMISSIONS","ACCESS_BACKGROUND_LOCATION","hasPermission","check","console","warn","isBackgroundLocationPermissionGrantedIOS","isBackgroundLocationPermissionGranted","fn","OS","requestLocationPermissionAndroid","status","requestMultiple","ACCESS_FINE_LOCATION","ACCESS_COARSE_LOCATION","requestLocationPermissionIOS","requestLocationPermission","isGranted","requestBackgroundLocationPermissionAndroid","permissions","requestBackgroundLocationPermissionIOS","requestBackgroundLocationPermission","requestEnableLocationServices","isGooglePlayServicesAvailable","requestEnableGooglePlayServices","request","locationPermissionType","rationale","callback","serviceError","code","SERVICE_UNAVAILABLE_CODE","message","googlePlayError","handleError","error","handleGooglePlayServiceRequest","then","googlePlayStatus","handleRationaleRequest","handleRationaleAlert","alertRationale","Promise","resolve","_","alert","title","text","grantButton","label","onPress","denyButton","style","onDismiss","handlePermissionRequest","removeAllListeners","addListener","permissionUpdate","whenInUseResult","initialWhenInUseResult","alwaysResult","currentStatus","retriveLocationPermissionStatus","showRationale","result","serviceStatus","enableResult","catch","openAppSettings","alwaysPerm","whenInUsePerm","requestTrackingAuthorization","canOpenProtectedAppsSettings","openProtectedAppsSettings","isAndroidNotificationGranted","permission","POST_NOTIFICATIONS","POST_NOTIFICATION","Error","requestAndroidNotificationPermission","existingPermissionStatus","isIOSNotificationGranted","isNotificationPermissionGranted","requestIOSNotificationPermission","requestNotificationPermission","UNSUPPORTED_PLATFORM_CODE","UNSUPPORTED_PLATFORM_MESSAGE","getLocationAccuracyLevel"],"sources":["Helpers.ts"],"sourcesContent":["import { OkHiNativeModule, OkHiNativeEvents } from '../OkHiNativeModule';\nimport { Alert, Permission, PermissionsAndroid, Platform } from 'react-native';\nimport { errorHandler, isValidPlatform } from './_helpers';\nimport type {\n LocationPermissionCallback,\n LocationPermissionStatus,\n LocationRequestPermissionType,\n} from './types';\nimport { OkHiException } from './OkHiException';\n\n/**\n * Checks whether location services are enabled\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the service is available\n */\nexport const isLocationServicesEnabled = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationServicesEnabled);\n};\n\n/**\n * Checks whether when in use location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isLocationPermissionGranted = (): Promise<boolean> => {\n return isValidPlatform(OkHiNativeModule.isLocationPermissionGranted);\n};\n\nconst isBackgroundLocationPermissionGrantedAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) {\n return true;\n }\n if (Number(sdkVersion) < 29) {\n return await isLocationPermissionGranted();\n }\n if (\n typeof PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION !==\n 'undefined'\n ) {\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION as Permission\n );\n return hasPermission;\n }\n console.warn(\n `PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION is undefined, this is an issue with the current version of RN you are running. Please consider upgrading`\n );\n return false;\n };\n\nconst isBackgroundLocationPermissionGrantedIOS = (): Promise<boolean> => {\n return OkHiNativeModule.isBackgroundLocationPermissionGranted();\n};\n\n/**\n * Checks whether background location permission is granted\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const isBackgroundLocationPermissionGranted = (): Promise<boolean> => {\n const fn =\n Platform.OS === 'android'\n ? isBackgroundLocationPermissionGrantedAndroid\n : isBackgroundLocationPermissionGrantedIOS;\n return isValidPlatform(fn);\n};\n\nconst requestLocationPermissionAndroid = async (): Promise<boolean> => {\n const status: any = await PermissionsAndroid.requestMultiple([\n PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION as Permission,\n PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION as Permission,\n ]);\n return status['android.permission.ACCESS_FINE_LOCATION'] === 'granted';\n};\n\nconst requestLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestLocationPermission();\n};\n\n/**\n * Requests for when in use location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestLocationPermission = async (): Promise<boolean> => {\n const isGranted = await isLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestLocationPermissionAndroid\n : requestLocationPermissionIOS\n );\n};\n\nconst requestBackgroundLocationPermissionAndroid =\n async (): Promise<boolean> => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 23) return true;\n if (Number(sdkVersion) >= 29) {\n const permissions: any = [\n PermissionsAndroid.PERMISSIONS.ACCESS_BACKGROUND_LOCATION,\n ];\n const status: any = await PermissionsAndroid.requestMultiple(permissions);\n return (\n status['android.permission.ACCESS_BACKGROUND_LOCATION'] === 'granted'\n );\n } else {\n return await requestLocationPermissionAndroid();\n }\n };\n\nconst requestBackgroundLocationPermissionIOS = (): Promise<boolean> => {\n return OkHiNativeModule.requestBackgroundLocationPermission();\n};\n\n/**\n * Requests for background location permission\n * @returns {Promise<boolean>} A promise that resolves to a boolen value indicating whether the permission is granted\n */\nexport const requestBackgroundLocationPermission =\n async (): Promise<boolean> => {\n const isGranted = await isBackgroundLocationPermissionGranted();\n if (isGranted) return isGranted;\n return errorHandler(\n Platform.OS === 'android'\n ? requestBackgroundLocationPermissionAndroid\n : requestBackgroundLocationPermissionIOS\n );\n };\n\n/**\n * Requests the user to enable location services by showing an in app modal on android and opening location settings on iOS\n * @returns {Promise<boolean>} A promise that resolves to either a boolean value on android or null on iOS\n */\nexport const requestEnableLocationServices = (): Promise<boolean | null> => {\n return isValidPlatform(OkHiNativeModule.requestEnableLocationServices);\n};\n\n/**\n * Android Only - Checks if Google Play Services is available\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const isGooglePlayServicesAvailable = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.isGooglePlayServicesAvailable,\n 'android'\n );\n};\n\n/**\n * Android Only - Requests user to enable Google Play Services\n * @returns {Promise<boolean>} A promise that resolves to a boolean value indicating whether the service is avaialbe\n */\nexport const requestEnableGooglePlayServices = (): Promise<boolean> => {\n return isValidPlatform(\n OkHiNativeModule.requestEnableGooglePlayServices,\n 'android'\n );\n};\n\n/**\n * Returns the system version of the current platform\n * @returns {Promise<boolean>} A promise that resolves either a string on iOS or number on Android\n */\nexport const getSystemVersion = (): Promise<string | number> =>\n isValidPlatform(OkHiNativeModule.getSystemVersion);\n\n/**\n * Requests location permission from the user. It'll also attempt to activate any disbaled services (Android Only)\n */\nexport const request = (\n locationPermissionType: LocationRequestPermissionType,\n rationale: {\n title: string;\n text: string;\n successButton?: { label: string };\n denyButton?: { label: string };\n } | null,\n callback: LocationPermissionCallback\n) => {\n const serviceError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Location service is currently not available. Please enable in app settings',\n });\n\n const googlePlayError = new OkHiException({\n code: OkHiException.SERVICE_UNAVAILABLE_CODE,\n message:\n 'Google Play Services is currently unavailable. Please enable in settings',\n });\n\n const handleError = (error: OkHiException) => {\n callback(null, error);\n };\n\n const handleGooglePlayServiceRequest = () => {\n requestEnableGooglePlayServices().then((googlePlayStatus) => {\n if (!googlePlayStatus) {\n handleError(googlePlayError);\n } else {\n handleRationaleRequest();\n }\n });\n };\n\n const handleRationaleAlert = (alertRationale: {\n title: string;\n text: string;\n grantButton?: { label: string };\n denyButton?: { label: string };\n }) => {\n return new Promise((resolve, _) => {\n Alert.alert(\n alertRationale.title,\n alertRationale.text,\n [\n {\n text: alertRationale.grantButton\n ? alertRationale.grantButton.label\n : 'Grant',\n onPress: () => {\n resolve(true);\n },\n },\n {\n text: alertRationale.denyButton\n ? alertRationale.denyButton.label\n : 'Deny',\n onPress: () => {\n resolve(false);\n },\n style: 'cancel',\n },\n ],\n {\n onDismiss: () => {\n resolve(false);\n },\n }\n );\n });\n };\n\n const handlePermissionRequest = () => {\n if (Platform.OS === 'ios') {\n OkHiNativeEvents.removeAllListeners('onLocationPermissionStatusUpdate');\n OkHiNativeEvents.addListener(\n 'onLocationPermissionStatusUpdate',\n (permissionUpdate) => {\n callback(permissionUpdate, null);\n }\n );\n if (locationPermissionType === 'whenInUse') {\n OkHiNativeModule.requestLocationPermission();\n } else {\n OkHiNativeModule.requestBackgroundLocationPermission();\n }\n } else {\n if (locationPermissionType === 'whenInUse') {\n requestLocationPermissionAndroid().then((whenInUseResult) =>\n callback(whenInUseResult ? 'authorizedWhenInUse' : 'denied', null)\n );\n } else {\n requestLocationPermissionAndroid().then((initialWhenInUseResult) => {\n if (!initialWhenInUseResult) {\n callback('denied', null);\n } else {\n callback('authorizedWhenInUse', null);\n requestBackgroundLocationPermission().then((alwaysResult) => {\n callback(\n alwaysResult ? 'authorizedAlways' : 'authorizedWhenInUse',\n null\n );\n });\n }\n });\n }\n }\n };\n\n const handleRationaleRequest = async () => {\n const currentStatus = await retriveLocationPermissionStatus();\n let showRationale = true;\n if (\n locationPermissionType === 'whenInUse' &&\n (currentStatus === 'authorizedWhenInUse' ||\n currentStatus === 'authorizedAlways')\n ) {\n showRationale = false;\n }\n if (\n locationPermissionType === 'always' &&\n currentStatus === 'authorizedAlways'\n ) {\n showRationale = false;\n }\n if (rationale && showRationale) {\n const result = await handleRationaleAlert(rationale);\n if (!result) {\n callback('rationaleDissmissed', null);\n } else {\n handlePermissionRequest();\n }\n } else {\n handlePermissionRequest();\n }\n };\n\n isLocationServicesEnabled()\n .then((serviceStatus) => {\n if (!serviceStatus && Platform.OS === 'ios') {\n handleError(serviceError);\n } else if (!serviceStatus && Platform.OS === 'android') {\n requestEnableLocationServices()\n .then((enableResult) => {\n if (!enableResult) {\n handleError(serviceError);\n } else {\n handleGooglePlayServiceRequest();\n }\n })\n .catch(handleError);\n } else {\n if (Platform.OS === 'ios') {\n handleRationaleRequest();\n } else {\n handleGooglePlayServiceRequest();\n }\n }\n })\n .catch(handleError);\n};\n\n/**\n * Open the device's app settings.\n */\nexport const openAppSettings = () => {\n OkHiNativeModule.openAppSettings();\n};\n\n/**\n * Retrives the location permission status from the device\n */\nexport const retriveLocationPermissionStatus =\n async (): Promise<LocationPermissionStatus> => {\n if (Platform.OS === 'ios') {\n return OkHiNativeModule.retriveLocationPermissionStatus() as Promise<LocationPermissionStatus>;\n }\n const alwaysPerm = await isBackgroundLocationPermissionGranted();\n if (alwaysPerm) {\n return 'authorizedAlways';\n }\n const whenInUsePerm = await isLocationPermissionGranted();\n return whenInUsePerm ? 'authorizedWhenInUse' : 'denied';\n };\n\n/**\n * Requests tracking authorization from the user. iOS only, iOS version >= 14\n * Read more: https://developer.apple.com/app-store/user-privacy-and-data-use/\n */\nexport const requestTrackingAuthorization = async (): Promise<\n string | null\n> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.requestTrackingAuthorization();\n return result;\n }, 'ios');\n};\n\n/**\n * Checks whether current device can open \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const canOpenProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.canOpenProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\n/**\n * Opens \"Protected Apps Settings\" available in Transsion Group android devices such as Infinix and Tecno\n * When your application is included in protected apps, verification processes are less likely to be terminated by the OS. Increasing rate of users being verified.\n */\nexport const openProtectedAppsSettings = (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const result = await OkHiNativeModule.openProtectedAppsSettings();\n return result;\n }, 'android');\n};\n\nconst isAndroidNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const sdkVersion = await OkHiNativeModule.getSystemVersion();\n if (Number(sdkVersion) < 33) {\n return true;\n }\n const permission =\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ||\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION;\n if (!permission)\n throw new Error('Unable to request notification permission');\n const hasPermission = await PermissionsAndroid.check(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS ||\n (PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION as Permission)\n );\n return hasPermission;\n }, 'android');\n};\n\nconst requestAndroidNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isAndroidNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n const status: any = await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS as Permission\n );\n return status === 'granted';\n }, 'android');\n};\n\nconst isIOSNotificationGranted = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n return OkHiNativeModule.isNotificationPermissionGranted();\n }, 'ios');\n};\n\nconst requestIOSNotificationPermission = async (): Promise<boolean> => {\n return isValidPlatform(async () => {\n const existingPermissionStatus = await isIOSNotificationGranted();\n if (existingPermissionStatus) {\n return true;\n }\n return OkHiNativeModule.requestNotificationPermission();\n }, 'ios');\n};\n\n/**\n * Checks whether notification permission is granted on both android and ios devices\n */\nexport const isNotificationPermissionGranted = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return isAndroidNotificationGranted();\n } else if (Platform.OS === 'ios') {\n return isIOSNotificationGranted();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Requests notification permission from both android and ios devices\n */\nexport const requestNotificationPermission = async (): Promise<boolean> => {\n if (Platform.OS === 'android') {\n return requestAndroidNotificationPermission();\n } else if (Platform.OS === 'ios') {\n return requestIOSNotificationPermission();\n } else {\n throw new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: OkHiException.UNSUPPORTED_PLATFORM_MESSAGE,\n });\n }\n};\n\n/**\n * Determines the current location accuracy level of the device\n * @returns \"no_permission\" | \"approximate\" | \"precise\"\n */\nexport const getLocationAccuracyLevel = async () => {\n return OkHiNativeModule.getLocationAccuracyLevel();\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","LINKING_ERROR","select","ios","default","OkHiNativeModule","Okhi","Proxy","get","Error","OkHiNativeEvents","addListener"],"sources":["index.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\n\nconst LINKING_ERROR =\n `The package 'react-native-okhi' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\ntype OkHiNativeModuleType = {\n isLocationServicesEnabled(): Promise<boolean>;\n isLocationPermissionGranted(): Promise<boolean>;\n isBackgroundLocationPermissionGranted(): Promise<boolean>;\n requestLocationPermission(): Promise<boolean>;\n requestBackgroundLocationPermission(): Promise<boolean>;\n requestEnableLocationServices(): Promise<boolean>;\n isGooglePlayServicesAvailable(): Promise<boolean>;\n requestEnableGooglePlayServices(): Promise<boolean>;\n getSystemVersion(): Promise<number | string>;\n getAuthToken(branchId: string, clientKey: string): Promise<string>;\n initialize(configuration: string): Promise<void>;\n startAddressVerification(\n token: string,\n phoneNumber: string,\n userId: string,\n locationId: string,\n lat: Number,\n lon: Number,\n usageTypes: string[]\n ): Promise<string>;\n stopAddressVerification(\n phoneNumber: string,\n locationId: string\n ): Promise<string>;\n startForegroundService(): Promise<boolean>;\n stopForegroundService(): Promise<boolean>;\n isForegroundServiceRunning(): Promise<boolean>;\n initializeIOS(\n branchId: string,\n clientKey: string,\n environment: string\n ): Promise<boolean>;\n openAppSettings(): Promise<void>;\n retriveLocationPermissionStatus(): Promise<string>;\n requestTrackingAuthorization(): Promise<string | null>;\n canOpenProtectedAppsSettings(): Promise<boolean>;\n openProtectedAppsSettings(): Promise<boolean>;\n retrieveDeviceInfo(): Promise<{\n manufacturer: string;\n model: string;\n osVersion: string;\n platform: 'android' | 'ios';\n }>;\n setItem(key: string, value: string): Promise<boolean>;\n onNewToken(fcmPushNotificationToken: string): Promise<boolean>;\n onMessageReceived(): Promise<boolean>;\n isNotificationPermissionGranted(): Promise<boolean>;\n requestNotificationPermission(): Promise<boolean>;\n fetchCurrentLocation(): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n }>;\n fetchIOSLocationPermissionStatus(): Promise<\n | 'notDetermined'\n | 'restricted'\n | 'denied'\n | 'authorizedAlways'\n | 'authorizedWhenInUse'\n | 'authorized'\n | 'unknown'\n >;\n onStart(): Promise<boolean>;\n fetchRegisteredGeofences(): Promise<string | null>;\n};\n\nexport const OkHiNativeModule: OkHiNativeModuleType = NativeModules.Okhi\n ? NativeModules.Okhi\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nexport const OkHiNativeEvents = new NativeEventEmitter(NativeModules.Okhi);\n\nOkHiNativeEvents.addListener('onLocationPermissionStatusUpdate', () => null);\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,MAAMC,aAAa,GACjB,4EAA4E,GAC5ED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAqE/C,OAAO,MAAMC,gBAAsC,GAAGP,aAAa,CAACQ,IAAI,GACpER,aAAa,CAACQ,IAAI,GAClB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMS,gBAAgB,GAAG,IAAIX,kBAAkB,CAACD,aAAa,CAACQ,IAAI,CAAC;AAE1EI,gBAAgB,CAACC,WAAW,CAAC,kCAAkC,EAAE,MAAM,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","LINKING_ERROR","select","ios","default","OkHiNativeModule","Okhi","Proxy","get","Error","OkHiNativeEvents","addListener"],"sources":["index.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, Platform } from 'react-native';\n\nconst LINKING_ERROR =\n `The package 'react-native-okhi' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\ntype OkHiNativeModuleType = {\n isLocationServicesEnabled(): Promise<boolean>;\n isLocationPermissionGranted(): Promise<boolean>;\n isBackgroundLocationPermissionGranted(): Promise<boolean>;\n requestLocationPermission(): Promise<boolean>;\n requestBackgroundLocationPermission(): Promise<boolean>;\n requestEnableLocationServices(): Promise<boolean>;\n isGooglePlayServicesAvailable(): Promise<boolean>;\n requestEnableGooglePlayServices(): Promise<boolean>;\n getSystemVersion(): Promise<number | string>;\n getAuthToken(branchId: string, clientKey: string): Promise<string>;\n initialize(configuration: string): Promise<void>;\n startAddressVerification(\n token: string,\n phoneNumber: string,\n userId: string,\n locationId: string,\n lat: Number,\n lon: Number,\n usageTypes: string[]\n ): Promise<string>;\n stopAddressVerification(\n phoneNumber: string,\n locationId: string\n ): Promise<string>;\n startForegroundService(): Promise<boolean>;\n stopForegroundService(): Promise<boolean>;\n isForegroundServiceRunning(): Promise<boolean>;\n initializeIOS(\n branchId: string,\n clientKey: string,\n environment: string\n ): Promise<boolean>;\n openAppSettings(): Promise<void>;\n retriveLocationPermissionStatus(): Promise<string>;\n requestTrackingAuthorization(): Promise<string | null>;\n canOpenProtectedAppsSettings(): Promise<boolean>;\n openProtectedAppsSettings(): Promise<boolean>;\n retrieveDeviceInfo(): Promise<{\n manufacturer: string;\n model: string;\n osVersion: string;\n platform: 'android' | 'ios';\n }>;\n setItem(key: string, value: string): Promise<boolean>;\n onNewToken(fcmPushNotificationToken: string): Promise<boolean>;\n onMessageReceived(): Promise<boolean>;\n isNotificationPermissionGranted(): Promise<boolean>;\n requestNotificationPermission(): Promise<boolean>;\n fetchCurrentLocation(): Promise<null | {\n lat: number;\n lng: number;\n accuracy: number;\n }>;\n fetchIOSLocationPermissionStatus(): Promise<\n | 'notDetermined'\n | 'restricted'\n | 'denied'\n | 'authorizedAlways'\n | 'authorizedWhenInUse'\n | 'authorized'\n | 'unknown'\n >;\n onStart(): Promise<boolean>;\n fetchRegisteredGeofences(): Promise<string | null>;\n getLocationAccuracyLevel(): Promise<\n 'no_permission' | 'approximate' | 'precise'\n >;\n};\n\nexport const OkHiNativeModule: OkHiNativeModuleType = NativeModules.Okhi\n ? NativeModules.Okhi\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nexport const OkHiNativeEvents = new NativeEventEmitter(NativeModules.Okhi);\n\nOkHiNativeEvents.addListener('onLocationPermissionStatusUpdate', () => null);\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAE1E,MAAMC,aAAa,GACjB,4EAA4E,GAC5ED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAwE/C,OAAO,MAAMC,gBAAsC,GAAGP,aAAa,CAACQ,IAAI,GACpER,aAAa,CAACQ,IAAI,GAClB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMS,gBAAgB,GAAG,IAAIX,kBAAkB,CAACD,aAAa,CAACQ,IAAI,CAAC;AAE1EI,gBAAgB,CAACC,WAAW,CAAC,kCAAkC,EAAE,MAAM,IAAI,CAAC","ignoreList":[]}
@@ -88,3 +88,8 @@ export declare const isNotificationPermissionGranted: () => Promise<boolean>;
88
88
  * Requests notification permission from both android and ios devices
89
89
  */
90
90
  export declare const requestNotificationPermission: () => Promise<boolean>;
91
+ /**
92
+ * Determines the current location accuracy level of the device
93
+ * @returns "no_permission" | "approximate" | "precise"
94
+ */
95
+ export declare const getLocationAccuracyLevel: () => Promise<"no_permission" | "approximate" | "precise">;
@@ -41,6 +41,7 @@ type OkHiNativeModuleType = {
41
41
  fetchIOSLocationPermissionStatus(): Promise<'notDetermined' | 'restricted' | 'denied' | 'authorizedAlways' | 'authorizedWhenInUse' | 'authorized' | 'unknown'>;
42
42
  onStart(): Promise<boolean>;
43
43
  fetchRegisteredGeofences(): Promise<string | null>;
44
+ getLocationAccuracyLevel(): Promise<'no_permission' | 'approximate' | 'precise'>;
44
45
  };
45
46
  export declare const OkHiNativeModule: OkHiNativeModuleType;
46
47
  export declare const OkHiNativeEvents: NativeEventEmitter;