rn-linkrunner 0.4.3 → 0.5.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.
package/README.md CHANGED
@@ -6,17 +6,17 @@ React Native Package for [linkrunner.io](https://www.linkrunner.io)
6
6
 
7
7
  ### Step 1: Prerequisites
8
8
 
9
- rn-linkrunner also uses `react-native-device-info` and `react-native-encrypted-storage`, you can install these packages from the below mentioned commands
9
+ rn-linkrunner also uses `react-native-device-info`. You can install this package with the following command:
10
10
 
11
11
  ```sh
12
- npm install react-native-device-info react-native-encrypted-storage
12
+ npm install react-native-device-info
13
13
 
14
14
  or
15
15
 
16
- yarn add react-native-device-info react-native-encrypted-storage
16
+ yarn add react-native-device-info
17
17
  ```
18
18
 
19
- then run `cd ios && pod install` to install pods for the above mentioned packages
19
+ Then run `cd ios && pod install` to install pods for the package.
20
20
 
21
21
  ### Step 2: Installing rn-linkrunner
22
22
 
@@ -32,9 +32,7 @@ yarn add rn-linkrunner
32
32
 
33
33
  ### Initialisation
34
34
 
35
- You'll need your [project token](https://www.linkrunner.io/dashboard?m=documentation) to initialisation the package
36
-
37
- Place it in the `App.tsx` component, make sure the dependency array is empty for the `useEffect`
35
+ You'll need your [project token](https://www.linkrunner.io/dashboard?m=documentation) to initialise the package. Place this initialization step in your `App.tsx` component, making sure the dependency array is empty for the `useEffect`:
38
36
 
39
37
  ```js
40
38
  import linkrunner from 'rn-linkrunner';
@@ -47,34 +45,30 @@ useEffect(() => {
47
45
 
48
46
  ### Trigger
49
47
 
50
- Call this function once your onboarding is completed and the navigation stack can be accessed by a deeplink
48
+ Call this function once your onboarding is completed and the navigation stack can be accessed by a deep link:
51
49
 
52
- ```JSX
50
+ ```jsx
53
51
  import linkrunner from 'rn-linkrunner';
54
52
 
55
53
  const onTrigger = () => {
56
- linkrunner.trigger({
57
- user_data: {
58
- id: "1",
59
- name: "John Doe", // optional
60
- phone: "9583849238", // optional
61
- email: "support@linkrunner.io", //optional
62
- },
63
- data: {}, // Any other data you might need
64
- });
54
+ linkrunner.trigger({
55
+ user_data: {
56
+ id: '1',
57
+ name: 'John Doe', // optional
58
+ phone: '9583849238', // optional
59
+ email: 'support@linkrunner.io', //optional
60
+ },
61
+ data: {}, // Any other data you might need
62
+ });
65
63
  };
66
64
  ```
67
65
 
68
- Both the attributes in the `trigger` method are optional although recommened to have.
66
+ Both attributes in the `trigger` method are optional, although recommended.
69
67
 
70
68
  ### Facing issues during integration?
71
69
 
72
70
  Mail us on support@linkrunner.io
73
71
 
74
- <!-- ## Contributing
75
-
76
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow. -->
77
-
78
72
  ## License
79
73
 
80
74
  MIT
@@ -6,13 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _reactNativeDeviceInfo = _interopRequireWildcard(require("react-native-device-info"));
9
- var _reactNativeEncryptedStorage = _interopRequireDefault(require("react-native-encrypted-storage"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
9
  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); }
12
10
  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; }
13
- const package_version = '0.4.3';
11
+ const package_version = '0.5.1';
14
12
  const app_version = _reactNativeDeviceInfo.default.getVersion();
