rn-linkrunner 0.5.2 → 0.6.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,29 +1,41 @@
1
1
  import { Linking } from 'react-native';
2
- import DeviceInfo, { getManufacturer, getSystemVersion } from 'react-native-device-info';
3
- const package_version = '0.5.2';
2
+ import DeviceInfo from 'react-native-device-info';
3
+ import { device_data, getLinkRunnerInstallInstanceId } from './helper';
4
+ const package_version = '0.6.1';
4
5
  const app_version = DeviceInfo.getVersion();
5
- const device_data = {
6
- android_id: DeviceInfo.getAndroidId(),
7
- api_level: DeviceInfo.getApiLevel(),
8
- application_name: DeviceInfo.getApplicationName(),
9
- base_os: DeviceInfo.getBaseOs(),
10
- build_id: DeviceInfo.getBuildId(),
11
- brand: DeviceInfo.getBrand(),
12
- build_number: DeviceInfo.getBuildNumber(),
13
- bundle_id: DeviceInfo.getBundleId(),
14
- carrier: DeviceInfo.getCarrier(),
15
- device: DeviceInfo.getDevice(),
16
- device_id: DeviceInfo.getDeviceId(),
17
- device_type: DeviceInfo.getDeviceType(),
18
- device_name: DeviceInfo.getDeviceName(),
19
- device_token: DeviceInfo.getDeviceToken(),
20
- device_ip: DeviceInfo.getIpAddress(),
21
- install_ref: DeviceInfo.getInstallReferrer(),
22
- manufacturer: getManufacturer(),
23
- system_version: getSystemVersion(),
24
- version: DeviceInfo.getVersion()
25
- };
26
6
  const baseUrl = 'https://api.linkrunner.io';
7
+ const initApiCall = async (token, source, link) => {
8
+ try {
9
+ const fetch_result = await fetch(baseUrl + '/api/client/init', {
10
+ method: 'POST',
11
+ headers: {
12
+ 'Accept': 'application/json',
13
+ 'Content-Type': 'application/json'
14
+ },
15
+ body: JSON.stringify({
16
+ token,
17
+ package_version,
18
+ app_version,
19
+ device_data: await device_data(),
20
+ platform: 'REACT_NATIVE',
21
+ source,
22
+ link,
23
+ install_instance_id: await getLinkRunnerInstallInstanceId()
24
+ })
25
+ });
26
+ const result = await fetch_result.json();
27
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
28
+ throw new Error(result === null || result === void 0 ? void 0 : result.msg);
29
+ }
30
+ if (__DEV__) {
31
+ console.log('Linkrunner initialised successfully 🔥');
32
+ console.log('init response > ', result);
33
+ }
34
+ return result === null || result === void 0 ? void 0 : result.data;
35
+ } catch (error) {
36
+ console.error('Error initializing linkrunner', error);
37
+ }
38
+ };
27
39
  class Linkrunner {
28
40
  constructor() {
29
41
  this.token = null;
@@ -34,35 +46,7 @@ class Linkrunner {
34
46
  return;
35
47
  }
36
48
  this.token = token;
37
- try {
38
- const fetch_result = await fetch(baseUrl + '/api/client/init', {
39
- method: 'POST',
40
- headers: {
41
- 'Accept': 'application/json',
42
- 'Content-Type': 'application/json'
43
- },
44
- body: JSON.stringify({
45
- token,
46
- package_version,
47
- app_version,
48
- device_data,
49
- platform: 'REACT_NATIVE'
50
- })
51
- });
52
- const result = await fetch_result.json();
53
-
54
- // if (!result) throw new Error('No response obtained!');
55
-
56
- if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
57
- throw new Error(result === null || result === void 0 ? void 0 : result.msg);
58
- }
59
- if (__DEV__) {
60
- console.log('Linkrunner initialised successfully 🔥');
61
- }
62
- return result === null || result === void 0 ? void 0 : result.data;
63
- } catch (error) {
64
- console.error('Error initializing linkrunner');
65
- }
49
+ return await initApiCall(token, 'GENERAL');
66
50
  }
67
51
  async trigger({
68
52
  data,
@@ -87,8 +71,9 @@ class Linkrunner {
87
71
  platform: 'REACT_NATIVE',
88
72
  data: {
89
73
  ...data,
90
- device_data
91
- }
74
+ device_data: await device_data()
75
+ },
76
+ install_instance_id: await getLinkRunnerInstallInstanceId()
92
77
  })
