rn-linkrunner 0.4.3 → 0.5.0

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.0';
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,88 @@ 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
+ 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
+ fetch(baseUrl + '/api/client/init', {
46
+ method: 'POST',
47
+ headers: {
48
+ 'Accept': 'application/json',
49
+ 'Content-Type': 'application/json'
50
+ },
51
+ body: JSON.stringify({
52
+ token,
53
+ package_version,
54
+ app_version,
55
+ device_data,
56
+ platform: 'REACT_NATIVE'
57
+ })
58
+ }).then(res => res.json()).then(result => {
59
+ if (!result) throw new Error('No response obtained!');
60
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
61
+ throw new Error(result === null || result === void 0 ? void 0 : result.msg);
83
62
  }
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);
63
+ if (__DEV__) {
64
+ console.log('Linkrunner initialised successfully 🔥');
65
+ }
66
+ }).catch(err => {
67
+ console.error('Error initializing linkrunner: ', err.message);
68
+ });
69
+ }
70
+ async trigger({
71
+ data,
72
+ user_data,
73
+ config
74
+ }) {
75
+ if (!this.token) {
76
+ console.error('Linkrunner: Trigger failed, token not initialized');
77
+ return;
91
78
  }
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);
79
+ try {
80
+ var _result$data;
81
+ const response = await fetch(baseUrl + '/api/client/trigger', {
82
+ method: 'POST',
83
+ headers: {
84
+ 'Accept': 'application/json',
85
+ 'Content-Type': 'application/json'
86
+ },
87
+ body: JSON.stringify({
88
+ token: this.token,
89
+ user_data,
90
+ platform: 'REACT_NATIVE',
91
+ data: {
92
+ ...data,
93
+ device_data
94
+ }
95
+ })
96
+ });
97
+ const result = await response.json();
98
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
99
+ console.error('Linkrunner: Trigger failed');
100
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
101
+ return;
102
+ }
103
+ 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) {
104
+ var _result$data2;
105
+ _reactNative.Linking.openURL(result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.deeplink);
106
+ }
107
+ if (__DEV__) {
108
+ console.log('Linkrunner: Trigger called 🔥');
109
+ }
110
+ return result.data;
111
+ } catch (err) {
112
+ console.error('Linkrunner: Trigger failed');
113
+ console.error('Linkrunner: ', err.message);
95
114
  }
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
- };
115
+ }
116
+ }
117
+ const linkrunner = new Linkrunner();
106
118
  var _default = exports.default = linkrunner;
107
119
  //# 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","method","headers","body","JSON","stringify","platform","then","res","json","result","Error","status","msg","__DEV__","log","catch","err","message","trigger","data","user_data","config","_result$data","response","deeplink","trigger_deeplink","_result$data2","Linking","openURL","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.0';
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,88 @@ 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
+ 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
+ fetch(baseUrl + '/api/client/init', {
38
+ method: 'POST',
39
+ headers: {
40
+ 'Accept': 'application/json',
41
+ 'Content-Type': 'application/json'
42
+ },
43
+ body: JSON.stringify({
44
+ token,
45
+ package_version,
46
+ app_version,
47
+ device_data,
48
+ platform: 'REACT_NATIVE'
49
+ })
50
+ }).then(res => res.json()).then(result => {
51
+ if (!result) throw new Error('No response obtained!');
52
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
53
+ throw new Error(result === null || result === void 0 ? void 0 : result.msg);
74
54
  }
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);
55
+ if (__DEV__) {
56
+ console.log('Linkrunner initialised successfully 🔥');
57
+ }
58
+ }).catch(err => {
59
+ console.error('Error initializing linkrunner: ', err.message);
60
+ });
61
+ }
62
+ async trigger({
63
+ data,
64
+ user_data,
65
+ config
66
+ }) {
67
+ if (!this.token) {
68
+ console.error('Linkrunner: Trigger failed, token not initialized');
69
+ return;
82
70
  }
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);
71
+ try {
72
+ var _result$data;
73
+ const response = await fetch(baseUrl + '/api/client/trigger', {
74
+ method: 'POST',
75
+ headers: {
76
+ 'Accept': 'application/json',
77
+ 'Content-Type': 'application/json'
78
+ },
79
+ body: JSON.stringify({
80
+ token: this.token,
81
+ user_data,
82
+ platform: 'REACT_NATIVE',
83
+ data: {
84
+ ...data,
85
+ device_data
86
+ }
87
+ })
88
+ });
89
+ const result = await response.json();
90
+ if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
91
+ console.error('Linkrunner: Trigger failed');
92
+ console.error('Linkrunner: ', result === null || result === void 0 ? void 0 : result.msg);
93
+ return;
94
+ }
95
+ 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) {
96
+ var _result$data2;
97
+ Linking.openURL(result === null || result === void 0 || (_result$data2 = result.data) === null || _result$data2 === void 0 ? void 0 : _result$data2.deeplink);
98
+ }
99
+ if (__DEV__) {
100
+ console.log('Linkrunner: Trigger called 🔥');
101
+ }
102
+ return result.data;
103
+ } catch (err) {
104
+ console.error('Linkrunner: Trigger failed');
105
+ console.error('Linkrunner: ', err.message);
86
106
  }
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
- };
107
+ }
108
+ }
109
+ const linkrunner = new Linkrunner();
97
110
  export default linkrunner;
98
111
  //# 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","method","headers","body","JSON","stringify","platform","then","res","json","result","Error","status","msg","__DEV__","log","catch","err","message","trigger","data","user_data","config","_result$data","response","deeplink","trigger_deeplink","_result$data2","openURL","linkrunner"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -1,15 +1,22 @@