15
- const EncryptedStorageTokenName = 'linkrunner-token';
16
13
  const device_data = {
17
14
  android_id: _reactNativeDeviceInfo.default.getAndroidId(),
18
15
  api_level: _reactNativeDeviceInfo.default.getApiLevel(),
@@ -35,73 +32,108 @@ const device_data = {
35
32
  version: _reactNativeDeviceInfo.default.getVersion()
36
33
  };
37
34
  const baseUrl = 'https://api.linkrunner.io';
38
- const init = token => {
39
- // In error message add "Click here to get your project token"
40
- if (!token) return console.error('Linkrunner needs your project token to initialize!');
41
- fetch(baseUrl + '/api/client/init', {
42
- method: 'POST',
43
- headers: {
44
- 'Accept': 'application/json',
45
- 'Content-Type': 'application/json'
46
- },
47
- body: JSON.stringify({
48
- token,
49
- package_version,
50
- app_version,
51
- device_data,
52
- platform: 'REACT_NATIVE'
53
- })
54
- }).then(res => res.json()).then(async result => {
55
- if (!result) throw new Error('No response obtained!');
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);
35
+ class Linkrunner {
36
+ constructor() {
37
+ this.token = null;
38
+ }
39
+ async init(token) {
40
+ if (!token) {
41
+ console.error('Linkrunner needs your project token to initialize!');
42
+ return;
58
43
  }
59
- await _reactNativeEncryptedStorage.default.setItem(EncryptedStorageTokenName, token);
60
- console.log('Linkrunner initialised successfully 🔥');
61
- }).catch(err => {
62
- console.error('Error initializing linkrunner: ', err.message);
63
- });
64
- };
65
- const trigger = async ({
66
- data,
67
- user_data
68
- }) => {
69
- const token = await _reactNativeEncryptedStorage.default.getItem(EncryptedStorageTokenName);
70
- fetch(baseUrl + '/api/client/trigger', {
71
- method: 'POST',
72
- headers: {
73
- 'Accept': 'application/json',
74
- 'Content-Type': 'application/json'
75
- },
76
- body: JSON.stringify({
77
- token,
78
- user_data,
79
- platform: 'REACT_NATIVE',
80
- data: {
81
- ...data,
82
- device_data
44
+ this.token = token;
45
+ try {
46
+ const fetch_result = await fetch(baseUrl + '/api/client/init', {
47
+ method: 'POST',
48
+ headers: {
49
+ 'Accept': 'application/json',
50
+ 'Content-Type': 'application/json'
51
+ },
52
+ body: JSON.stringify({
53
+ token,
54
+ package_version,
55
+ app_version,
56
+ device_data,
57
+ platform: 'REACT_NATIVE'
58
+ })
59
+ });
60
+ const result = await fetch_result.json();
61
+
62
+ // if (!result) throw new Error('No response obtained!');
63
+
64
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
65
+ throw new Error(result === null || result === void 0 ? void 0 : result.msg);
83
66
  }
84
- })
85
- }).then(res => res.json()).then(result => {
86
- var _result$data;
87
- if (!result) throw new Error('No response obtained!');
88
- if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
89
- console.error('Linkrunner: Trigger failed');
90
- console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
67
+ if (__DEV__) {
68
+ console.log('Linkrunner initialised successfully 🔥');
69
+ }
70
+ return result === null || result === void 0 ? void 0 : result.data;
71
+ } catch (error) {
72
+ console.error('Error initializing linkrunner');
91
73
  }
92
- if (!!(result !== null && result !== void 0 && (_result$data = result.data) !== null && _result$data !== void 0 && _result$data.deeplink)) {
93
- var _result$data2;
94
- _reactNative.Linking.openURL(result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.deeplink);
74
+ }
75
+ async trigger({
76
+ data,
77
+ user_data,
78
+ config
79
+ }) {
80
+ if (!this.token) {
81
+ console.error('Linkrunner: Trigger failed, token not initialized');
82
+ return;
95
83
  }
96
- console.log('Linkrunner: Trigger called 🔥');
97
- }).catch(err => {
98
- console.error('Linkrunner: Trigger failed');
99
- console.error('Linkrunner: ', err === null || err === void 0 ? void 0 : err.msg);
100
- });
101
- };
102
- const linkrunner = {
103
- init,
104
- trigger
105
- };
84
+ try {
85
+ var _result$data, _result$data2;
86
+ const response = await fetch(baseUrl + '/api/client/trigger', {
87
+ method: 'POST',
88
+ headers: {
89
+ 'Accept': 'application/json',
90
+ 'Content-Type': 'application/json'
91
+ },
92
+ body: JSON.stringify({
93
+ token: this.token,
94
+ user_data,
95
+ platform: 'REACT_NATIVE',
96
+ data: {
97
+ ...data,
98
+ device_data
99
+ }
100
+ })
101
+ });
102
+ const result = await response.json();
103
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
104
+ console.error('Linkrunner: Trigger failed');
105
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
106
+ return;
107
+ }
108
+ if (result !== null && result !== void 0 && (_result$data = result.data) !== null && _result$data !== void 0 && _result$data.deeplink && (config === null || config === void 0 ? void 0 : config.trigger_deeplink) !== false && result !== null && result !== void 0 && (_result$data2 = result.data) !== null && _result$data2 !== void 0 && _result$data2.trigger) {
109
+ var _result$data4;
110
+ if (__DEV__) {
111
+ var _result$data3;
112
+ console.log('Triggering deeplink > ', result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.deeplink);
113
+ }
114
+ _reactNative.Linking.openURL(result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.deeplink).then(() => {
115
+ fetch(baseUrl + '/api/client/deeplink-triggered', {
116
+ method: 'POST',
117
+ headers: {
118
+ 'Accept': 'application/json',
119
+ 'Content-Type': 'application/json'
120
+ },
121
+ body: JSON.stringify({
122
+ token: this.token
123
+ })
124
+ }).then(res => res.json()).catch(() => {});
125
+ });
126
+ }
127
+ if (__DEV__) {
128
+ console.log('Linkrunner: Trigger called 🔥');
129
+ }
130
+ return result.data;
131
+ } catch (err) {
132
+ console.error('Linkrunner: Trigger failed');
133
+ console.error('Linkrunner: ', err.message);
134
+ }
135
+ }
136
+ }
137
+ const linkrunner = new Linkrunner();
106
138
  var _default = exports.default = linkrunner;
