react-native-okhi 1.2.31 → 1.2.32-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -4
  3. package/ReactNativeOkhi.podspec +21 -0
  4. package/android/build.gradle +38 -99
  5. package/android/gradle.properties +3 -3
  6. package/android/src/main/AndroidManifest.xml +1 -3
  7. package/android/src/main/java/com/okhi/OkhiModule.kt +336 -0
  8. package/android/src/main/java/com/okhi/OkhiPackage.kt +33 -0
  9. package/ios/OkHiWrapper.swift +348 -0
  10. package/ios/Okhi.h +5 -0
  11. package/ios/Okhi.mm +170 -0
  12. package/lib/commonjs/NativeOkhi.js +9 -0
  13. package/lib/commonjs/NativeOkhi.js.map +1 -0
  14. package/lib/commonjs/index.js +234 -28
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/package.json +1 -0
  17. package/lib/commonjs/types.js.map +1 -0
  18. package/lib/module/NativeOkhi.js +5 -0
  19. package/lib/module/NativeOkhi.js.map +1 -0
  20. package/lib/module/index.js +221 -3
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/package.json +1 -0
  23. package/lib/module/types.js +2 -0
  24. package/lib/module/types.js.map +1 -0
  25. package/lib/typescript/commonjs/package.json +1 -0
  26. package/lib/typescript/commonjs/src/NativeOkhi.d.ts +25 -0
  27. package/lib/typescript/commonjs/src/NativeOkhi.d.ts.map +1 -0
  28. package/lib/typescript/commonjs/src/index.d.ts +22 -0
  29. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  30. package/lib/typescript/commonjs/src/types.d.ts +81 -0
  31. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  32. package/lib/typescript/module/package.json +1 -0
  33. package/lib/typescript/module/src/NativeOkhi.d.ts +25 -0
  34. package/lib/typescript/module/src/NativeOkhi.d.ts.map +1 -0
  35. package/lib/typescript/module/src/index.d.ts +22 -0
  36. package/lib/typescript/module/src/index.d.ts.map +1 -0
  37. package/lib/typescript/module/src/types.d.ts +81 -0
  38. package/lib/typescript/module/src/types.d.ts.map +1 -0
  39. package/package.json +91 -112
  40. package/src/NativeOkhi.ts +68 -0
  41. package/src/index.tsx +271 -3
  42. package/src/types.ts +90 -0
  43. package/android/src/main/java/com/reactnativeokhi/OkhiModule.java +0 -389
  44. package/android/src/main/java/com/reactnativeokhi/OkhiPackage.java +0 -28
  45. package/ios/OkHiExtension.swift +0 -27
  46. package/ios/OkHiStruct.swift +0 -29
  47. package/ios/Okhi-Bridging-Header.h +0 -3
  48. package/ios/Okhi.m +0 -62
  49. package/ios/Okhi.swift +0 -325
  50. package/ios/Okhi.xcodeproj/project.pbxproj +0 -283
  51. package/lib/commonjs/OkCollect/Helpers.js +0 -40
  52. package/lib/commonjs/OkCollect/Helpers.js.map +0 -1
  53. package/lib/commonjs/OkCollect/OkHiLocationManager.js +0 -305
  54. package/lib/commonjs/OkCollect/OkHiLocationManager.js.map +0 -1
  55. package/lib/commonjs/OkCollect/Spinner.js +0 -27
  56. package/lib/commonjs/OkCollect/Spinner.js.map +0 -1
  57. package/lib/commonjs/OkCollect/Util.js +0 -226
  58. package/lib/commonjs/OkCollect/Util.js.map +0 -1
  59. package/lib/commonjs/OkCollect/app.json +0 -4
  60. package/lib/commonjs/OkCollect/index.js +0 -47
  61. package/lib/commonjs/OkCollect/index.js.map +0 -1
  62. package/lib/commonjs/OkCollect/types.js +0 -6
  63. package/lib/commonjs/OkCollect/types.js.map +0 -1
  64. package/lib/commonjs/OkCore/Helpers.js +0 -386
  65. package/lib/commonjs/OkCore/Helpers.js.map +0 -1
  66. package/lib/commonjs/OkCore/OkHiException.js +0 -96
  67. package/lib/commonjs/OkCore/OkHiException.js.map +0 -1
  68. package/lib/commonjs/OkCore/OkHiMode.js +0 -14
  69. package/lib/commonjs/OkCore/OkHiMode.js.map +0 -1
  70. package/lib/commonjs/OkCore/_helpers.js +0 -41
  71. package/lib/commonjs/OkCore/_helpers.js.map +0 -1
  72. package/lib/commonjs/OkCore/_types.js +0 -2
  73. package/lib/commonjs/OkCore/_types.js.map +0 -1
  74. package/lib/commonjs/OkCore/index.js +0 -119
  75. package/lib/commonjs/OkCore/index.js.map +0 -1
  76. package/lib/commonjs/OkCore/types.js +0 -6
  77. package/lib/commonjs/OkCore/types.js.map +0 -1
  78. package/lib/commonjs/OkHiNativeModule/index.js +0 -19
  79. package/lib/commonjs/OkHiNativeModule/index.js.map +0 -1
  80. package/lib/commonjs/OkVerify/index.js +0 -211
  81. package/lib/commonjs/OkVerify/index.js.map +0 -1
  82. package/lib/commonjs/OkVerify/types.js.map +0 -1
  83. package/lib/module/OkCollect/Helpers.js +0 -34
  84. package/lib/module/OkCollect/Helpers.js.map +0 -1
  85. package/lib/module/OkCollect/OkHiLocationManager.js +0 -298
  86. package/lib/module/OkCollect/OkHiLocationManager.js.map +0 -1
  87. package/lib/module/OkCollect/Spinner.js +0 -20
  88. package/lib/module/OkCollect/Spinner.js.map +0 -1
  89. package/lib/module/OkCollect/Util.js +0 -214
  90. package/lib/module/OkCollect/Util.js.map +0 -1
  91. package/lib/module/OkCollect/app.json +0 -4
  92. package/lib/module/OkCollect/index.js +0 -4
  93. package/lib/module/OkCollect/index.js.map +0 -1
  94. package/lib/module/OkCollect/types.js +0 -2
  95. package/lib/module/OkCollect/types.js.map +0 -1
  96. package/lib/module/OkCore/Helpers.js +0 -363
  97. package/lib/module/OkCore/Helpers.js.map +0 -1
  98. package/lib/module/OkCore/OkHiException.js +0 -89
  99. package/lib/module/OkCore/OkHiException.js.map +0 -1
  100. package/lib/module/OkCore/OkHiMode.js +0 -8
  101. package/lib/module/OkCore/OkHiMode.js.map +0 -1
  102. package/lib/module/OkCore/_helpers.js +0 -34
  103. package/lib/module/OkCore/_helpers.js.map +0 -1
  104. package/lib/module/OkCore/_types.js +0 -2
  105. package/lib/module/OkCore/_types.js.map +0 -1
  106. package/lib/module/OkCore/index.js +0 -65
  107. package/lib/module/OkCore/index.js.map +0 -1
  108. package/lib/module/OkCore/types.js +0 -2
  109. package/lib/module/OkCore/types.js.map +0 -1
  110. package/lib/module/OkHiNativeModule/index.js +0 -13
  111. package/lib/module/OkHiNativeModule/index.js.map +0 -1
  112. package/lib/module/OkVerify/index.js +0 -195
  113. package/lib/module/OkVerify/index.js.map +0 -1
  114. package/lib/module/OkVerify/types.js +0 -2
  115. package/lib/module/OkVerify/types.js.map +0 -1
  116. package/lib/typescript/OkCollect/Helpers.d.ts +0 -9
  117. package/lib/typescript/OkCollect/OkHiLocationManager.d.ts +0 -7
  118. package/lib/typescript/OkCollect/Spinner.d.ts +0 -5
  119. package/lib/typescript/OkCollect/Util.d.ts +0 -31
  120. package/lib/typescript/OkCollect/index.d.ts +0 -3
  121. package/lib/typescript/OkCollect/types.d.ts +0 -139
  122. package/lib/typescript/OkCore/Helpers.d.ts +0 -95
  123. package/lib/typescript/OkCore/OkHiException.d.ts +0 -81
  124. package/lib/typescript/OkCore/OkHiMode.d.ts +0 -7
  125. package/lib/typescript/OkCore/_helpers.d.ts +0 -3
  126. package/lib/typescript/OkCore/_types.d.ts +0 -38
  127. package/lib/typescript/OkCore/index.d.ts +0 -17
  128. package/lib/typescript/OkCore/types.d.ts +0 -203
  129. package/lib/typescript/OkHiNativeModule/index.d.ts +0 -48
  130. package/lib/typescript/OkVerify/index.d.ts +0 -65
  131. package/lib/typescript/OkVerify/types.d.ts +0 -0
  132. package/lib/typescript/index.d.ts +0 -3
  133. package/react-native-okhi.podspec +0 -35
  134. package/src/OkCollect/Helpers.ts +0 -53
  135. package/src/OkCollect/OkHiLocationManager.tsx +0 -391
  136. package/src/OkCollect/Spinner.tsx +0 -18
  137. package/src/OkCollect/Util.ts +0 -270
  138. package/src/OkCollect/app.json +0 -4
  139. package/src/OkCollect/index.ts +0 -3
  140. package/src/OkCollect/types.ts +0 -154
  141. package/src/OkCore/Helpers.ts +0 -477
  142. package/src/OkCore/OkHiException.ts +0 -93
  143. package/src/OkCore/OkHiMode.ts +0 -7
  144. package/src/OkCore/_helpers.ts +0 -47
  145. package/src/OkCore/_types.ts +0 -37
  146. package/src/OkCore/index.ts +0 -87
  147. package/src/OkCore/types.ts +0 -235
  148. package/src/OkHiNativeModule/index.ts +0 -92
  149. package/src/OkVerify/index.ts +0 -259
  150. package/src/OkVerify/types.ts +0 -0
  151. /package/lib/commonjs/{OkVerify/types.js → types.js} +0 -0