93
78
  });
94
79
  const result = await response.json();
@@ -113,7 +98,12 @@ class Linkrunner {
113
98
  body: JSON.stringify({
114
99
  token: this.token
115
100
  })
116
- }).then(res => res.json()).catch(() => {});
101
+ }).then(() => {
102
+ if (__DEV__) {
103
+ var _result$data5;
104
+ console.log('Linkrunner: Deeplink triggered successfully', result === null || result === void 0 || (_result$data5 = result.data) === null || _result$data5 === void 0 ? void 0 : _result$data5.deeplink);
105
+ }
106
+ }).catch(() => {});
117
107
  });
118
108
  }
119
109
  if (__DEV__) {
@@ -125,6 +115,98 @@ class Linkrunner {
125
115
  console.error('Linkrunner: ', err.message);
126
116
  }
127
117
  }
118
+ async capturePayment({
119
+ amount,
120
+ userId,
121
+ paymentId
122
+ }) {
123
+ if (!this.token) {
124
+ console.error('Linkrunner: Capture payment failed, token not initialized');
125
+ return;
126
+ }
127
+ try {
128
+ const response = await fetch(baseUrl + '/api/client/capture-payment', {
129
+ method: 'POST',
130
+ headers: {
131
+ 'Accept': 'application/json',
132
+ 'Content-Type': 'application/json'
133
+ },
134
+ body: JSON.stringify({
135
+ token: this.token,
136
+ user_id: userId,
137
+ platform: 'REACT_NATIVE',
138
+ data: {
139
+ device_data: await device_data()
140
+ },
141
+ amount,
142
+ payment_id: paymentId,
143
+ install_instance_id: await getLinkRunnerInstallInstanceId()
144
+ })
145
+ });
146
+ const result = await response.json();
147
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
148
+ console.error('Linkrunner: Capture payment failed');
149
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
150
+ return;
151
+ }
152
+ if (__DEV__) {
153
+ console.log('Linkrunner: Payment captured successfully 💸', {
154
+ amount,
155
+ paymentId,
156
+ userId
157
+ });
158
+ }
159
+ } catch (error) {
160
+ console.error('Linkrunner: Payment capturing failed!');
161
+ return;
162
+ }
163
+ }
164
+ async removePayment({
165
+ userId,
166
+ paymentId
167
+ }) {
168
+ if (!this.token) {
169
+ console.error('Linkrunner: Remove payment failed, token not initialized');
170
+ return;
171
+ }
172
+ if (!paymentId && !userId) {
173
+ return console.error('Linkrunner: Either paymentId or userId must be provided!');
174
+ }
175
+ try {
176
+ const response = await fetch(baseUrl + '/api/client/remove-captured-payment', {
177
+ method: 'POST',
178
+ headers: {
179
+ 'Accept': 'application/json',
180
+ 'Content-Type': 'application/json'
181
+ },
182
+ body: JSON.stringify({
183
+ token: this.token,
184
+ user_id: userId,
185
+ platform: 'REACT_NATIVE',
186
+ data: {
187
+ device_data: await device_data()
188
+ },
189
+ payment_id: paymentId,
190
+ install_instance_id: await getLinkRunnerInstallInstanceId()
191
+ })
192
+ });
193
+ const result = await response.json();
194
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
195
+ console.error('Linkrunner: Capture payment failed');
196
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
197
+ return;
198
+ }
199
+ if (__DEV__) {
200
+ console.log('Linkrunner: Payment entry removed successfully!', {
201
+ paymentId,
202
+ userId
203
+ });
204
+ }
205
+ } catch (error) {
206
+ console.error('Linkrunner: Payment capturing failed!');
207
+ return;
208
+ }
209
+ }
128
210
  }
129
211
  const linkrunner = new Linkrunner();