107
139
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_interopRequireWildcard","_reactNativeEncryptedStorage","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","package_version","app_version","DeviceInfo","getVersion","EncryptedStorageTokenName","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","getManufacturer","system_version","getSystemVersion","version","baseUrl","init","token","console","error","fetch","method","headers","body","JSON","stringify","platform","then","res","json","result","Error","status","msg","EncryptedStorage","setItem","log","catch","err","message","trigger","data","user_data","getItem","_result$data","deeplink","_result$data2","Linking","openURL","linkrunner","_default","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","package_version","app_version","DeviceInfo","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","getManufacturer","system_version","getSystemVersion","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","Linking","openURL","then","res","catch","err","message","linkrunner","_default","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import { Linking } from 'react-native';
2
2
  import DeviceInfo, { getManufacturer, getSystemVersion } from 'react-native-device-info';
3
- import EncryptedStorage from 'react-native-encrypted-storage';
4
- const package_version = '0.4.3';
3
+ const package_version = '0.5.1';
5
4
  const app_version = DeviceInfo.getVersion();
6
- const EncryptedStorageTokenName = 'linkrunner-token';
7
5
  const device_data = {
8
6
  android_id: DeviceInfo.getAndroidId(),
9
7
  api_level: DeviceInfo.getApiLevel(),
@@ -26,73 +24,108 @@ const device_data = {
26
24
  version: DeviceInfo.getVersion()
27
25
  };
28
26
  const baseUrl = 'https://api.linkrunner.io';
29
- const init = token => {
30
- // In error message add "Click here to get your project token"
31
- if (!token) return console.error('Linkrunner needs your project token to initialize!');
32
- fetch(baseUrl + '/api/client/init', {
33
- method: 'POST',
34
- headers: {
35
- 'Accept': 'application/json',
36
- 'Content-Type': 'application/json'
37
- },
38
- body: JSON.stringify({
39
- token,
40
- package_version,
41
- app_version,
42
- device_data,
43
- platform: 'REACT_NATIVE'
44
- })
45
- }).then(res => res.json()).then(async result => {
46
- if (!result) throw new Error('No response obtained!');
47
- if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
48
- throw new Error(result === null || result === void 0 ? void 0 : result.msg);
27
+ class Linkrunner {
28
+ constructor() {
29
+ this.token = null;
30
+ }
31
+ async init(token) {
32
+ if (!token) {
33
+ console.error('Linkrunner needs your project token to initialize!');
34
+ return;
49
35
  }
50
- await EncryptedStorage.setItem(EncryptedStorageTokenName, token);
51
- console.log('Linkrunner initialised successfully 🔥');
52
- }).catch(err => {
53
- console.error('Error initializing linkrunner: ', err.message);
54
- });
55
- };
56
- const trigger = async ({
57
- data,
58
- user_data
59
- }) => {
60
- const token = await EncryptedStorage.getItem(EncryptedStorageTokenName);
61
- fetch(baseUrl + '/api/client/trigger', {
62
- method: 'POST',
63
- headers: {
64
- 'Accept': 'application/json',
65
- 'Content-Type': 'application/json'
66
- },
67
- body: JSON.stringify({
68
- token,
69
- user_data,
70
- platform: 'REACT_NATIVE',
71
- data: {
72
- ...data,
73
- device_data
36
+ 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);
74
58
  }
75
- })
76
- }).then(res => res.json()).then(result => {
77
- var _result$data;
78
- if (!result) throw new Error('No response obtained!');
79
- if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
80
- console.error('Linkrunner: Trigger failed');
81
- console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
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');
82
65
  }
83
- if (!!(result !== null && result !== void 0 && (_result$data = result.data) !== null && _result$data !== void 0 && _result$data.deeplink)) {
84
- var _result$data2;
85
- Linking.openURL(result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.deeplink);
66
+ }
67
+ async trigger({
68
+ data,
69
+ user_data,
70
+ config
71
+ }) {
72
+ if (!this.token) {
73
+ console.error('Linkrunner: Trigger failed, token not initialized');
74
+ return;
86
75
  }
87
- console.log('Linkrunner: Trigger called 🔥');
88
- }).catch(err => {
89
- console.error('Linkrunner: Trigger failed');
90
- console.error('Linkrunner: ', err === null || err === void 0 ? void 0 : err.msg);
91
- });
92
- };
93
- const linkrunner = {
94
- init,
95
- trigger
96
- };
76
+ try {
77
+ var _result$data, _result$data2;
78
+ const response = await fetch(baseUrl + '/api/client/trigger', {
79
+ method: 'POST',
80
+ headers: {
81
+ 'Accept': 'application/json',
82
+ 'Content-Type': 'application/json'
83
+ },
84
+ body: JSON.stringify({
85
+ token: this.token,
86
+ user_data,
87
+ platform: 'REACT_NATIVE',
88
+ data: {
89
+ ...data,
90
+ device_data
91
+ }
92
+ })
93
+ });
94
+ const result = await response.json();
95
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
96
+ console.error('Linkrunner: Trigger failed');
97
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
98
+ return;
99
+ }
100
+ if (result !== null && result !== void 0 && (_result$data = result.data) !== null && _result$data !== void 0 && _result$data.deeplink && (config === null || config === void 0 ? void 0 : config.trigger_deeplink) !== false && result !== null && result !== void 0 && (_result$data2 = result.data) !== null && _result$data2 !== void 0 && _result$data2.trigger) {
101
+ var _result$data4;
102
+ if (__DEV__) {
103
+ var _result$data3;
104
+ console.log('Triggering deeplink > ', result === null || result === void 0 || (_result$data3 = result.data) === null || _result$data3 === void 0 ? void 0 : _result$data3.deeplink);
105
+ }
106
+ Linking.openURL(result === null || result === void 0 || (_result$data4 = result.data) === null || _result$data4 === void 0 ? void 0 : _result$data4.deeplink).then(() => {
107
+ fetch(baseUrl + '/api/client/deeplink-triggered', {
108
+ method: 'POST',
109
+ headers: {
110
+ 'Accept': 'application/json',
111
+ 'Content-Type': 'application/json'
112
+ },
113
+ body: JSON.stringify({
114
+ token: this.token
115
+ })
116
+ }).then(res => res.json()).catch(() => {});
117
+ });
118
+ }
119
+ if (__DEV__) {
120
+ console.log('Linkrunner: Trigger called 🔥');
121
+ }
122
+ return result.data;
123
+ } catch (err) {
124
+ console.error('Linkrunner: Trigger failed');
125
+ console.error('Linkrunner: ', err.message);
126
+ }
127
+ }
128
+ }
129
+ const linkrunner = new Linkrunner();
97
130
  export default linkrunner;
