rn-linkrunner 1.1.2 → 2.0.1

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.
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.device_data = void 0;
7
- exports.getDeeplinkURL = getDeeplinkURL;
8
- exports.getLinkRunnerInstallInstanceId = getLinkRunnerInstallInstanceId;
9
- exports.setDeeplinkURL = setDeeplinkURL;
10
- var _reactNativeDeviceInfo = _interopRequireWildcard(require("react-native-device-info"));
11
- var _netinfo = require("@react-native-community/netinfo");
12
- var _reactNativePlayInstallReferrer = require("react-native-play-install-referrer");
13
- var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
14
- var _reactNative = require("react-native");
15
- var _reactNativeIdfaAaid = _interopRequireDefault(require("@sparkfabrik/react-native-idfa-aaid"));
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- 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 && Object.prototype.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; }
19
- const getInstallReferrerInfo = () => {
20
- return new Promise(resolve => {
21
- if (_reactNative.Platform.OS === 'ios') {
22
- resolve({});
23
- return;
24
- }
25
-
26
- // Add a timeout to ensure the promise resolves even if the callback never fires
27
- const timeoutId = setTimeout(() => {
28
- resolve({});
29
- }, 2000);
30
- try {
31
- _reactNativePlayInstallReferrer.PlayInstallReferrer.getInstallReferrerInfo((installReferrerInfo, error) => {
32
- // Clear the timeout since callback fired
33
- clearTimeout(timeoutId);
34
- if (!error && !!installReferrerInfo) {
35
- resolve(installReferrerInfo);
36
- } else {
37
- resolve({});
38
- }
39
- });
40
- } catch (e) {
41
- // Clear the timeout since we caught an exception
42
- clearTimeout(timeoutId);
43
- resolve({});
44
- }
45
- });
46
- };
47
- const getAdvertisingIdentifier = async () => {
48
- try {
49
- const identifier = await _reactNativeIdfaAaid.default.getAdvertisingInfo();
50
- if (!identifier.isAdTrackingLimited && identifier.id) {
51
- return identifier.id;
52
- } else {
53
- return null;
54
- }
55
- } catch (error) {
56
- console.error('Error getting advertising identifier:', error);
57
- return null;
58
- }
59
- };
60
- const device_data = async () => {
61
- try {
62
- const [installReferrerInfo, connectivity, manufacturer, systemVersion] = await Promise.all([getInstallReferrerInfo(), (0, _netinfo.fetch)(), (0, _reactNativeDeviceInfo.getManufacturer)(), (0, _reactNativeDeviceInfo.getSystemVersion)()]);
63
-
64
- // Helper function to safely get device info with fallback
65
- const safeGet = async (getter, fallback = null) => {
66
- try {
67
- return await getter();
68
- } catch (error) {
69
- console.warn(`DeviceInfo error: ${error}`);
70
- return fallback;
71
- }
72
- };
73
- return {
74
- android_id: await safeGet(_reactNativeDeviceInfo.default.getAndroidId),
75
- api_level: await safeGet(_reactNativeDeviceInfo.default.getApiLevel),
76
- application_name: await safeGet(_reactNativeDeviceInfo.default.getApplicationName),
77
- base_os: await safeGet(_reactNativeDeviceInfo.default.getBaseOs),
78
- build_id: await safeGet(_reactNativeDeviceInfo.default.getBuildId),
79
- brand: await safeGet(_reactNativeDeviceInfo.default.getBrand),
80
- build_number: await safeGet(_reactNativeDeviceInfo.default.getBuildNumber),
81
- bundle_id: await safeGet(_reactNativeDeviceInfo.default.getBundleId),
82
- carrier: [await safeGet(_reactNativeDeviceInfo.default.getCarrier)],
83
- device: await safeGet(_reactNativeDeviceInfo.default.getDevice),
84
- device_id: await safeGet(_reactNativeDeviceInfo.default.getDeviceId),
85
- device_display: await safeGet(_reactNativeDeviceInfo.default.getDisplay),
86
- device_type: await safeGet(_reactNativeDeviceInfo.default.getDeviceType),
87
- device_name: await safeGet(_reactNativeDeviceInfo.default.getDeviceName),
88
- device_token: await safeGet(_reactNativeDeviceInfo.default.getDeviceToken),
89
- device_ip: await safeGet(_reactNativeDeviceInfo.default.getIpAddress),
90
- install_ref: await safeGet(_reactNativeDeviceInfo.default.getInstallReferrer),
91
- manufacturer,
92
- system_version: systemVersion,
93
- version: await safeGet(_reactNativeDeviceInfo.default.getVersion),
94
- connectivity: connectivity.type,
95
- user_agent: await safeGet(_reactNativeDeviceInfo.default.getUserAgent),
96
- gaid: _reactNative.Platform.OS === 'android' ? await getAdvertisingIdentifier() : null,
97
- idfa: _reactNative.Platform.OS === 'ios' ? await getAdvertisingIdentifier() : null,
98
- idfv: _reactNative.Platform.OS === 'ios' ? await safeGet(_reactNativeDeviceInfo.default.getUniqueId) : null,
99
- ...installReferrerInfo
100
- };
101
- } catch (error) {
102
- console.error('Error collecting device data:', error);
103
- return {
104
- error: 'Failed to collect device data'
105
- };
106
- }
107
- };
108
- exports.device_data = device_data;
109
- const STORAGE_KEY = 'linkrunner_install_instance_id';
110
- const ID_LENGTH = 20;
111
- async function getLinkRunnerInstallInstanceId() {
112
- try {
113
- // Try to get the existing ID
114
- let installInstanceId = await _asyncStorage.default.getItem(STORAGE_KEY);
115
-
116
- // If the ID doesn't exist, generate a new one and store it
117
- if (installInstanceId === null) {
118
- installInstanceId = generateRandomString(ID_LENGTH);
119
- await _asyncStorage.default.setItem(STORAGE_KEY, installInstanceId);
120
- }
121
- return installInstanceId;
122
- } catch (error) {
123
- console.error('Error accessing AsyncStorage:', error);
124
- return 'ERROR_GENERAING_INSTALL_INSTANCE_ID';
125
- }
126
- }
127
- function generateRandomString(length) {
128
- const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
129
- return Array(length).fill(null).map(() => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
130
- }
131
- const DEEPLINK_URL_STORAGE_KEY = 'linkrunner_deeplink_url';
132
- async function setDeeplinkURL(deeplink_url) {
133
- try {
134
- await _asyncStorage.default.setItem(DEEPLINK_URL_STORAGE_KEY, deeplink_url);
135
- } catch (error) {
136
- console.error('Error setting deeplink URL:', error);
137
- }
138
- }
139
- async function getDeeplinkURL() {
140
- try {
141
- return await _asyncStorage.default.getItem(DEEPLINK_URL_STORAGE_KEY);
142
- } catch (error) {
143
- console.error('Error getting deeplink URL:', error);
144
- return null;
145
- }
146
- }
147
- //# sourceMappingURL=helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNativeDeviceInfo","_interopRequireWildcard","require","_netinfo","_reactNativePlayInstallReferrer","_asyncStorage","_interopRequireDefault","_reactNative","_reactNativeIdfaAaid","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","getInstallReferrerInfo","Promise","resolve","Platform","OS","timeoutId","setTimeout","PlayInstallReferrer","installReferrerInfo","error","clearTimeout","getAdvertisingIdentifier","identifier","ReactNativeIdfaAaid","getAdvertisingInfo","isAdTrackingLimited","id","console","device_data","connectivity","manufacturer","systemVersion","all","netinfoFetch","getManufacturer","getSystemVersion","safeGet","getter","fallback","warn","android_id","DeviceInfo","getAndroidId","api_level","getApiLevel","application_name","getApplicationName","base_os","getBaseOs","build_id","getBuildId","brand","getBrand","build_number","getBuildNumber","bundle_id","getBundleId","carrier","getCarrier","device","getDevice","device_id","getDeviceId","device_display","getDisplay","device_type","getDeviceType","device_name","getDeviceName","device_token","getDeviceToken","device_ip","getIpAddress","install_ref","getInstallReferrer","system_version","version","getVersion","type","user_agent","getUserAgent","gaid","idfa","idfv","getUniqueId","exports","STORAGE_KEY","ID_LENGTH","getLinkRunnerInstallInstanceId","installInstanceId","AsyncStorage","getItem","generateRandomString","setItem","length","chars","Array","fill","map","charAt","Math","floor","random","join","DEEPLINK_URL_STORAGE_KEY","setDeeplinkURL","deeplink_url","getDeeplinkURL"],"sourceRoot":"../../src","sources":["helper.ts"],"mappings":"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"}
@@ -1,135 +0,0 @@
1
- import DeviceInfo, { getManufacturer, getSystemVersion } from 'react-native-device-info';
2
- import { fetch as netinfoFetch } from '@react-native-community/netinfo';
3
- import { PlayInstallReferrer } from 'react-native-play-install-referrer';
4
- import AsyncStorage from '@react-native-async-storage/async-storage';
5
- import { Platform } from 'react-native';
6
- import ReactNativeIdfaAaid from '@sparkfabrik/react-native-idfa-aaid';
7
- const getInstallReferrerInfo = () => {
8
- return new Promise(resolve => {
9
- if (Platform.OS === 'ios') {
10
- resolve({});
11
- return;
12
- }
13
-
14
- // Add a timeout to ensure the promise resolves even if the callback never fires
15
- const timeoutId = setTimeout(() => {
16
- resolve({});
17
- }, 2000);
18
- try {
19
- PlayInstallReferrer.getInstallReferrerInfo((installReferrerInfo, error) => {
20
- // Clear the timeout since callback fired
21
- clearTimeout(timeoutId);
22
- if (!error && !!installReferrerInfo) {
23
- resolve(installReferrerInfo);
24
- } else {
25
- resolve({});
26
- }
27
- });
28
- } catch (e) {
29
- // Clear the timeout since we caught an exception
30
- clearTimeout(timeoutId);
31
- resolve({});
32
- }
33
- });
34
- };
35
- const getAdvertisingIdentifier = async () => {
36
- try {
37
- const identifier = await ReactNativeIdfaAaid.getAdvertisingInfo();
38
- if (!identifier.isAdTrackingLimited && identifier.id) {
39
- return identifier.id;
40
- } else {
41
- return null;
42
- }
43
- } catch (error) {
44
- console.error('Error getting advertising identifier:', error);
45
- return null;
46
- }
47
- };
48
- const device_data = async () => {
49
- try {
50
- const [installReferrerInfo, connectivity, manufacturer, systemVersion] = await Promise.all([getInstallReferrerInfo(), netinfoFetch(), getManufacturer(), getSystemVersion()]);
51
-
52
- // Helper function to safely get device info with fallback
53
- const safeGet = async (getter, fallback = null) => {
54
- try {
55
- return await getter();
56
- } catch (error) {
57
- console.warn(`DeviceInfo error: ${error}`);
58
- return fallback;
59
- }
60
- };
61
- return {
62
- android_id: await safeGet(DeviceInfo.getAndroidId),
63
- api_level: await safeGet(DeviceInfo.getApiLevel),
64
- application_name: await safeGet(DeviceInfo.getApplicationName),
65
- base_os: await safeGet(DeviceInfo.getBaseOs),
66
- build_id: await safeGet(DeviceInfo.getBuildId),
67
- brand: await safeGet(DeviceInfo.getBrand),
68
- build_number: await safeGet(DeviceInfo.getBuildNumber),
69
- bundle_id: await safeGet(DeviceInfo.getBundleId),
70
- carrier: [await safeGet(DeviceInfo.getCarrier)],
71
- device: await safeGet(DeviceInfo.getDevice),
72
- device_id: await safeGet(DeviceInfo.getDeviceId),
73
- device_display: await safeGet(DeviceInfo.getDisplay),
74
- device_type: await safeGet(DeviceInfo.getDeviceType),
75
- device_name: await safeGet(DeviceInfo.getDeviceName),
76
- device_token: await safeGet(DeviceInfo.getDeviceToken),
77
- device_ip: await safeGet(DeviceInfo.getIpAddress),
78
- install_ref: await safeGet(DeviceInfo.getInstallReferrer),
79
- manufacturer,
80
- system_version: systemVersion,
81
- version: await safeGet(DeviceInfo.getVersion),
82
- connectivity: connectivity.type,
83
- user_agent: await safeGet(DeviceInfo.getUserAgent),
84
- gaid: Platform.OS === 'android' ? await getAdvertisingIdentifier() : null,
85
- idfa: Platform.OS === 'ios' ? await getAdvertisingIdentifier() : null,
86
- idfv: Platform.OS === 'ios' ? await safeGet(DeviceInfo.getUniqueId) : null,
87
- ...installReferrerInfo
88
- };
89
- } catch (error) {
90
- console.error('Error collecting device data:', error);
91
- return {
92
- error: 'Failed to collect device data'
93
- };
94
- }
95
- };
96
- const STORAGE_KEY = 'linkrunner_install_instance_id';
97
- const ID_LENGTH = 20;
98
- async function getLinkRunnerInstallInstanceId() {
99
- try {
100
- // Try to get the existing ID
101
- let installInstanceId = await AsyncStorage.getItem(STORAGE_KEY);
102
-
103
- // If the ID doesn't exist, generate a new one and store it
104
- if (installInstanceId === null) {
105
- installInstanceId = generateRandomString(ID_LENGTH);
106
- await AsyncStorage.setItem(STORAGE_KEY, installInstanceId);
107
- }
108
- return installInstanceId;
109
- } catch (error) {
110
- console.error('Error accessing AsyncStorage:', error);
111
- return 'ERROR_GENERAING_INSTALL_INSTANCE_ID';
112
- }
113
- }
114
- function generateRandomString(length) {
115
- const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
116
- return Array(length).fill(null).map(() => chars.charAt(Math.floor(Math.random() * chars.length))).join('');
117
- }
118
- const DEEPLINK_URL_STORAGE_KEY = 'linkrunner_deeplink_url';
119
- async function setDeeplinkURL(deeplink_url) {
120
- try {
121
- await AsyncStorage.setItem(DEEPLINK_URL_STORAGE_KEY, deeplink_url);
122
- } catch (error) {
123
- console.error('Error setting deeplink URL:', error);
124
- }
125
- }
126
- async function getDeeplinkURL() {
127
- try {
128
- return await AsyncStorage.getItem(DEEPLINK_URL_STORAGE_KEY);
129
- } catch (error) {
130
- console.error('Error getting deeplink URL:', error);
131
- return null;
132
- }
133
- }
134
- export { device_data, getLinkRunnerInstallInstanceId, setDeeplinkURL, getDeeplinkURL };
135
- //# sourceMappingURL=helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DeviceInfo","getManufacturer","getSystemVersion","fetch","netinfoFetch","PlayInstallReferrer","AsyncStorage","Platform","ReactNativeIdfaAaid","getInstallReferrerInfo","Promise","resolve","OS","timeoutId","setTimeout","installReferrerInfo","error","clearTimeout","e","getAdvertisingIdentifier","identifier","getAdvertisingInfo","isAdTrackingLimited","id","console","device_data","connectivity","manufacturer","systemVersion","all","safeGet","getter","fallback","warn","android_id","getAndroidId","api_level","getApiLevel","application_name","getApplicationName","base_os","getBaseOs","build_id","getBuildId","brand","getBrand","build_number","getBuildNumber","bundle_id","getBundleId","carrier","getCarrier","device","getDevice","device_id","getDeviceId","device_display","getDisplay","device_type","getDeviceType","device_name","getDeviceName","device_token","getDeviceToken","device_ip","getIpAddress","install_ref","getInstallReferrer","system_version","version","getVersion","type","user_agent","getUserAgent","gaid","idfa","idfv","getUniqueId","STORAGE_KEY","ID_LENGTH","getLinkRunnerInstallInstanceId","installInstanceId","getItem","generateRandomString","setItem","length","chars","Array","fill","map","charAt","Math","floor","random","join","DEEPLINK_URL_STORAGE_KEY","setDeeplinkURL","deeplink_url","getDeeplinkURL"],"sourceRoot":"../../src","sources":["helper.ts"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- declare const device_data: () => Promise<Record<string, any>>;
2
- declare function getLinkRunnerInstallInstanceId(): Promise<string>;
3
- declare function setDeeplinkURL(deeplink_url: string): Promise<void>;
4
- declare function getDeeplinkURL(): Promise<string | null>;
5
- export { device_data, getLinkRunnerInstallInstanceId, setDeeplinkURL, getDeeplinkURL, };
6
- //# sourceMappingURL=helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/helper.ts"],"names":[],"mappings":"AA4DA,QAAA,MAAM,WAAW,QAAa,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAwDxD,CAAC;AAKF,iBAAe,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAgB/D;AAaD,iBAAe,cAAc,CAAC,YAAY,EAAE,MAAM,iBAMjD;AAED,iBAAe,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOtD;AAED,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,cAAc,EACd,cAAc,GACf,CAAC"}
package/src/helper.ts DELETED
@@ -1,173 +0,0 @@
1
- import DeviceInfo, {
2
- getManufacturer,
3
- getSystemVersion,
4
- } from 'react-native-device-info';
5
- import { fetch as netinfoFetch } from '@react-native-community/netinfo';
6
- import {
7
- PlayInstallReferrer,
8
- type PlayInstallReferrerInfo,
9
- } from 'react-native-play-install-referrer';
10
- import AsyncStorage from '@react-native-async-storage/async-storage';
11
- import { Platform } from 'react-native';
12
- import ReactNativeIdfaAaid from '@sparkfabrik/react-native-idfa-aaid';
13
-
14
- const getInstallReferrerInfo = (): Promise<PlayInstallReferrerInfo | {}> => {
15
- return new Promise((resolve) => {
16
- if (Platform.OS === 'ios') {
17
- resolve({});
18
- return;
19
- }
20
-
21
- // Add a timeout to ensure the promise resolves even if the callback never fires
22
- const timeoutId = setTimeout(() => {
23
- resolve({});
24
- }, 2000);
25
-
26
- try {
27
- PlayInstallReferrer.getInstallReferrerInfo(
28
- (installReferrerInfo, error) => {
29
- // Clear the timeout since callback fired
30
- clearTimeout(timeoutId);
31
-
32
- if (!error && !!installReferrerInfo) {
33
- resolve(installReferrerInfo);
34
- } else {
35
- resolve({});
36
- }
37
- }
38
- );
39
- } catch (e) {
40
- // Clear the timeout since we caught an exception
41
- clearTimeout(timeoutId);
42
- resolve({});
43
- }
44
- });
45
- };
46
-
47
- const getAdvertisingIdentifier = async (): Promise<string | null> => {
48
- try {
49
- const identifier = await ReactNativeIdfaAaid.getAdvertisingInfo();
50
- if (!identifier.isAdTrackingLimited && identifier.id) {
51
- return identifier.id;
52
- } else {
53
- return null;
54
- }
55
- } catch (error) {
56
- console.error('Error getting advertising identifier:', error);
57
- return null;
58
- }
59
- };
60
-
61
- const device_data = async (): Promise<Record<string, any>> => {
62
- try {
63
- const [installReferrerInfo, connectivity, manufacturer, systemVersion] =
64
- await Promise.all([
65
- getInstallReferrerInfo(),
66
- netinfoFetch(),
67
- getManufacturer(),
68
- getSystemVersion(),
69
- ]);
70
-
71
- // Helper function to safely get device info with fallback
72
- const safeGet = async <T>(
73
- getter: () => Promise<T> | T,
74
- fallback: T = null as unknown as T
75
- ): Promise<T> => {
76
- try {
77
- return await getter();
78
- } catch (error) {
79
- console.warn(`DeviceInfo error: ${error}`);
80
- return fallback;
81
- }
82
- };
83
-
84
- return {
85
- android_id: await safeGet(DeviceInfo.getAndroidId),
86
- api_level: await safeGet(DeviceInfo.getApiLevel),
87
- application_name: await safeGet(DeviceInfo.getApplicationName),
88
- base_os: await safeGet(DeviceInfo.getBaseOs),
89
- build_id: await safeGet(DeviceInfo.getBuildId),
90
- brand: await safeGet(DeviceInfo.getBrand),
91
- build_number: await safeGet(DeviceInfo.getBuildNumber),
92
- bundle_id: await safeGet(DeviceInfo.getBundleId),
93
- carrier: [await safeGet(DeviceInfo.getCarrier)],
94
- device: await safeGet(DeviceInfo.getDevice),
95
- device_id: await safeGet(DeviceInfo.getDeviceId),
96
- device_display: await safeGet(DeviceInfo.getDisplay),
97
- device_type: await safeGet(DeviceInfo.getDeviceType),
98
- device_name: await safeGet(DeviceInfo.getDeviceName),
99
- device_token: await safeGet(DeviceInfo.getDeviceToken),
100
- device_ip: await safeGet(DeviceInfo.getIpAddress),
101
- install_ref: await safeGet(DeviceInfo.getInstallReferrer),
102
- manufacturer,
103
- system_version: systemVersion,
104
- version: await safeGet(DeviceInfo.getVersion),
105
- connectivity: connectivity.type,
106
- user_agent: await safeGet(DeviceInfo.getUserAgent),
107
- gaid: Platform.OS === 'android' ? await getAdvertisingIdentifier() : null,
108
- idfa: Platform.OS === 'ios' ? await getAdvertisingIdentifier() : null,
109
- idfv:
110
- Platform.OS === 'ios' ? await safeGet(DeviceInfo.getUniqueId) : null,
111
- ...installReferrerInfo,
112
- };
113
- } catch (error) {
114
- console.error('Error collecting device data:', error);
115
- return { error: 'Failed to collect device data' };
116
- }
117
- };
118
-
119
- const STORAGE_KEY = 'linkrunner_install_instance_id';
120
- const ID_LENGTH = 20;
121
-
122
- async function getLinkRunnerInstallInstanceId(): Promise<string> {
123
- try {
124
- // Try to get the existing ID
125
- let installInstanceId = await AsyncStorage.getItem(STORAGE_KEY);
126
-
127
- // If the ID doesn't exist, generate a new one and store it
128
- if (installInstanceId === null) {
129
- installInstanceId = generateRandomString(ID_LENGTH);
130
- await AsyncStorage.setItem(STORAGE_KEY, installInstanceId);
131
- }
132
-
133
- return installInstanceId;
134
- } catch (error) {
135
- console.error('Error accessing AsyncStorage:', error);
136
- return 'ERROR_GENERAING_INSTALL_INSTANCE_ID';
137
- }
138
- }
139
-
140
- function generateRandomString(length: number): string {
141
- const chars =
142
- 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
143
- return Array(length)
144
- .fill(null)
145
- .map(() => chars.charAt(Math.floor(Math.random() * chars.length)))
146
- .join('');
147
- }
148
-
149
- const DEEPLINK_URL_STORAGE_KEY = 'linkrunner_deeplink_url';
150
-
151
- async function setDeeplinkURL(deeplink_url: string) {
152
- try {
153
- await AsyncStorage.setItem(DEEPLINK_URL_STORAGE_KEY, deeplink_url);
154
- } catch (error) {
155
- console.error('Error setting deeplink URL:', error);
156
- }
157
- }
158
-
159
- async function getDeeplinkURL(): Promise<string | null> {
160
- try {
161
- return await AsyncStorage.getItem(DEEPLINK_URL_STORAGE_KEY);
162
- } catch (error) {
163
- console.error('Error getting deeplink URL:', error);
164
- return null;
165
- }
166
- }
167
-
168
- export {
169
- device_data,
170
- getLinkRunnerInstallInstanceId,
171
- setDeeplinkURL,
172
- getDeeplinkURL,
173
- };