130
212
  export default linkrunner;
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","DeviceInfo","getManufacturer","getSystemVersion","package_version","app_version","getVersion","device_data","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_type","getDeviceType","device_name","getDeviceName","device_token","getDeviceToken","device_ip","getIpAddress","install_ref","getInstallReferrer","manufacturer","system_version","version","baseUrl","Linkrunner","constructor","token","init","console","error","fetch_result","fetch","method","headers","body","JSON","stringify","platform","result","json","status","Error","msg","__DEV__","log","data","trigger","user_data","config","_result$data","_result$data2","response","deeplink","trigger_deeplink","_result$data4","_result$data3","openURL","then","res","catch","err","message","linkrunner"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["Linking","DeviceInfo","device_data","getLinkRunnerInstallInstanceId","package_version","app_version","getVersion","baseUrl","initApiCall","token","source","link","fetch_result","fetch","method","headers","body","JSON","stringify","platform","install_instance_id","result","json","status","Error","msg","__DEV__","console","log","data","error","Linkrunner","constructor","init","trigger","user_data","config","_result$data","_result$data2","response","deeplink","trigger_deeplink","_result$data4","_result$data3","openURL","then","_result$data5","catch","err","message","capturePayment","amount","userId","paymentId","user_id","payment_id","removePayment","linkrunner"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":""}
@@ -0,0 +1,4 @@
1
+ declare const device_data: () => Promise<Record<string, any>>;
2
+ declare function getLinkRunnerInstallInstanceId(): Promise<string>;
3
+ export { device_data, getLinkRunnerInstallInstanceId };
4
+ //# sourceMappingURL=helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/helper.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,WAAW,QAAa,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAgDxD,CAAC;AAKF,iBAAe,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAgB/D;AAWD,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1,38 +1,27 @@
1
- interface UserData {
2
- id: string;
3
- name?: string;
4
- phone?: string;
5
- email?: string;
6
- }
7
- interface TriggerConfig {
8
- trigger_deeplink?: boolean;
9
- }
10
- export type Response = {
11
- ip_location_data: IPLocationData;
12
- deeplink: string;
13
- root_domain: boolean;
14
- };
15
- export interface IPLocationData {
16
- ip: string;
17
- city: string;
18
- countryLong: string;
19
- countryShort: string;
20
- latitude: number;
21
- longitude: number;
22
- region: string;
23
- timeZone: string;
24
- zipCode: string;
25
- }
1
+ import type { TriggerConfig, UserData } from './types';
26
2
  declare class Linkrunner {
27
3
  private token;
28
4
  constructor();
29
- init(token: string): Promise<void | Response>;
5
+ init(token: string): Promise<void | LRInitResponse>;
30
6
  trigger({ data, user_data, config, }: {
31
7
  config?: TriggerConfig;
32
- data: any;
8
+ data?: {
9
+ [key: string]: any;
10
+ };
33
11
  user_data: UserData;
34
- }): Promise<void | Response>;
12
+ }): Promise<void | LRTriggerResponse>;
13
+ capturePayment({ amount, userId, paymentId, }: {
14
+ paymentId?: string;
15
+ userId: string;
16
+ amount: number;
17
+ }): Promise<void>;
18
+ removePayment({ userId, paymentId, }: {
19
+ paymentId?: string;
20
+ userId: string;
21
+ }): Promise<void>;
35
22
  }
36
23
  declare const linkrunner: Linkrunner;
24
+ export type LRInitResponse = Response;
25
+ export type LRTriggerResponse = Response;
37
26
  export default linkrunner;
38
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiCA,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,gBAAgB,EAAE,cAAc,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAAgB;;IAMvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IAyC7C,OAAO,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,MAAM,GACP,EAAE;QACD,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,IAAI,EAAE,GAAG,CAAC;QACV,SAAS,EAAE,QAAQ,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;CAkE7B;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AAEpC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiDvD,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAAgB;;IAMvB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,cAAc,CAAC;IAWnD,OAAO,CAAC,EACZ,IAAI,EACJ,SAAS,EACT,MAAM,GACP,EAAE;QACD,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,IAAI,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QAC9B,SAAS,EAAE,QAAQ,CAAC;KACrB,GAAG,OAAO,CAAC,IAAI,GAAG,iBAAiB,CAAC;IA2E/B,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB;IAiDK,aAAa,CAAC,EAClB,MAAM,EACN,SAAS,GACV,EAAE;QACD,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB;CAqDF;AAED,QAAA,MAAM,UAAU,YAAmB,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEzC,eAAe,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface LRIPLocationData {
2
+ ip: string;
3
+ city: string;
4
+ countryLong: string;
5
+ countryShort: string;
6
+ latitude: number;
7
+ longitude: number;
8
+ region: string;
9
+ timeZone: string;
10
+ zipCode: string;
11
+ }
12
+ export interface UserData {
13
+ id: string;
14
+ name?: string;
15
+ phone?: string;
16
+ email?: string;
17
+ }
18
+ export interface TriggerConfig {
19
+ trigger_deeplink?: boolean;
20
+ }
21
+ export type Response = {
22
+ ip_location_data: LRIPLocationData;
23
+ deeplink: string;
24
+ root_domain: boolean;
25
+ trigger?: boolean;
26
+ };
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rn-linkrunner",
3
- "version": "0.5.2",
3
+ "version": "0.6.1",
4
4
  "description": "React Native Package for linkrunner",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -138,6 +138,9 @@