98
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","DeviceInfo","getManufacturer","getSystemVersion","EncryptedStorage","package_version","app_version","getVersion","EncryptedStorageTokenName","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","init","token","console","error","fetch","method","headers","body","JSON","stringify","platform","then","res","json","result","Error","status","msg","setItem","log","catch","err","message","trigger","data","user_data","getItem","_result$data","deeplink","_result$data2","openURL","linkrunner"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
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,15 +1,38 @@
1
- type UserData = {
1
+ interface UserData {
2
2
  id: string;
3
3
  name?: string;
4
4
  phone?: string;
5
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;
6
14
  };
7
- declare const linkrunner: {
8
- init: (token: string) => void;
9
- trigger: ({ data, user_data, }: {
10
- user_data: UserData;
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
+ }
26
+ declare class Linkrunner {
27
+ private token;
28
+ constructor();
29
+ init(token: string): Promise<void | Response>;
30
+ trigger({ data, user_data, config, }: {
31
+ config?: TriggerConfig;
11
32
  data: any;
12
- }) => Promise<void>;
13
- };
33
+ user_data: UserData;
34
+ }): Promise<void | Response>;
35
+ }
36
+ declare const linkrunner: Linkrunner;
14
37
  export default linkrunner;
15
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAsEA,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgDF,QAAA,MAAM,UAAU;kBAxFK,MAAM;;mBA8Cd,QAAQ;cACb,GAAG;;CA4CV,CAAC;AAEF,eAAe,UAAU,CAAC"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rn-linkrunner",
3
- "version": "0.4.3",
3
+ "version": "0.5.1",
4
4
  "description": "React Native Package for linkrunner",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -138,7 +138,6 @@
