rn-linkrunner 0.4.2 → 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 +19 -21
- package/lib/commonjs/index.js +80 -66
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +80 -65
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +15 -8
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/index.ts +97 -77
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
|
|
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
|
|
12
|
+
npm install react-native-device-info
|
|
13
13
|
|
|
14
14
|
or
|
|
15
15
|
|
|
16
|
-
yarn add react-native-device-info
|
|
16
|
+
yarn add react-native-device-info
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
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
|
|
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,29 +45,29 @@ 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
|
|
48
|
+
Call this function once your onboarding is completed and the navigation stack can be accessed by a deep link:
|
|
51
49
|
|
|
52
|
-
```
|
|
50
|
+
```jsx
|
|
53
51
|
import linkrunner from 'rn-linkrunner';
|
|
54
52
|
|
|
55
53
|
const onTrigger = () => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
|
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
72
|
## License
|
|
75
73
|
|
package/lib/commonjs/index.js
CHANGED
|
@@ -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.
|
|
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,71 +32,88 @@ const device_data = {
|
|
|
35
32
|
version: _reactNativeDeviceInfo.default.getVersion()
|
|
36
33
|
};
|
|
37
34
|
const baseUrl = 'https://api.linkrunner.io';
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'
|
|
45
|
-
|
|
46
|
-
},
|
|
47
|
-
body: JSON.stringify({
|
|
48
|
-
token,
|
|
49
|
-
package_version,
|
|
50
|
-
app_version,
|
|
51
|
-
device_data
|
|
52
|
-
})
|
|
53
|
-
}).then(res => res.json()).then(async result => {
|
|
54
|
-
if (!result) throw new Error('No response obtained!');
|
|
55
|
-
if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
|
|
56
|
-
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;
|
|
57
43
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
'
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
token,
|
|
77
|
-
user_data,
|
|
78
|
-
data: {
|
|
79
|
-
...data,
|
|
80
|
-
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);
|
|
81
62
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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;
|
|
89
78
|
}
|
|
90
|
-
|
|
91
|
-
var _result$
|
|
92
|
-
|
|
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);
|
|
93
114
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
console.error('Linkrunner: ', err === null || err === void 0 ? void 0 : err.msg);
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
const linkrunner = {
|
|
101
|
-
init,
|
|
102
|
-
trigger
|
|
103
|
-
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const linkrunner = new Linkrunner();
|
|
104
118
|
var _default = exports.default = linkrunner;
|
|
105
119
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_interopRequireWildcard","
|
|
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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"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Linking } from 'react-native';
|
|
2
2
|
import DeviceInfo, { getManufacturer, getSystemVersion } from 'react-native-device-info';
|
|
3
|
-
|
|
4
|
-
const package_version = '0.4.2';
|
|
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,71 +24,88 @@ const device_data = {
|
|
|
26
24
|
version: DeviceInfo.getVersion()
|
|
27
25
|
};
|
|
28
26
|
const baseUrl = 'https://api.linkrunner.io';
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
body: JSON.stringify({
|
|
39
|
-
token,
|
|
40
|
-
package_version,
|
|
41
|
-
app_version,
|
|
42
|
-
device_data
|
|
43
|
-
})
|
|
44
|
-
}).then(res => res.json()).then(async result => {
|
|
45
|
-
if (!result) throw new Error('No response obtained!');
|
|
46
|
-
if ((result === null || result === void 0 ? void 0 : result.status) !== 200 && (result === null || result === void 0 ? void 0 : result.status) !== 201) {
|
|
47
|
-
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;
|
|
48
35
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
'
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
token,
|
|
68
|
-
user_data,
|
|
69
|
-
data: {
|
|
70
|
-
...data,
|
|
71
|
-
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);
|
|
72
54
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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;
|
|
80
70
|
}
|
|
81
|
-
|
|
82
|
-
var _result$
|
|
83
|
-
|
|
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);
|
|
84
106
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
console.error('Linkrunner: ', err === null || err === void 0 ? void 0 : err.msg);
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
const linkrunner = {
|
|
92
|
-
init,
|
|
93
|
-
trigger
|
|
94
|
-
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const linkrunner = new Linkrunner();
|
|
95
110
|
export default linkrunner;
|
|
96
111
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Linking","DeviceInfo","getManufacturer","getSystemVersion","
|
|
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
|
-
|
|
1
|
+
interface UserData {
|
|
2
2
|
id: string;
|
|
3
3
|
name?: string;
|
|
4
4
|
phone?: string;
|
|
5
5
|
email?: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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":"
|
|
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.
|
|
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.
|
|
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,95 +31,117 @@ const device_data = {
|
|
|
33
31
|
|
|
34
32
|
const baseUrl = 'https://api.linkrunner.io';
|
|
35
33
|
|
|
36
|
-
|
|
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
|
-
}),
|
|
53
|
-
})
|
|
54
|
-
.then((res) => res.json())
|
|
55
|
-
.then(async (result) => {
|
|
56
|
-
if (!result) throw new Error('No response obtained!');
|
|
57
|
-
|
|
58
|
-
if (result?.status !== 200 && result?.status !== 201) {
|
|
59
|
-
throw new Error(result?.msg);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
await EncryptedStorage.setItem(EncryptedStorageTokenName, token);
|
|
63
|
-
console.log('Linkrunner initialised successfully 🔥');
|
|
64
|
-
})
|
|
65
|
-
.catch((err) => {
|
|
66
|
-
console.error('Error initializing linkrunner: ', err.message);
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
type UserData = {
|
|
34
|
+
interface UserData {
|
|
71
35
|
id: string;
|
|
72
36
|
name?: string;
|
|
73
37
|
phone?: string;
|
|
74
38
|
email?: string;
|
|
75
|
-
}
|
|
39
|
+
}
|
|
76
40
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
'
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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',
|
|
98
64
|
},
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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();
|
|
104
122
|
|
|
105
123
|
if (result?.status !== 200 && result?.status !== 201) {
|
|
106
124
|
console.error('Linkrunner: Trigger failed');
|
|
107
125
|
console.error('Linkrunner: ', result?.msg);
|
|
126
|
+
return;
|
|
108
127
|
}
|
|
109
128
|
|
|
110
|
-
if (
|
|
129
|
+
if (result?.data?.deeplink && config?.trigger_deeplink !== false) {
|
|
111
130
|
Linking.openURL(result?.data?.deeplink);
|
|
112
131
|
}
|
|
113
132
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
133
|
+
if (__DEV__) {
|
|
134
|
+
console.log('Linkrunner: Trigger called 🔥');
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return result.data;
|
|
138
|
+
} catch (err: any) {
|
|
117
139
|
console.error('Linkrunner: Trigger failed');
|
|
118
|
-
console.error('Linkrunner: ', err
|
|
119
|
-
}
|
|
120
|
-
}
|
|
140
|
+
console.error('Linkrunner: ', err.message);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
121
144
|
|
|
122
|
-
const linkrunner =
|
|
123
|
-
init,
|
|
124
|
-
trigger,
|
|
125
|
-
};
|
|
145
|
+
const linkrunner = new Linkrunner();
|
|
126
146
|
|
|
127
147
|
export default linkrunner;
|