138
138
  ]
139
139
  },
140
140
  "dependencies": {
141
- "react-native-device-info": "^10.12.0"
141
+ "@react-native-async-storage/async-storage": "^2.0.0",
142
+ "@react-native-community/netinfo": "^11.3.2",
143
+ "react-native-device-info": "^10.12.0",
144
+ "react-native-play-install-referrer": "^1.1.8"
142
145
  }
143
146
  }
package/src/helper.ts ADDED
@@ -0,0 +1,92 @@
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
+
12
+ const device_data = async (): Promise<Record<string, any>> => {
13
+ const getInstallReferrerInfo = (): Promise<PlayInstallReferrerInfo | {}> => {
14
+ return new Promise((resolve) => {
15
+ PlayInstallReferrer.getInstallReferrerInfo(
16
+ (installReferrerInfo, error) => {
17
+ if (!error && !!installReferrerInfo) {
18
+ resolve(installReferrerInfo);
19
+ } else {
20
+ resolve({});
21
+ }
22
+ }
23
+ );
24
+ });
25
+ };
26
+
27
+ const [installReferrerInfo, connectivity, manufacturer, systemVersion] =
28
+ await Promise.all([
29
+ getInstallReferrerInfo(),
30
+ netinfoFetch(),
31
+ getManufacturer(),
32
+ getSystemVersion(),
33
+ ]);
34
+
35
+ return {
36
+ android_id: DeviceInfo.getAndroidId(),
37
+ api_level: DeviceInfo.getApiLevel(),
38
+ application_name: DeviceInfo.getApplicationName(),
39
+ base_os: DeviceInfo.getBaseOs(),
40
+ build_id: DeviceInfo.getBuildId(),
41
+ brand: DeviceInfo.getBrand(),
42
+ build_number: DeviceInfo.getBuildNumber(),
43
+ bundle_id: DeviceInfo.getBundleId(),
44
+ carrier: [DeviceInfo.getCarrier()],
45
+ device: DeviceInfo.getDevice(),
46
+ device_id: DeviceInfo.getDeviceId(),
47
+ device_display: DeviceInfo.getDisplay(),
48
+ device_type: DeviceInfo.getDeviceType(),
49
+ device_name: DeviceInfo.getDeviceName(),
50
+ device_token: DeviceInfo.getDeviceToken(),
51
+ device_ip: DeviceInfo.getIpAddress(),
52
+ install_ref: await DeviceInfo.getInstallReferrer(),
53
+ manufacturer,
54
+ system_version: systemVersion,
55
+ version: DeviceInfo.getVersion(),
56
+ connectivity: connectivity.type,
57
+ user_agent: DeviceInfo.getUserAgent(),
58
+ ...installReferrerInfo,
59
+ };
60
+ };
61
+
62
+ const STORAGE_KEY = 'linkrunner_install_instance_id';
63
+ const ID_LENGTH = 20;
64
+
65
+ async function getLinkRunnerInstallInstanceId(): Promise<string> {
66
+ try {
67
+ // Try to get the existing ID
68
+ let installInstanceId = await AsyncStorage.getItem(STORAGE_KEY);
69
+
70
+ // If the ID doesn't exist, generate a new one and store it
71
+ if (installInstanceId === null) {
72
+ installInstanceId = generateRandomString(ID_LENGTH);
73
+ await AsyncStorage.setItem(STORAGE_KEY, installInstanceId);
74
+ }
75
+
76
+ return installInstanceId;
77
+ } catch (error) {
78
+ console.error('Error accessing AsyncStorage:', error);
79
+ throw error;
80
+ }
81
+ }
82
+
83
+ function generateRandomString(length: number): string {
84
+ const chars =
85
+ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
86
+ return Array(length)
87
+ .fill(null)
88
+ .map(() => chars.charAt(Math.floor(Math.random() * chars.length)))
89
+ .join('');
90
+ }
91
+
92
+ export { device_data, getLinkRunnerInstallInstanceId };