138
138
  ]
139
139
  },
140
140
  "dependencies": {
141
- "react-native-device-info": "^10.12.0",
142
- "react-native-encrypted-storage": "^4.0.3"
141
+ "react-native-device-info": "^10.12.0"
143
142
  }
144
143
  }
package/src/index.ts CHANGED
@@ -3,11 +3,9 @@ import DeviceInfo, {
3
3
  getManufacturer,
4
4
  getSystemVersion,
5
5
  } from 'react-native-device-info';
6
- import EncryptedStorage from 'react-native-encrypted-storage';
7
6
 
8
- const package_version = '0.4.3';
9
- const app_version = DeviceInfo.getVersion();
10
- const EncryptedStorageTokenName = 'linkrunner-token';
7
+ const package_version = '0.5.1';
8
+ const app_version: string = DeviceInfo.getVersion();
11
9
 
12
10
  const device_data = {
13
11
  android_id: DeviceInfo.getAndroidId(),
@@ -33,97 +31,159 @@ const device_data = {
33
31
 
34
32
  const baseUrl = 'https://api.linkrunner.io';
35
33
 
36
- const init = (token: string) => {
37
- // In error message add "Click here to get your project token"
38
- if (!token)
39
- return console.error('Linkrunner needs your project token to initialize!');
40
-
41
- fetch(baseUrl + '/api/client/init', {
42
- method: 'POST',
43
- headers: {
44
- 'Accept': 'application/json',
45
- 'Content-Type': 'application/json',
46
- },
47
- body: JSON.stringify({
48
- token,
49
- package_version,
50
- app_version,
51
- device_data,
52
- platform: 'REACT_NATIVE',
53
- }),
54
- })
55
- .then((res) => res.json())
56
- .then(async (result) => {
57
- if (!result) throw new Error('No response obtained!');
34
+ interface UserData {
35
+ id: string;
36
+ name?: string;
37
+ phone?: string;
38
+ email?: string;
39
+ }
40
+
41
+ interface TriggerConfig {
42
+ trigger_deeplink?: boolean;
43
+ }
44
+
45
+ export type Response = {
46
+ ip_location_data: IPLocationData;
47
+ deeplink: string;
48
+ root_domain: boolean;
49
+ };
50
+
51
+ export interface IPLocationData {
52
+ ip: string;
53
+ city: string;
54
+ countryLong: string;
55
+ countryShort: string;
56
+ latitude: number;
57
+ longitude: number;
58
+ region: string;
59
+ timeZone: string;
60
+ zipCode: string;
61
+ }
62
+
63
+ class Linkrunner {
64
+ private token: string | null;
65
+
66
+ constructor() {
67
+ this.token = null;
68
+ }
69
+
70
+ async init(token: string): Promise<void | Response> {
71
+ if (!token) {
72
+ console.error('Linkrunner needs your project token to initialize!');
73
+ return;
74
+ }
75
+
76
+ this.token = token;
77
+ try {
78
+ const fetch_result = await fetch(baseUrl + '/api/client/init', {
79
+ method: 'POST',
80
+ headers: {
81
+ 'Accept': 'application/json',
82
+ 'Content-Type': 'application/json',
83
+ },
84
+ body: JSON.stringify({
85
+ token,
86
+ package_version,
87
+ app_version,
88
+ device_data,
89
+ platform: 'REACT_NATIVE',
90
+ }),
91
+ });
92
+
93
+ const result = await fetch_result.json();
94
+
95
+ // if (!result) throw new Error('No response obtained!');
58
96
 
59
97
  if (result?.status !== 200 && result?.status !== 201) {
60
98
  throw new Error(result?.msg);
61
99
  }
62
100
 
63
- await EncryptedStorage.setItem(EncryptedStorageTokenName, token);
64
- console.log('Linkrunner initialised successfully 🔥');
65
- })
66
- .catch((err) => {
67
- console.error('Error initializing linkrunner: ', err.message);
68
- });
69
- };
101
+ if (__DEV__) {
102
+ console.log('Linkrunner initialised successfully 🔥');
103
+ }
70
104
 
71
- type UserData = {
72
- id: string;
73
- name?: string;
74
- phone?: string;
75
- email?: string;
76
- };
105
+ return result?.data;
106
+ } catch (error) {
107
+ console.error('Error initializing linkrunner');
108
+ }
109
+ }
77
110
 
78
- const trigger = async ({
79
- data,
80
- user_data,
81
- }: {
82
- user_data: UserData;
83
- data: any;
84
- }) => {
85
- const token = await EncryptedStorage.getItem(EncryptedStorageTokenName);
86
-
87
- fetch(baseUrl + '/api/client/trigger', {
88
- method: 'POST',
89
- headers: {
90
- 'Accept': 'application/json',
91
- 'Content-Type': 'application/json',
92
- },
93
- body: JSON.stringify({
94
- token,
95
- user_data,
96
- platform: 'REACT_NATIVE',
97
- data: {
98
- ...data,
99
- device_data,
100
- },
101
- }),
102
- })
103
- .then((res) => res.json())
104
- .then((result) => {
105
- if (!result) throw new Error('No response obtained!');
111
+ async trigger({
112
+ data,
113
+ user_data,
114
+ config,
115
+ }: {
116
+ config?: TriggerConfig;
117
+ data: any;
118
+ user_data: UserData;
119
+ }): Promise<void | Response> {
120
+ if (!this.token) {
121
+ console.error('Linkrunner: Trigger failed, token not initialized');
122
+ return;
123
+ }
124
+
125
+ try {
126
+ const response = await fetch(baseUrl + '/api/client/trigger', {
127
+ method: 'POST',
128
+ headers: {
129
+ 'Accept': 'application/json',
130
+ 'Content-Type': 'application/json',
131
+ },
132
+ body: JSON.stringify({
133
+ token: this.token,
134
+ user_data,
135
+ platform: 'REACT_NATIVE',
136
+ data: {
137
+ ...data,
138
+ device_data,
139
+ },
140
+ }),
141
+ });
142
+ const result = await response.json();
106
143
 
107
144
  if (result?.status !== 200 && result?.status !== 201) {
108
145
  console.error('Linkrunner: Trigger failed');
109
146
  console.error('Linkrunner: ', result?.msg);
147
+ return;
148
+ }
149
+
150
+ if (
151
+ result?.data?.deeplink &&
152
+ config?.trigger_deeplink !== false &&
153
+ result?.data?.trigger
154
+ ) {
155
+ if (__DEV__) {
156
+ console.log('Triggering deeplink > ', result?.data?.deeplink);
157
+ }
158
+
159
+ Linking.openURL(result?.data?.deeplink).then(() => {
160
+ fetch(baseUrl + '/api/client/deeplink-triggered', {
161
+ method: 'POST',
162
+ headers: {
163
+ 'Accept': 'application/json',
164
+ 'Content-Type': 'application/json',
165
+ },
166
+ body: JSON.stringify({
167
+ token: this.token,
168
+ }),
169
+ })
170
+ .then((res) => res.json())
171
+ .catch(() => {});
172
+ });
110
173
  }
111
174
 
112
- if (!!result?.data?.deeplink) {
113
- Linking.openURL(result?.data?.deeplink);
175
+ if (__DEV__) {
176
+ console.log('Linkrunner: Trigger called 🔥');
114
177
  }
115
178
 
116
- console.log('Linkrunner: Trigger called 🔥');
117
- })
118
- .catch((err) => {
179
+ return result.data;
180
+ } catch (err: any) {
119
181
  console.error('Linkrunner: Trigger failed');
120
- console.error('Linkrunner: ', err?.msg);
121
- });
122
- };
182
+ console.error('Linkrunner: ', err.message);
183
+ }
184
+ }
185
+ }
123
186
 
124
- const linkrunner = {
125
- init,
126
- trigger,
127
- };
187
+ const linkrunner = new Linkrunner();
128
188
 
129
189
  export default linkrunner;