react-native-okhi 1.2.29 → 1.2.31
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.
- package/lib/commonjs/OkCollect/OkHiLocationManager.js +1 -2
- package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +1 -1
- package/lib/commonjs/OkCollect/app.json +1 -1
- package/lib/commonjs/OkCollect/types.js.map +1 -1
- package/lib/commonjs/OkCore/_helpers.js +1 -3
- package/lib/commonjs/OkCore/_helpers.js.map +1 -1
- package/lib/module/OkCollect/app.json +1 -1
- package/lib/module/OkCollect/types.js.map +1 -1
- package/lib/module/OkCore/_helpers.js +1 -3
- package/lib/module/OkCore/_helpers.js.map +1 -1
- package/lib/typescript/OkCollect/types.d.ts +1 -0
- package/package.json +5 -3
- package/src/OkCollect/app.json +1 -1
- package/src/OkCollect/types.ts +1 -0
- package/src/OkCore/_helpers.ts +1 -2
|
@@ -13,8 +13,7 @@ var _OkHiException = require("../OkCore/OkHiException");
|
|
|
13
13
|
var _OkVerify = require("../OkVerify");
|
|
14
14
|
var _OkCore = require("../OkCore");
|
|
15
15
|
var _OkHiNativeModule = require("../OkHiNativeModule");
|
|
16
|
-
function
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
17
|
/**
|
|
19
18
|
* The OkHiLocationManager React Component is used to display an in app modal, enabling the user to quickly create an accurate OkHi address.
|
|
20
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkVerify","_OkCore","_OkHiNativeModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","useState","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","startMessage","mode","ready","setReady","androidAlwaysRequested","useEffect","startOkHiLocationManager","appConfiguration","getApplicationConfiguration","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","isBackgroundLocationPermissionGranted","_locationAccuracyLevel","requestLocationPermission","requestBackgroundLocationPermission","openAppSettings","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","fetchCurrentLocation","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","openProtectedAppsSettings","fcmPushNotificationToken","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","sv","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","Spinner","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","SafeAreaView","WebView","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","Modal","animationType","transparent","visible","onRequestClose","exports","_default"],"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 (typeof launch === 'boolean') {\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 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","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_Spinner","_Util","_OkHiException","_OkVerify","_OkCore","_OkHiNativeModule","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OkHiLocationManager","props","applicationConfiguration","setApplicationConfiguration","useState","startPayload","setStartPaylaod","defaultStyle","flex","style","user","onSuccess","onCloseRequest","onError","loader","launch","webViewRef","useRef","startMessage","mode","ready","setReady","androidAlwaysRequested","useEffect","startOkHiLocationManager","appConfiguration","getApplicationConfiguration","OkHiException","code","UNAUTHORIZED_CODE","message","UNAUTHORIZED_MESSAGE","generateStartDataPayload","Platform","OS","Version","OkHiNativeModule","setItem","JSON","stringify","payload","url","getFrameUrl","catch","console","error","runWebViewCallback","result","_webViewRef$current","level","getLocationAccuracyLevel","callbackResult","update","locationAccuracyLevel","jsonUpdate","replace","jsString","current","injectJavaScript","handleAndroidRequestLocationPermission","_isLocationPermissionGranted","isLocationPermissionGranted","_isBackgroundLocationPermissionGranted","isBackgroundLocationPermissionGranted","_locationAccuracyLevel","requestLocationPermission","requestBackgroundLocationPermission","openAppSettings","handleIOSRequestLocationPermission","handleRequestLocationPermission","handleOpenAppSettings","granted","err","handleFetchCurrentLocation","location","fetchCurrentLocation","_webViewRef$current2","lat","lng","accuracy","handleWebViewOnLoad","_webViewRef$current3","handleOnMessage","nativeEvent","data","response","parse","UNKNOWN_ERROR_CODE","openProtectedAppsSettings","fcmPushNotificationToken","parseOkHiLocation","startVerification","createdUser","Promise","resolve","reject","id","BAD_REQUEST_CODE","token","usageTypes","Array","isArray","sv","phone","lon","then","errorMessage","Error","handleOnError","NETWORK_ERROR_CODE","NETWORK_ERROR_MESSAGE","handleModalRequestClose","_webViewRef$current4","goBack","renderContent","createElement","Spinner","jsAfterLoad","jsBeforeLoad","generateJavaScriptStartScript","SafeAreaView","WebView","source","uri","injectedJavaScriptBeforeContentLoaded","undefined","injectedJavaScript","onMessage","onHttpError","geolocationEnabled","allowsBackForwardNavigationGestures","onLoad","ref","Modal","animationType","transparent","visible","onRequestClose","exports","_default"],"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 (typeof launch === 'boolean') {\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 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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAMA,IAAAI,KAAA,GAAAJ,OAAA;AAOA,IAAAK,cAAA,GAAAL,OAAA;AAEA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAUA,IAAAQ,iBAAA,GAAAR,OAAA;AAAuD,SAAAD,wBAAAU,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAZ,uBAAA,YAAAA,CAAAU,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAEvD;AACA;AACA;AACO,MAAMkB,mBAAmB,GAAIC,KAA+B,IAAK;EACtE,MAAM,CAACC,wBAAwB,EAAEC,2BAA2B,CAAC,GAC3D,IAAAC,eAAQ,EAA+B,IAAI,CAAC;EAC9C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GACnC,IAAAF,eAAQ,EAA6C,IAAI,CAAC;EAC5D,MAAMG,YAAY,GAAG;IAAEC,IAAI,EAAE;EAAE,CAAC;EAChC,MAAMC,KAAK,GAAGR,KAAK,CAACQ,KAAK,GACrB;IAAE,GAAGR,KAAK,CAACQ,KAAK;IAAE,GAAGF;EAAa,CAAC,GACnCA,YAAY;EAEhB,MAAM;IAAEG,IAAI;IAAEC,SAAS;IAAEC,cAAc;IAAEC,OAAO;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGd,KAAK;EAC1E,MAAMe,UAAU,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAC/C,MAAMC,YAAY,GAChBjB,KAAK,CAACkB,IAAI,KAAK,QAAQ,GAAG,WAAW,GAAG,iBAAiB;EAC3D,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAjB,eAAQ,EAAC,KAAK,CAAC;EACzC,MAAMkB,sBAAsB,GAAG,IAAAL,aAAM,EAAC,KAAK,CAAC;EAE5C,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAI,OAAOR,MAAM,KAAK,SAAS,EAAE;MAC/BM,QAAQ,CAACN,MAAM,CAAC;IAClB;EACF,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,IAAAQ,gBAAS,EAAC,MAAM;IACd,eAAeC,wBAAwBA,CAAA,EAAG;MACxC,MAAMC,gBAAgB,GAAG,MAAM,IAAAC,mCAA2B,EAAC,CAAC;MAC5D,IAAI,CAACD,gBAAgB,EAAE;QACrB,MAAM,IAAIE,4BAAa,CAAC;UACtBC,IAAI,EAAED,4BAAa,CAACE,iBAAiB;UACrCC,OAAO,EAAEH,4BAAa,CAACI;QACzB,CAAC,CAAC;MACJ;MACA,MAAM1B,YAAY,GAAG,MAAM,IAAA2B,8BAAwB,EACjD/B,KAAK,EACLwB,gBACF,CAAC;MACDtB,2BAA2B,CAACsB,gBAAgB,CAAC;MAC7CnB,eAAe,CAACD,YAAY,CAAC;MAC7B,IAAI4B,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACE,OAAO,GAAG,EAAE,EAAE;QACtDC,kCAAgB,CAACC,OAAO,CACtB,0BAA0B,EAC1BC,IAAI,CAACC,SAAS,CAAC;UACbT,OAAO,EAAEZ,YAAY;UACrBsB,OAAO,EAAEnC,YAAY;UACrBoC,GAAG,EAAE,IAAAC,iBAAW,EAACjB,gBAAgB;QACnC,CAAC,CACH,CAAC,CAACkB,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC;MACxB;IACF;IAEA,IAAI9B,MAAM,EAAE;MACVS,wBAAwB,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACT,MAAM,EAAEd,KAAK,EAAEY,OAAO,CAAC,CAAC;EAE5B,MAAMiC,kBAAkB,GAAG,MAAOC,MAAc,IAAK;IAAA,IAAAC,mBAAA;IACnD,MAAMC,KAAK,GAAG,MAAMb,kCAAgB,CAACc,wBAAwB,CAAC,CAAC;IAC/D,IAAIC,cAAc,GAAGJ,MAAM;IAC3B,IACE,CAACA,MAAM,KAAK,SAAS,IAAIA,MAAM,KAAK,QAAQ,KAC5CE,KAAK,KAAK,aAAa,EACvB;MACAE,cAAc,GAAG,WAAW;IAC9B;IACA,MAAMC,MAAM,GAAG;MAAEC,qBAAqB,EAAEJ;IAAM,CAAC;IAC/C,MAAMK,UAAU,GAAGhB,IAAI,CAACC,SAAS,CAACa,MAAM,CAAC,CACtCG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CACtBA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IACvB,MAAMC,QAAQ,GAAG;AACrB;AACA;AACA,4CAA4CL,cAAc,OAAOG,UAAU;AAC3E;AACA;AACA,KAAK;IACD,CAAAN,mBAAA,GAAAhC,UAAU,CAACyC,OAAO,cAAAT,mBAAA,eAAlBA,mBAAA,CAAoBU,gBAAgB,CAACF,QAAQ,CAAC;EAChD,CAAC;EAED,MAAMG,sCAAsC,GAAG,MAC7CV,KAA6B,IAC1B;IACH,IAAI;MACF,MAAMW,4BAA4B,GAAG,MAAM,IAAAC,mCAA2B,EAAC,CAAC;MACxE,MAAMC,sCAAsC,GAC1C,MAAM,IAAAC,6CAAqC,EAAC,CAAC;MAC/C,MAAMC,sBAAsB,GAC1B,MAAM5B,kCAAgB,CAACc,wBAAwB,CAAC,CAAC;MACnD,IACEY,sCAAsC,IACtCE,sBAAsB,KAAK,SAAS,EACpC;QACAlB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBW,4BAA4B,IAC5BI,sBAAsB,KAAK,SAAS,EACpC;QACAlB,kBAAkB,CAAC,WAAW,CAAC;MACjC,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBe,sBAAsB,KAAK,eAAe,EAC1C;QACA,MAAMjB,MAAM,GAAG,MAAM,IAAAkB,iCAAyB,EAAC,CAAC;QAChDnB,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM,IAAIE,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAMF,MAAM,GAAG,MAAM,IAAAmB,2CAAmC,EAAC,CAAC;QAC1DpB,kBAAkB,CAACC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAChDzB,sBAAsB,CAACmC,OAAO,GAAG,IAAI;MACvC,CAAC,MAAM,IACLR,KAAK,KAAK,WAAW,IACrBe,sBAAsB,KAAK,aAAa,EACxC;QACA,MAAMjB,MAAM,GAAG,MAAM,IAAAkB,iCAAyB,EAAC,CAAC;QAChDnB,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM;QACL,IAAAoB,uBAAe,EAAC,CAAC;MACnB;IACF,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACdhC,OAAO,CACL,IAAIc,4BAAa,CAAC;QAChBC,IAAI,EAAE,SAAS;QACfE,OAAO,EAAE;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAMsC,kCAAkC,GAAG,MAAOnB,KAAa,IAAK;IAClE,IAAI;MACF,MAAMW,4BAA4B,GAAG,MAAM,IAAAC,mCAA2B,EAAC,CAAC;MACxE,MAAMC,sCAAsC,GAC1C,MAAM,IAAAC,6CAAqC,EAAC,CAAC;MAC/C,MAAMC,sBAAsB,GAC1B,MAAM5B,kCAAgB,CAACc,wBAAwB,CAAC,CAAC;MAEnD,IACEY,sCAAsC,IACtCE,sBAAsB,KAAK,SAAS,EACpC;QACAlB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM,IACLG,KAAK,KAAK,WAAW,IACrBW,4BAA4B,IAC5BI,sBAAsB,KAAK,SAAS,EACpC;QACAlB,kBAAkB,CAAC,WAAW,CAAC;MACjC,CAAC,MAAM,IAAIG,KAAK,KAAK,WAAW,IAAI,CAACW,4BAA4B,EAAE;QACjE,MAAMb,MAAM,GAAG,MAAM,IAAAkB,iCAAyB,EAAC,CAAC;QAChDnB,kBAAkB,CAACC,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;MACrD,CAAC,MAAM;QACL,IAAAoB,uBAAe,EAAC,CAAC;MACnB;IACF,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACdhC,OAAO,CACL,IAAIc,4BAAa,CAAC;QAChBC,IAAI,EAAE,SAAS;QACfE,OAAO,EAAE;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAMuC,+BAA+B,GAAG,MAAAA,CAAO;IAC7CpB;EAGF,CAAC,KAAK;IACJ,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7ByB,sCAAsC,CAACV,KAAK,CAAC;IAC/C,CAAC,MAAM,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAChCkC,kCAAkC,CAACnB,KAAK,CAAC;IAC3C;EACF,CAAC;EAED,MAAMqB,qBAAqB,GAAG,MAAAA,CAAA,KAAY;IACxC,IAAI;MACF,MAAMC,OAAO,GAAG,MAAM,IAAAR,6CAAqC,EAAC,CAAC;MAC7D,IAAIQ,OAAO,EAAE;QACXzB,kBAAkB,CAAC,QAAQ,CAAC;MAC9B,CAAC,MAAM;QACL,MAAM,IAAAqB,uBAAe,EAAC,CAAC;MACzB;IACF,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACd,MAAM2B,GAAG,GAAG3B,KAAsB;MAClChC,OAAO,CAAC2D,GAAG,CAAC;IACd;EACF,CAAC;EAED,MAAMC,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7C,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAM,IAAAC,0BAAoB,EAAC,CAAC;MAC7C,IAAID,QAAQ,EAAE;QAAA,IAAAE,oBAAA;QACZ,MAAMpB,QAAQ,GAAG,uCAAuCkB,QAAQ,CAACG,GAAG,SAASH,QAAQ,CAACI,GAAG,cAAcJ,QAAQ,CAACK,QAAQ,IAAI;QAC5H,CAAAH,oBAAA,GAAA5D,UAAU,CAACyC,OAAO,cAAAmB,oBAAA,eAAlBA,oBAAA,CAAoBlB,gBAAgB,CAACF,QAAQ,CAAC;MAChD;IACF,CAAC,CAAC,OAAOX,KAAK,EAAE;MACdD,OAAO,CAACC,KAAK,CAACA,KAAK,CAAC;IACtB;EACF,CAAC;;EAED;EACA,MAAMmC,mBAAmB,GAAGA,CAAA,KAAM;IAChC,IAAI/C,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MAAA,IAAA+C,oBAAA;MACzB,MAAMzB,QAAQ,GACZ,+eAA+e;MACjf,CAAAyB,oBAAA,GAAAjE,UAAU,CAACyC,OAAO,cAAAwB,oBAAA,eAAlBA,oBAAA,CAAoBvB,gBAAgB,CAACF,QAAQ,CAAC;IAChD;EACF,CAAC;EAED,MAAM0B,eAAe,GAAGA,CAAC;IAAEC,WAAW,EAAE;MAAEC;IAAK;EAAuB,CAAC,KAAK;IAC1E,IAAI;MACF,MAAMC,QAAqC,GAAG/C,IAAI,CAACgD,KAAK,CAACF,IAAI,CAAC;MAC9D,IAAIC,QAAQ,CAACvD,OAAO,KAAK,YAAY,EAAE;QACrC;QACAjB,OAAO,CACL,IAAIc,4BAAa,CAAC;UAChBC,IAAI,EAAED,4BAAa,CAAC4D,kBAAkB;UACtCzD,OAAO,EAAEuD,QAAQ,CAAC7C;QACpB,CAAC,CACH,CAAC;MACH,CAAC,MAAM,IAAI6C,QAAQ,CAACvD,OAAO,KAAK,UAAU,EAAE;QAC1ClB,cAAc,CAAC,CAAC;MAClB,CAAC,MAAM,IAAIyE,QAAQ,CAACvD,OAAO,KAAK,+BAA+B,EAAE;QAC/D,IAAA0D,iCAAyB,EAAC,CAAC;MAC7B,CAAC,MAAM,IACLH,QAAQ,CAACvD,OAAO,KAAK,kBAAkB,IACvCuD,QAAQ,CAACvD,OAAO,KAAK,mBAAmB,IACxCuD,QAAQ,CAACvD,OAAO,KAAK,kBAAkB,EACvC;QACAT,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjBV,SAAS,CAAC;UACRD,IAAI,EAAE;YACJ,GAAG2E,QAAQ,CAAC7C,OAAO,CAAC9B,IAAI;YACxB+E,wBAAwB,EAAE/E,IAAI,CAAC+E;UACjC,CAAC;UACDf,QAAQ,EAAE,IAAAgB,uBAAiB,EAACL,QAAQ,CAAC7C,OAAO,CAACkC,QAAQ,CAAC;UACtDiB,iBAAiB,EAAE,SAAAA,CAAA,EAAY;YAC7B,MAAMC,WAAW,GAAG;cAAE,GAAG,IAAI,CAAClF;YAAK,CAAC;YACpC,MAAMgE,QAAQ,GAAG;cAAE,GAAG,IAAI,CAACA;YAAS,CAAC;YACrC,OAAO,IAAImB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;cACtC,IAAI,CAACrB,QAAQ,CAACsB,EAAE,EAAE;gBAChBD,MAAM,CACJ,IAAIpE,4BAAa,CAAC;kBAChBC,IAAI,EAAED,4BAAa,CAACsE,gBAAgB;kBACpCnE,OAAO,EAAE;gBACX,CAAC,CACH,CAAC;cACH,CAAC,MAAM,IAAI,CAAC8D,WAAW,CAACI,EAAE,EAAE;gBAC1BD,MAAM,CACJ,IAAIpE,4BAAa,CAAC;kBAChBC,IAAI,EAAED,4BAAa,CAACsE,gBAAgB;kBACpCnE,OAAO,EAAE;gBACX,CAAC,CACH,CAAC;cACH,CAAC,MAAM,IAAI,CAAC8D,WAAW,CAACM,KAAK,EAAE;gBAC7BH,MAAM,CACJ,IAAIpE,4BAAa,CAAC;kBAChBC,IAAI,EAAED,4BAAa,CAACE,iBAAiB;kBACrCC,OAAO,EAAEH,4BAAa,CAACI;gBACzB,CAAC,CACH,CAAC;cACH,CAAC,MAAM;gBACL,MAAMoE,UAAqB,GAAGC,KAAK,CAACC,OAAO,CAAC3B,QAAQ,CAACyB,UAAU,CAAC,GAC5DzB,QAAQ,CAACyB,UAAU,GACnB,CAAC,sBAAsB,CAAC;gBAC5B,IAAAG,eAAE,EACAV,WAAW,CAACM,KAAK,EACjBN,WAAW,CAACW,KAAK,EACjBX,WAAW,CAACI,EAAE,EACdtB,QAAQ,CAACsB,EAAE,EACXtB,QAAQ,CAACG,GAAG,EACZH,QAAQ,CAAC8B,GAAG,EACZL,UACF,CAAC,CACEM,IAAI,CAACX,OAAO,CAAC,CACbnD,KAAK,CAACoD,MAAM,CAAC;cAClB;YACF,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIV,QAAQ,CAACvD,OAAO,KAAK,6BAA6B,EAAE;QAC7DuC,+BAA+B,CAACgB,QAAQ,CAAC7C,OAAO,CAAC;MACnD,CAAC,MAAM,IAAI6C,QAAQ,CAACvD,OAAO,KAAK,mBAAmB,EAAE;QACnDwC,qBAAqB,CAAC,CAAC;MACzB,CAAC,MAAM,IAAIe,QAAQ,CAACvD,OAAO,KAAK,wBAAwB,EAAE;QACxD2C,0BAA0B,CAAC,CAAC;MAC9B;IACF,CAAC,CAAC,OAAO5B,KAAK,EAAE;MACd,IAAI6D,YAAY,GAAG,sBAAsB;MACzC,IAAI7D,KAAK,YAAY8D,KAAK,EAAE;QAC1BD,YAAY,GAAG7D,KAAK,CAACf,OAAO;MAC9B;MACAjB,OAAO,CACL,IAAIc,4BAAa,CAAC;QAChBC,IAAI,EAAED,4BAAa,CAAC4D,kBAAkB;QACtCzD,OAAO,EAAE4E;MACX,CAAC,CACH,CAAC;IACH;EACF,CAAC;EAED,MAAME,aAAa,GAAGA,CAAA,KAAM;IAC1B/F,OAAO,CACL,IAAIc,4BAAa,CAAC;MAChBC,IAAI,EAAED,4BAAa,CAACkF,kBAAkB;MACtC/E,OAAO,EAAEH,4BAAa,CAACmF;IACzB,CAAC,CACH,CAAC;EACH,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAM;IAAA,IAAAC,oBAAA;IACpC,CAAAA,oBAAA,GAAAhG,UAAU,CAACyC,OAAO,cAAAuD,oBAAA,eAAlBA,oBAAA,CAAoBC,MAAM,CAAC,CAAC;EAC9B,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAI7G,YAAY,KAAK,IAAI,IAAIH,wBAAwB,IAAI,IAAI,EAAE;MAC7D,OAAOY,MAAM,iBAAI5C,MAAA,CAAAqB,OAAA,CAAA4H,aAAA,CAAC5I,QAAA,CAAA6I,OAAO,MAAE,CAAC;IAC9B;IAEA,MAAM;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAAG,IAAAC,mCAA6B,EAAC;MAClEzF,OAAO,EAAEZ,YAAY;MACrBsB,OAAO,EAAEnC;IACX,CAAC,CAAC;IAEF,oBACEnC,MAAA,CAAAqB,OAAA,CAAA4H,aAAA,CAAC9I,YAAA,CAAAmJ,YAAY;MAAC/G,KAAK,EAAEA;IAAM,gBACzBvC,MAAA,CAAAqB,OAAA,CAAA4H,aAAA,CAAC7I,mBAAA,CAAAmJ,OAAO;MACNC,MAAM,EAAE;QAAEC,GAAG,EAAE,IAAAjF,iBAAW,EAACxC,wBAAwB;MAAE,CAAE;MACvD0H,qCAAqC,EACnC3F,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAGoF,YAAY,GAAGO,SACxC;MACDC,kBAAkB,EAAE7F,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG2F,SAAS,GAAGR,WAAY;MACpEU,SAAS,EAAE7C,eAAgB;MAC3BrE,OAAO,EAAE+F,aAAc;MACvBoB,WAAW,EAAEpB,aAAc;MAC3BqB,kBAAkB,EAAE,IAAK;MACzBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEnD,mBAAoB;MAC5BoD,GAAG,EAAEpH;IAAW,CACjB,CACW,CAAC;EAEnB,CAAC;EAED,oBACE9C,MAAA,CAAAqB,OAAA,CAAA4H,aAAA,CAAC9I,YAAA,CAAAgK,KAAK;IACJC,aAAa,EAAC,OAAO;IACrBC,WAAW,EAAE,KAAM;IACnBC,OAAO,EAAEpH,KAAM;IACfqH,cAAc,EAAE1B;EAAwB,GAEvC3F,KAAK,GAAG8F,aAAa,CAAC,CAAC,GAAG,IACtB,CAAC;AAEZ,CAAC;AAACwB,OAAA,CAAA1I,mBAAA,GAAAA,mBAAA;AAAA,IAAA2I,QAAA,GAAAD,OAAA,CAAAnJ,OAAA,GAEaS,mBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation, UsageType } from '../OkCore/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: () => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n usageTypes?: UsageType;\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n\n location?: {\n id?: string;\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n usageTypes: UsageType;\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit'\n | 'request_location_permission';\n payload: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { JSX } from 'react';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation, UsageType } from '../OkCore/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: () => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n usageTypes?: UsageType;\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n\n location?: {\n id?: string;\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n usageTypes: UsageType;\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit'\n | 'request_location_permission';\n payload: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -9,12 +9,10 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _OkHiException = require("./OkHiException");
|
|
10
10
|
const SUPPORTED_PLATFORMS = ['ios', 'android'];
|
|
11
11
|
function isValidPlatform(fn, platform) {
|
|
12
|
-
var _arguments$callee;
|
|
13
|
-
const callingFunc = (arguments === null || arguments === void 0 || (_arguments$callee = arguments.callee) === null || _arguments$callee === void 0 || (_arguments$callee = _arguments$callee.caller) === null || _arguments$callee === void 0 ? void 0 : _arguments$callee.name) || 'function';
|
|
14
12
|
return new Promise((resolve, reject) => {
|
|
15
13
|
const error = new _OkHiException.OkHiException({
|
|
16
14
|
code: _OkHiException.OkHiException.UNSUPPORTED_PLATFORM_CODE,
|
|
17
|
-
message:
|
|
15
|
+
message: 'function is not supported in ' + _reactNative.Platform.OS
|
|
18
16
|
});
|
|
19
17
|
if (platform && _reactNative.Platform.OS !== platform) {
|
|
20
18
|
reject(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_OkHiException","SUPPORTED_PLATFORMS","isValidPlatform","fn","platform","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_OkHiException","SUPPORTED_PLATFORMS","isValidPlatform","fn","platform","Promise","resolve","reject","error","OkHiException","code","UNSUPPORTED_PLATFORM_CODE","message","Platform","OS","includes","then","catch","UNKNOWN_ERROR_CODE","UNKNOWN_ERROR_MESSAGE","errorHandler"],"sources":["_helpers.ts"],"sourcesContent":["import { Platform, PlatformOSType } from 'react-native';\nimport { OkHiException } from './OkHiException';\n\nconst SUPPORTED_PLATFORMS = ['ios', 'android'];\n\nexport function isValidPlatform<T>(\n fn: () => Promise<T>,\n platform?: PlatformOSType\n) {\n return new Promise<T>((resolve, reject) => {\n const error = new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: 'function is not supported in ' + Platform.OS,\n });\n if (platform && Platform.OS !== platform) {\n reject(error);\n } else if (!SUPPORTED_PLATFORMS.includes(Platform.OS)) {\n reject(error);\n } else {\n fn()\n .then(resolve)\n .catch((error) => {\n reject(\n new OkHiException({\n code: error.code || OkHiException.UNKNOWN_ERROR_CODE,\n message: error.message || OkHiException.UNKNOWN_ERROR_MESSAGE,\n })\n );\n });\n }\n });\n}\n\nexport function errorHandler<T>(fn: () => Promise<T>) {\n return new Promise<T>((resolve, reject) => {\n fn()\n .then(resolve)\n .catch((error) => {\n reject(\n new OkHiException({\n code: error.code || OkHiException.UNKNOWN_ERROR_CODE,\n message: error.message || OkHiException.UNKNOWN_ERROR_MESSAGE,\n })\n );\n });\n });\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,MAAME,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AAEvC,SAASC,eAAeA,CAC7BC,EAAoB,EACpBC,QAAyB,EACzB;EACA,OAAO,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzC,MAAMC,KAAK,GAAG,IAAIC,4BAAa,CAAC;MAC9BC,IAAI,EAAED,4BAAa,CAACE,yBAAyB;MAC7CC,OAAO,EAAE,+BAA+B,GAAGC,qBAAQ,CAACC;IACtD,CAAC,CAAC;IACF,IAAIV,QAAQ,IAAIS,qBAAQ,CAACC,EAAE,KAAKV,QAAQ,EAAE;MACxCG,MAAM,CAACC,KAAK,CAAC;IACf,CAAC,MAAM,IAAI,CAACP,mBAAmB,CAACc,QAAQ,CAACF,qBAAQ,CAACC,EAAE,CAAC,EAAE;MACrDP,MAAM,CAACC,KAAK,CAAC;IACf,CAAC,MAAM;MACLL,EAAE,CAAC,CAAC,CACDa,IAAI,CAACV,OAAO,CAAC,CACbW,KAAK,CAAET,KAAK,IAAK;QAChBD,MAAM,CACJ,IAAIE,4BAAa,CAAC;UAChBC,IAAI,EAAEF,KAAK,CAACE,IAAI,IAAID,4BAAa,CAACS,kBAAkB;UACpDN,OAAO,EAAEJ,KAAK,CAACI,OAAO,IAAIH,4BAAa,CAACU;QAC1C,CAAC,CACH,CAAC;MACH,CAAC,CAAC;IACN;EACF,CAAC,CAAC;AACJ;AAEO,SAASC,YAAYA,CAAIjB,EAAoB,EAAE;EACpD,OAAO,IAAIE,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzCJ,EAAE,CAAC,CAAC,CACDa,IAAI,CAACV,OAAO,CAAC,CACbW,KAAK,CAAET,KAAK,IAAK;MAChBD,MAAM,CACJ,IAAIE,4BAAa,CAAC;QAChBC,IAAI,EAAEF,KAAK,CAACE,IAAI,IAAID,4BAAa,CAACS,kBAAkB;QACpDN,OAAO,EAAEJ,KAAK,CAACI,OAAO,IAAIH,4BAAa,CAACU;MAC1C,CAAC,CACH,CAAC;IACH,CAAC,CAAC;EACN,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation, UsageType } from '../OkCore/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: () => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n usageTypes?: UsageType;\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n\n location?: {\n id?: string;\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n usageTypes: UsageType;\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit'\n | 'request_location_permission';\n payload: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { JSX } from 'react';\nimport type { OkHiException } from '../OkCore/OkHiException';\nimport type { OkHiUser, OkHiLocation, UsageType } from '../OkCore/types';\n\n/**\n * The OkCollect Success Response object contains information about the newly created user and location once an address has been successfully created.\n * It can be used to extract information about the address and/or start address verification process.\n */\nexport interface OkCollectSuccessResponse {\n /**\n * The [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object containing information about the newly created user.\n */\n user: OkHiUser;\n /**\n * The [OkHiLocation](https://okhi.github.io/react-native-core/interfaces/okhilocation.html) object containing information about the newly created user.\n */\n location: OkHiLocation;\n\n /**\n * Starts address verification\n */\n startVerification: () => Promise<string>;\n}\n\n/**\n * The OkHiLocationManager exposes props that you can use to customise it's functionality and appearance.\n */\nexport interface OkHiLocationManagerProps {\n /**\n * **Required:** A boolean flag that determines whether or not to show the Location Manager.\n */\n launch: boolean;\n /**\n * **Required:** A defined [OkHiUser](https://okhi.github.io/react-native-core/interfaces/okhiuser.html) object, with a mandatory \"phone\" key property.\n */\n user: OkHiUser;\n /**\n * **Optional:** A custom JSX.Element that'll be used as a loading indicator.\n */\n loader?: JSX.Element;\n /**\n * **Optional:** Used to customise the appearance of the Container that wraps the location manager.\n */\n style?: ViewStyle;\n /**\n * **Required:** A callback that'll be invoked with an {@link OkCollectSuccessResponse} once an accurate OkHi address has been successfully created.\n */\n onSuccess: (response: OkCollectSuccessResponse) => any;\n /**\n * **Required:** A callback that'll be invoked whenever an error occurs during the address creation process.\n */\n onError: (error: OkHiException) => any;\n /**\n * **Required:** A callback that'll be invoked whenever a user taps on the close button.\n */\n onCloseRequest: () => any;\n /**\n * **Optional:** An object that'll be used to customise the appearance of the Location Manager to better match your branding requirements.\n */\n theme?: {\n appBar?: {\n backgroundColor?: string;\n logo?: string;\n };\n colors?: {\n primary?: string;\n };\n };\n /**\n * **Optional:** An object that'll be used to customise the functionality of the Location Manager. This object dictates whether you want some features on or off.\n */\n config?: {\n streetView?: boolean;\n appBar?: {\n visible?: boolean;\n };\n addressTypes?: {\n home?: boolean;\n work?: boolean;\n };\n usageTypes?: UsageType;\n };\n\n /**\n * **Optional:** Enable a user to either select an existing address, or force to create a new one\n */\n mode?: 'create' | 'select';\n\n location?: {\n id?: string;\n };\n}\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerStartDataPayload {\n style?: {\n base?: {\n color?: string;\n logo?: string;\n name?: string;\n };\n };\n auth: {\n authToken: string;\n };\n context: {\n container?: {\n name?: string;\n version?: string;\n };\n developer: {\n name: string;\n };\n library: {\n name: string;\n version: string;\n };\n platform: {\n name: 'react-native';\n };\n };\n config?: {\n streetView?: boolean;\n appBar?: {\n color?: string;\n visible?: boolean;\n };\n usageTypes: UsageType;\n };\n user: OkHiUser;\n}\n\n/**\n * @ignore\n */\nexport type OkHiLocationManagerStartMessage = 'select_location' | 'start_app';\n\n/**\n * @ignore\n */\nexport interface OkHiLocationManagerResponse {\n message:\n | 'location_selected'\n | 'location_created'\n | 'location_updated'\n | 'exit_app'\n | 'request_enable_protected_apps'\n | 'fatal_exit'\n | 'request_location_permission';\n payload: any;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -2,12 +2,10 @@ import { Platform } from 'react-native';
|
|
|
2
2
|
import { OkHiException } from './OkHiException';
|
|
3
3
|
const SUPPORTED_PLATFORMS = ['ios', 'android'];
|
|
4
4
|
export function isValidPlatform(fn, platform) {
|
|
5
|
-
var _arguments$callee;
|
|
6
|
-
const callingFunc = (arguments === null || arguments === void 0 || (_arguments$callee = arguments.callee) === null || _arguments$callee === void 0 || (_arguments$callee = _arguments$callee.caller) === null || _arguments$callee === void 0 ? void 0 : _arguments$callee.name) || 'function';
|
|
7
5
|
return new Promise((resolve, reject) => {
|
|
8
6
|
const error = new OkHiException({
|
|
9
7
|
code: OkHiException.UNSUPPORTED_PLATFORM_CODE,
|
|
10
|
-
message:
|
|
8
|
+
message: 'function is not supported in ' + Platform.OS
|
|
11
9
|
});
|
|
12
10
|
if (platform && Platform.OS !== platform) {
|
|
13
11
|
reject(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","OkHiException","SUPPORTED_PLATFORMS","isValidPlatform","fn","platform","
|
|
1
|
+
{"version":3,"names":["Platform","OkHiException","SUPPORTED_PLATFORMS","isValidPlatform","fn","platform","Promise","resolve","reject","error","code","UNSUPPORTED_PLATFORM_CODE","message","OS","includes","then","catch","UNKNOWN_ERROR_CODE","UNKNOWN_ERROR_MESSAGE","errorHandler"],"sources":["_helpers.ts"],"sourcesContent":["import { Platform, PlatformOSType } from 'react-native';\nimport { OkHiException } from './OkHiException';\n\nconst SUPPORTED_PLATFORMS = ['ios', 'android'];\n\nexport function isValidPlatform<T>(\n fn: () => Promise<T>,\n platform?: PlatformOSType\n) {\n return new Promise<T>((resolve, reject) => {\n const error = new OkHiException({\n code: OkHiException.UNSUPPORTED_PLATFORM_CODE,\n message: 'function is not supported in ' + Platform.OS,\n });\n if (platform && Platform.OS !== platform) {\n reject(error);\n } else if (!SUPPORTED_PLATFORMS.includes(Platform.OS)) {\n reject(error);\n } else {\n fn()\n .then(resolve)\n .catch((error) => {\n reject(\n new OkHiException({\n code: error.code || OkHiException.UNKNOWN_ERROR_CODE,\n message: error.message || OkHiException.UNKNOWN_ERROR_MESSAGE,\n })\n );\n });\n }\n });\n}\n\nexport function errorHandler<T>(fn: () => Promise<T>) {\n return new Promise<T>((resolve, reject) => {\n fn()\n .then(resolve)\n .catch((error) => {\n reject(\n new OkHiException({\n code: error.code || OkHiException.UNKNOWN_ERROR_CODE,\n message: error.message || OkHiException.UNKNOWN_ERROR_MESSAGE,\n })\n );\n });\n });\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAwB,cAAc;AACvD,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,mBAAmB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AAE9C,OAAO,SAASC,eAAeA,CAC7BC,EAAoB,EACpBC,QAAyB,EACzB;EACA,OAAO,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzC,MAAMC,KAAK,GAAG,IAAIR,aAAa,CAAC;MAC9BS,IAAI,EAAET,aAAa,CAACU,yBAAyB;MAC7CC,OAAO,EAAE,+BAA+B,GAAGZ,QAAQ,CAACa;IACtD,CAAC,CAAC;IACF,IAAIR,QAAQ,IAAIL,QAAQ,CAACa,EAAE,KAAKR,QAAQ,EAAE;MACxCG,MAAM,CAACC,KAAK,CAAC;IACf,CAAC,MAAM,IAAI,CAACP,mBAAmB,CAACY,QAAQ,CAACd,QAAQ,CAACa,EAAE,CAAC,EAAE;MACrDL,MAAM,CAACC,KAAK,CAAC;IACf,CAAC,MAAM;MACLL,EAAE,CAAC,CAAC,CACDW,IAAI,CAACR,OAAO,CAAC,CACbS,KAAK,CAAEP,KAAK,IAAK;QAChBD,MAAM,CACJ,IAAIP,aAAa,CAAC;UAChBS,IAAI,EAAED,KAAK,CAACC,IAAI,IAAIT,aAAa,CAACgB,kBAAkB;UACpDL,OAAO,EAAEH,KAAK,CAACG,OAAO,IAAIX,aAAa,CAACiB;QAC1C,CAAC,CACH,CAAC;MACH,CAAC,CAAC;IACN;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,YAAYA,CAAIf,EAAoB,EAAE;EACpD,OAAO,IAAIE,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;IACzCJ,EAAE,CAAC,CAAC,CACDW,IAAI,CAACR,OAAO,CAAC,CACbS,KAAK,CAAEP,KAAK,IAAK;MAChBD,MAAM,CACJ,IAAIP,aAAa,CAAC;QAChBS,IAAI,EAAED,KAAK,CAACC,IAAI,IAAIT,aAAa,CAACgB,kBAAkB;QACpDL,OAAO,EAAEH,KAAK,CAACG,OAAO,IAAIX,aAAa,CAACiB;MAC1C,CAAC,CACH,CAAC;IACH,CAAC,CAAC;EACN,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-okhi",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.31",
|
|
4
4
|
"description": "The OkHi React Native library enables you to collect and verify addresses from your users",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
"release": "release-it",
|
|
30
30
|
"example": "yarn --cwd example",
|
|
31
31
|
"bootstrap": "yarn example && yarn && yarn example pods",
|
|
32
|
-
"docs": "typedoc --out ./docs ./src --tsconfig tsconfig.json --excludePrivate --excludeProtected"
|
|
32
|
+
"docs": "typedoc --out ./docs ./src --tsconfig tsconfig.json --excludePrivate --excludeProtected",
|
|
33
|
+
"beta": "npm publish --tag beta"
|
|
33
34
|
},
|
|
34
35
|
"keywords": [
|
|
35
36
|
"react-native",
|
|
@@ -72,7 +73,8 @@
|
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"react": "*",
|
|
75
|
-
"react-native": "*"
|
|
76
|
+
"react-native": "*",
|
|
77
|
+
"react-native-webview": "*"
|
|
76
78
|
},
|
|
77
79
|
"jest": {
|
|
78
80
|
"preset": "react-native",
|
package/src/OkCollect/app.json
CHANGED
package/src/OkCollect/types.ts
CHANGED
package/src/OkCore/_helpers.ts
CHANGED
|
@@ -7,11 +7,10 @@ export function isValidPlatform<T>(
|
|
|
7
7
|
fn: () => Promise<T>,
|
|
8
8
|
platform?: PlatformOSType
|
|
9
9
|
) {
|
|
10
|
-
const callingFunc = arguments?.callee?.caller?.name || 'function';
|
|
11
10
|
return new Promise<T>((resolve, reject) => {
|
|
12
11
|
const error = new OkHiException({
|
|
13
12
|
code: OkHiException.UNSUPPORTED_PLATFORM_CODE,
|
|
14
|
-
message:
|
|
13
|
+
message: 'function is not supported in ' + Platform.OS,
|
|
15
14
|
});
|
|
16
15
|
if (platform && Platform.OS !== platform) {
|
|
17
16
|
reject(error);
|