package/src/index.tsx CHANGED
@@ -1,3 +1,271 @@
1
- export * from './OkCollect';
2
- export * from './OkCore';
3
- export * from './OkVerify';
1
+ import { Platform } from 'react-native';
2
+ import Okhi from './NativeOkhi';
3
+ import type { OkCollect, OkHiLogin, OkHiSuccessResponse } from './types';
4
+
5
+ export type {
6
+ OkHiAuth,
7
+ OkHiUser,
8
+ OkHiAppContext,
9
+ OkHiLogin,
10
+ OkCollect,
11
+ OkCollectStyle,
12
+ OkCollectConfig,
13
+ OkHiLocation,
14
+ OkHiException,
15
+ } from './types';
16
+
17
+ export function multiply(a: number, b: number): number {
18
+ return Okhi.multiply(a, b);
19
+ }
20
+
21
+ export function login(credentials: OkHiLogin): Promise<string[] | null> {
22
+ return new Promise((resolve) => {
23
+ Okhi.login(credentials, (results) => {
24
+ resolve(results);
25
+ });
26
+ });
27
+ }
28
+
29
+ // Helper to build config with defaults
30
+ function buildConfig(okcollect?: OkCollect) {
31
+ return {
32
+ style: {
33
+ color: okcollect?.style?.color ?? '#005D67',
34
+ logo: okcollect?.style?.logo ?? 'https://cdn.okhi.co/icon.png',
35
+ },
36
+ configuration: {
37
+ withAppBar: true,
38
+ streetView: okcollect?.configuration?.streetView ?? true,
39
+ withHomeAddressType:
40
+ okcollect?.configuration?.withHomeAddressType ?? true,
41
+ withWorkAddressType:
42
+ okcollect?.configuration?.withWorkAddressType ?? false,
43
+ },
44
+ locationId: okcollect?.locationId,
45
+ };
46
+ }
47
+
48
+ // Helper to process response
49
+ function processVerificationResponse(
50
+ response: unknown,
51
+ error: unknown,
52
+ resolve: (value: OkHiSuccessResponse) => void,
53
+ reject: (reason: { code: string; message: string }) => void
54
+ ) {
55
+ try {
56
+ const res = response as { user: string; location: string };
57
+ if (response != null) {
58
+ resolve({
59
+ user: JSON.parse(res.user),
60
+ location: JSON.parse(res.location),
61
+ });
62
+ } else if (error != null) {
63
+ const err = error as { code: string; message: string };
64
+ reject({
65
+ code: err.code,
66
+ message: err.message,
67
+ });
68
+ } else {
69
+ reject({
70
+ code: 'unknown',
71
+ message: 'unable to complete operation - unknown response',
72
+ });
73
+ }
74
+ } catch {
75
+ reject({
76
+ code: 'unknown',
77
+ message: 'unable to complete operation - unknown error',
78
+ });
79
+ }
80
+ }
81
+
82
+ export function startDigitalAddressVerification(
83
+ okcollect?: OkCollect
84
+ ): Promise<OkHiSuccessResponse> {
85
+ const config = buildConfig(okcollect);
86
+ return new Promise((resolve, reject) => {
87
+ Okhi.startDigitalAddressVerification(config, (response, error) => {
88
+ processVerificationResponse(response, error, resolve, reject);
89
+ });
90
+ });
91
+ }
92
+
93
+ export function startPhysicalAddressVerification(
94
+ okcollect?: OkCollect
95
+ ): Promise<OkHiSuccessResponse> {
96
+ const config = buildConfig(okcollect);
97
+ return new Promise((resolve, reject) => {
98
+ Okhi.startPhysicalAddressVerification(config, (response, error) => {
99
+ processVerificationResponse(response, error, resolve, reject);
100
+ });
101
+ });
102
+ }
103
+
104
+ export function startDigitalAndPhysicalAddressVerification(
105
+ okcollect?: OkCollect
106
+ ): Promise<OkHiSuccessResponse> {
107
+ const config = buildConfig(okcollect);
108
+ return new Promise((resolve, reject) => {
109
+ Okhi.startDigitalAndPhysicalAddressVerification(
110
+ config,
111
+ (response, error) => {
112
+ processVerificationResponse(response, error, resolve, reject);
113
+ }
114
+ );
115
+ });
116
+ }
117
+
118
+ export function createAddress(
119
+ okcollect?: OkCollect
120
+ ): Promise<OkHiSuccessResponse> {
121
+ const config = buildConfig(okcollect);
122
+ return new Promise((resolve, reject) => {
123
+ Okhi.createAddress(config, (response, error) => {
124
+ processVerificationResponse(response, error, resolve, reject);
125
+ });
126
+ });
127
+ }
128
+
129
+ // Helper to process boolean response
130
+ function processBooleanResponse(
131
+ result: unknown,
132
+ error: unknown,
133
+ resolve: (value: boolean) => void,
134
+ reject: (reason: { code: string; message: string }) => void
135
+ ) {
136
+ if (error != null) {
137
+ const err = error as { code: string; message: string };
138
+ reject({ code: err.code, message: err.message });
139
+ } else {
140
+ resolve(result as boolean);
141
+ }
142
+ }
143
+
144
+ // Helper to process string response
145
+ function processStringResponse(
146
+ result: unknown,
147
+ error: unknown,
148
+ resolve: (value: string) => void,
149
+ reject: (reason: { code: string; message: string }) => void
150
+ ) {
151
+ if (error != null) {
152
+ const err = error as { code: string; message: string };
153
+ reject({ code: err.code, message: err.message });
154
+ } else {
155
+ resolve(result as string);
156
+ }
157
+ }
158
+
159
+ // MARK: - Check Helpers
160
+
161
+ export function isLocationServicesEnabled(): Promise<boolean> {
162
+ return new Promise((resolve, reject) => {
163
+ Okhi.isLocationServicesEnabled((result, error) => {
164
+ processBooleanResponse(result, error, resolve, reject);
165
+ });
166
+ });
167
+ }
168
+
169
+ export function canOpenProtectedApps(): Promise<boolean> {
170
+ return new Promise((resolve, reject) => {
171
+ Okhi.canOpenProtectedApps((result, error) => {
172
+ processBooleanResponse(result, error, resolve, reject);
173
+ });
174
+ });
175
+ }
176
+
177
+ export function getLocationAccuracyLevel(): Promise<string> {
178
+ return new Promise((resolve, reject) => {
179
+ Okhi.getLocationAccuracyLevel((result, error) => {
180
+ processStringResponse(result?.toLowerCase(), error, resolve, reject);
181
+ });
182
+ });
183
+ }
184
+
185
+ export function isBackgroundLocationPermissionGranted(): Promise<boolean> {
186
+ return new Promise((resolve, reject) => {
187
+ Okhi.isBackgroundLocationPermissionGranted((result, error) => {
188
+ processBooleanResponse(result, error, resolve, reject);
189
+ });
190
+ });
191
+ }
192
+
193
+ export function isCoarseLocationPermissionGranted(): Promise<boolean> {
194
+ return new Promise((resolve, reject) => {
195
+ Okhi.isCoarseLocationPermissionGranted((result, error) => {
196
+ processBooleanResponse(result, error, resolve, reject);
197
+ });
198
+ });
199
+ }
200
+
201
+ export function isFineLocationPermissionGranted(): Promise<boolean> {
202
+ return new Promise((resolve, reject) => {
203
+ Okhi.isFineLocationPermissionGranted((result, error) => {
204
+ processBooleanResponse(result, error, resolve, reject);
205
+ });
206
+ });
207
+ }
208
+
209
+ export function isPlayServicesAvailable(): Promise<boolean> {
210
+ return new Promise((resolve, reject) => {
211
+ Okhi.isPlayServicesAvailable((result, error) => {
212
+ processBooleanResponse(result, error, resolve, reject);
213
+ });
214
+ });
215
+ }
216
+
217
+ export function isPostNotificationPermissionGranted(): Promise<boolean> {
218
+ return new Promise((resolve, reject) => {
219
+ Okhi.isPostNotificationPermissionGranted((result, error) => {
220
+ processBooleanResponse(result, error, resolve, reject);
221
+ });
222
+ });
223
+ }
224
+
225
+ export function openProtectedApps(): Promise<void> {
226
+ return new Promise((resolve) => {
227
+ Okhi.openProtectedApps();
228
+ resolve();
229
+ });
230
+ }
231
+
232
+ // MARK: - Request Helpers
233
+
234
+ export function requestLocationPermission(): Promise<boolean> {
235
+ return new Promise((resolve, reject) => {
236
+ Okhi.requestLocationPermission((result, error) => {
237
+ processBooleanResponse(result, error, resolve, reject);
238
+ });
239
+ });
240
+ }
241
+
242
+ export function requestBackgroundLocationPermission(): Promise<boolean> {
243
+ return new Promise((resolve, reject) => {
244
+ Okhi.requestBackgroundLocationPermission((result, error) => {
245
+ processBooleanResponse(result, error, resolve, reject);
246
+ });
247
+ });
248
+ }
249
+
250
+ export function requestEnableLocationServices(): Promise<boolean> {
251
+ return new Promise((resolve, reject) => {
252
+ Okhi.requestEnableLocationServices((result, error) => {
253
+ processBooleanResponse(result, error, resolve, reject);
254
+ });
255
+ });
256
+ }
257
+
258
+ export function requestPostNotificationPermissions(): Promise<boolean> {
259
+ return new Promise((resolve, reject) => {
260
+ if (Platform.OS === 'ios') {
261
+ reject({
262
+ code: 'unsupported_platform',
263
+ message: 'operation not supported',
264
+ });
265
+ } else {
266
+ Okhi.requestPostNotificationPermissions((result, error) => {
267
+ processBooleanResponse(result, error, resolve, reject);
268
+ });
269
+ }
270
+ });
271
+ }
package/src/types.ts ADDED
@@ -0,0 +1,90 @@
1
+ export type OkHiAuth = {
2
+ branchId: string;
3
+ clientKey: string;
4
+ env?: string;
5
+ };
6
+
7
+ export type OkHiUser = {
8
+ firstName: string;
9
+ lastName: string;
10
+ phone: string;
11
+ email: string;
12
+ okhiUserId?: string;
13
+ token?: string;
14
+ appUserId?: string;
15
+ };
16
+
17
+ export type OkHiAppContext = {
18
+ name: string;
19
+ version: string;
20
+ build: string;
21
+ };
22
+
23
+ export type OkHiLoginConfiguration = {
24
+ withPermissionsRequest?: boolean;
25
+ };
26
+
27
+ export type OkHiLogin = {
28
+ auth: OkHiAuth;
29
+ user: OkHiUser;
30
+ configuration?: OkHiLoginConfiguration;
31
+ appContext?: OkHiAppContext;
32
+ };
33
+
34
+ export type OkCollectStyle = {
35
+ color: string;
36
+ logo: string;
37
+ };
38
+
39
+ export type OkCollectConfig = {
40
+ streetView: boolean;
41
+ withHomeAddressType: boolean;
42
+ withWorkAddressType: boolean;
43
+ withAppBar: boolean;
44
+ };
45
+
46
+ export type OkCollect = {
47
+ style?: Partial<OkCollectStyle>;
48
+ configuration?: Partial<OkCollectConfig>;
49
+ locationId?: string;
50
+ };
51
+
52
+ export type OkHiLocation = {
53
+ id?: string | null;
54
+ lat?: number | null;
55
+ lng?: number | null;
56
+ placeId?: string | null;
57
+ plusCode?: string | null;
58
+ propertyName?: string | null;
59
+ streetName?: string | null;
60
+ title?: string | null;
61
+ subtitle?: string | null;
62
+ directions?: string | null;
63
+ otherInformation?: string | null;
64
+ url?: string | null;
65
+ streetViewPanoId?: string | null;
66
+ streetViewPanoUrl?: string | null;
67
+ userId?: string | null;
68
+ photoUrl?: string | null;
69
+ propertyNumber?: string | null;
70
+ country?: string | null;
71
+ state?: string | null;
72
+ city?: string | null;
73
+ displayTitle?: string | null;
74
+ countryCode?: string | null;
75
+ neighborhood?: string | null;
76
+ usageTypes?: string[] | null;
77
+ ward?: string | null;
78
+ formattedAddress?: string | null;
79
+ postCode?: string | null;
80
+ };
81
+
82
+ export type OkHiException = {
83
+ code: string;
84
+ message: string;
85
+ };
86
+
87
+ export type OkHiSuccessResponse = {
88
+ user: OkHiUser;
89
+ location: OkHiLocation;
90
+ };