1
- type UserData = {
1
+ interface UserData {
2
2
  id: string;
3
3
  name?: string;
4
4
  phone?: string;
5
5
  email?: string;
6
- };
7
- declare const linkrunner: {
8
- init: (token: string) => void;
9
- trigger: ({ data, user_data, }: {
10
- user_data: UserData;
6
+ }
7
+ interface TriggerConfig {
8
+ trigger_deeplink?: boolean;
9
+ }
10
+ declare class Linkrunner {
11
+ private token;
12
+ constructor();
13
+ init(token: string): void;
14
+ trigger({ data, user_data, config, }: {
15
+ config?: TriggerConfig;
11
16
  data: any;
12
- }) => Promise<void>;
13
- };
17
+ user_data: UserData;
18
+ }): Promise<void>;
19
+ }
20
+ declare const linkrunner: Linkrunner;
14
21
  export default linkrunner;
15
22
  //# 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,cAAM,UAAU;IACd,OAAO,CAAC,KAAK,CAAgB;;IAM7B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAsCnB,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,CAAC;CA6ClB;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.0",
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.0';
8
+ const app_version: string = DeviceInfo.getVersion();
11
9
 
12
10
  const device_data = {
13
11
  android_id: DeviceInfo.getAndroidId(),
@@ -33,97 +31,117 @@ 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!');
58
-
59
- if (result?.status !== 200 && result?.status !== 201) {
60
- throw new Error(result?.msg);
61
- }
62
-
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
- };
70
-
71
- type UserData = {
34
+ interface UserData {
72
35
  id: string;
73
36
  name?: string;
74
37
  phone?: string;
75
38
  email?: string;
76
- };
39
+ }
77
40
 
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,
41
+ interface TriggerConfig {
42
+ trigger_deeplink?: boolean;
43
+ }
44
+
45
+ class Linkrunner {
46
+ private token: string | null;
47
+
48
+ constructor() {
49
+ this.token = null;
50
+ }
51
+
52
+ init(token: string): void {
53
+ if (!token) {
54
+ console.error('Linkrunner needs your project token to initialize!');
55
+ return;
56
+ }
57
+
58
+ this.token = token;
59
+ fetch(baseUrl + '/api/client/init', {
60
+ method: 'POST',
61
+ headers: {
62
+ 'Accept': 'application/json',
63
+ 'Content-Type': 'application/json',
100
64
  },
101
- }),
102
- })
103
- .then((res) => res.json())
104
- .then((result) => {
105
- if (!result) throw new Error('No response obtained!');
65
+ body: JSON.stringify({
66
+ token,
67
+ package_version,
68
+ app_version,
69
+ device_data,
70
+ platform: 'REACT_NATIVE',
71
+ }),
72
+ })
73
+ .then((res) => res.json())
74
+ .then((result) => {
75
+ if (!result) throw new Error('No response obtained!');
76
+
77
+ if (result?.status !== 200 && result?.status !== 201) {
78
+ throw new Error(result?.msg);
79
+ }
80
+
81
+ if (__DEV__) {
82
+ console.log('Linkrunner initialised successfully 🔥');
83
+ }
84
+ })
85
+ .catch((err) => {
86
+ console.error('Error initializing linkrunner: ', err.message);
87
+ });
88
+ }
89
+
90
+ async trigger({
91
+ data,
92
+ user_data,
93
+ config,
94
+ }: {
95
+ config?: TriggerConfig;
96
+ data: any;
97
+ user_data: UserData;
98
+ }): Promise<void> {
99
+ if (!this.token) {
100
+ console.error('Linkrunner: Trigger failed, token not initialized');
101
+ return;
102
+ }
103
+
104
+ try {
105
+ const response = await fetch(baseUrl + '/api/client/trigger', {
106
+ method: 'POST',
107
+ headers: {
108
+ 'Accept': 'application/json',
109
+ 'Content-Type': 'application/json',
110
+ },
111
+ body: JSON.stringify({
112
+ token: this.token,
113
+ user_data,
114
+ platform: 'REACT_NATIVE',
115
+ data: {
116
+ ...data,
117
+ device_data,
118
+ },
119
+ }),
120
+ });
121
+ const result = await response.json();
106
122
 
107
123
  if (result?.status !== 200 && result?.status !== 201) {
108
124
  console.error('Linkrunner: Trigger failed');
109
125
  console.error('Linkrunner: ', result?.msg);
126
+ return;
110
127
  }
111
128
 
112
- if (!!result?.data?.deeplink) {
129
+ if (result?.data?.deeplink && config?.trigger_deeplink !== false) {
113
130
  Linking.openURL(result?.data?.deeplink);
114
131
  }
115
132
 
116
- console.log('Linkrunner: Trigger called 🔥');
117
- })
118
- .catch((err) => {
133
+ if (__DEV__) {
134
+ console.log('Linkrunner: Trigger called 🔥');
135
+ }
136
+
137
+ return result.data;
138
+ } catch (err: any) {
119
139
  console.error('Linkrunner: Trigger failed');
120
- console.error('Linkrunner: ', err?.msg);
121
- });
122
- };
140
+ console.error('Linkrunner: ', err.message);
141
+ }
142
+ }
143
+ }
123
144
 
124
- const linkrunner = {
125
- init,
126
- trigger,
127
- };
145
+ const linkrunner = new Linkrunner();
128
146
 
129
147
  export default linkrunner;