@letscooee/web-sdk 0.0.3 → 0.0.7
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/CHANGELOG.md +15 -2
- package/README.md +4 -2
- package/dist/constants.js +11 -2
- package/dist/index-preview.js +3 -0
- package/dist/init/visibility-listener.js +2 -2
- package/dist/models/event/event-response.js +1 -0
- package/dist/models/trigger/action/click-action-executor.js +260 -0
- package/dist/models/trigger/blocks/background.js +33 -0
- package/dist/models/trigger/blocks/border.js +49 -0
- package/dist/models/trigger/blocks/click-action.js +9 -0
- package/dist/models/trigger/blocks/color.js +48 -0
- package/dist/models/trigger/blocks/colour.js +1 -0
- package/dist/models/trigger/blocks/flex.js +1 -0
- package/dist/models/trigger/blocks/font.js +1 -0
- package/dist/models/trigger/blocks/glossy.js +25 -0
- package/dist/models/trigger/blocks/gradient.js +1 -0
- package/dist/models/trigger/blocks/image.js +1 -0
- package/dist/models/trigger/blocks/index.js +5 -0
- package/dist/models/trigger/blocks/position.js +1 -0
- package/dist/models/trigger/blocks/shadow.js +1 -0
- package/dist/models/trigger/blocks/spacing.js +1 -0
- package/dist/models/trigger/blocks/transform.js +13 -0
- package/dist/models/trigger/elements/base-element.js +50 -0
- package/dist/models/trigger/elements/base-text-element.js +1 -0
- package/dist/models/trigger/elements/group-element.js +1 -0
- package/dist/models/trigger/elements/image-element.js +26 -0
- package/dist/models/trigger/elements/index.js +4 -0
- package/dist/models/trigger/elements/shape-element.js +24 -0
- package/dist/models/trigger/elements/text-element.js +81 -0
- package/dist/models/trigger/embedded-trigger.js +26 -0
- package/dist/models/trigger/inapp/container.js +103 -0
- package/dist/models/trigger/inapp/in-app-trigger.js +32 -0
- package/dist/models/trigger/inapp/layer.js +1 -0
- package/dist/models/trigger/trigger-data.js +9 -3
- package/dist/models/trigger/trigger-helper.js +49 -0
- package/dist/renderer/base-text-renderer.js +77 -0
- package/dist/renderer/block-processor.js +234 -0
- package/dist/renderer/block-renderer.js +44 -0
- package/dist/renderer/container-renderer.js +46 -0
- package/dist/renderer/group-renderer.js +44 -0
- package/dist/renderer/iFrame-renderer.js +85 -0
- package/dist/renderer/image-renderer.js +44 -0
- package/dist/renderer/in-app-renderer.js +81 -0
- package/dist/renderer/index.js +25 -0
- package/dist/renderer/renderer.js +77 -0
- package/dist/renderer/root-container-renderer.js +43 -0
- package/dist/renderer/shape-renderer.js +39 -0
- package/dist/renderer/text-renderer.js +48 -0
- package/dist/sdk-preview.min.js +2 -0
- package/dist/sdk-preview.min.js.LICENSE.txt +8 -0
- package/dist/sdk.min.js +1 -1
- package/dist/services/http-api.service.js +30 -9
- package/dist/services/user-auth.service.js +7 -7
- package/dist/session/new-session-executor.js +2 -2
- package/dist/session/session-manager.js +1 -0
- package/dist/utils/local-storage-helper.js +22 -0
- package/dist/utils/log.js +17 -13
- package/package.json +8 -6
- package/webpack-preview.config.js +10 -0
|
@@ -37,6 +37,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
import { Constants } from '../constants';
|
|
38
38
|
import { Log } from '../utils/log';
|
|
39
39
|
import { RuntimeData } from '../utils/runtime-data';
|
|
40
|
+
import { InAppRenderer } from '../renderer/in-app-renderer';
|
|
41
|
+
import { LocalStorageHelper } from '../utils/local-storage-helper';
|
|
42
|
+
import { TriggerHelper } from '../models/trigger/trigger-helper';
|
|
40
43
|
/**
|
|
41
44
|
* A base or lower level HTTP service which simply hits the backend for given request.
|
|
42
45
|
*
|
|
@@ -75,14 +78,24 @@ var HttpAPIService = /** @class */ (function () {
|
|
|
75
78
|
*/
|
|
76
79
|
HttpAPIService.prototype.doHTTP = function (method, url, body, headers) {
|
|
77
80
|
return __awaiter(this, void 0, void 0, function () {
|
|
78
|
-
var response;
|
|
81
|
+
var browserSupportsKeepalive, xmlHttpRequest_1, response;
|
|
79
82
|
return __generator(this, function (_a) {
|
|
80
83
|
switch (_a.label) {
|
|
81
84
|
case 0:
|
|
82
85
|
if (!url.startsWith('http')) {
|
|
83
86
|
url = Constants.API_URL + url;
|
|
84
87
|
}
|
|
85
|
-
|
|
88
|
+
browserSupportsKeepalive = 'keepalive' in new Request('');
|
|
89
|
+
if (!browserSupportsKeepalive && JSON.stringify(body).includes('CE App Background')) {
|
|
90
|
+
xmlHttpRequest_1 = new XMLHttpRequest();
|
|
91
|
+
xmlHttpRequest_1.open('POST', url, false);
|
|
92
|
+
headers.forEach(function (value, key) {
|
|
93
|
+
xmlHttpRequest_1.setRequestHeader(key, value);
|
|
94
|
+
});
|
|
95
|
+
xmlHttpRequest_1.send(JSON.stringify(body));
|
|
96
|
+
return [2 /*return*/, xmlHttpRequest_1.response.json()];
|
|
97
|
+
}
|
|
98
|
+
return [4 /*yield*/, fetch(url, { method: method, body: JSON.stringify(body), headers: headers, keepalive: true })];
|
|
86
99
|
case 1:
|
|
87
100
|
response = _a.sent();
|
|
88
101
|
if (!response.ok) {
|
|
@@ -113,12 +126,20 @@ var HttpAPIService = /** @class */ (function () {
|
|
|
113
126
|
HttpAPIService.prototype.sendEvent = function (event) {
|
|
114
127
|
var headers = this.getDefaultHeaders();
|
|
115
128
|
headers.append('x-sdk-token', this.apiToken);
|
|
129
|
+
event.activeTriggers = TriggerHelper.getActiveTriggers();
|
|
130
|
+
var trigger = LocalStorageHelper.getObject(Constants.STORAGE_ACTIVE_TRIGGER);
|
|
131
|
+
if (trigger) {
|
|
132
|
+
event.trigger = trigger;
|
|
133
|
+
}
|
|
116
134
|
this.doHTTP('POST', '/v1/event/track', event, headers)
|
|
117
|
-
.then(function () {
|
|
118
|
-
Log.
|
|
135
|
+
.then(function (data) {
|
|
136
|
+
Log.log('Sent', event.name);
|
|
137
|
+
if (data.triggerData) {
|
|
138
|
+
new InAppRenderer().render(data.triggerData);
|
|
139
|
+
}
|
|
119
140
|
})
|
|
120
141
|
.catch(function (error) {
|
|
121
|
-
Log.
|
|
142
|
+
Log.error('Error sending event', error);
|
|
122
143
|
});
|
|
123
144
|
};
|
|
124
145
|
/**
|
|
@@ -131,10 +152,10 @@ var HttpAPIService = /** @class */ (function () {
|
|
|
131
152
|
headers.append('x-sdk-token', this.apiToken);
|
|
132
153
|
this.doHTTP('PUT', '/v1/user/update', data, headers)
|
|
133
154
|
.then(function () {
|
|
134
|
-
Log.
|
|
155
|
+
Log.log('Updated user profile');
|
|
135
156
|
})
|
|
136
157
|
.catch(function (error) {
|
|
137
|
-
Log.
|
|
158
|
+
Log.error('Error saving user profile', error);
|
|
138
159
|
});
|
|
139
160
|
};
|
|
140
161
|
/**
|
|
@@ -147,10 +168,10 @@ var HttpAPIService = /** @class */ (function () {
|
|
|
147
168
|
headers.append('x-sdk-token', this.apiToken);
|
|
148
169
|
this.doHTTP('POST', '/v1/session/conclude', data, headers)
|
|
149
170
|
.then(function (json) {
|
|
150
|
-
Log.
|
|
171
|
+
Log.log('Conclude Session', json);
|
|
151
172
|
})
|
|
152
173
|
.catch(function (error) {
|
|
153
|
-
Log.
|
|
174
|
+
Log.error(error);
|
|
154
175
|
});
|
|
155
176
|
};
|
|
156
177
|
/**
|
|
@@ -105,11 +105,11 @@ var UserAuthService = /** @class */ (function () {
|
|
|
105
105
|
return __generator(this, function (_a) {
|
|
106
106
|
this.sdkToken = LocalStorageHelper.getString(Constants.STORAGE_SDK_TOKEN, '');
|
|
107
107
|
if (!this.sdkToken) {
|
|
108
|
-
Log.
|
|
108
|
+
Log.log('No SDK token found in local storage');
|
|
109
109
|
}
|
|
110
110
|
this.userID = LocalStorageHelper.getString(Constants.STORAGE_USER_ID, '');
|
|
111
111
|
if (!this.userID) {
|
|
112
|
-
Log.
|
|
112
|
+
Log.log('No user ID found in local storage');
|
|
113
113
|
}
|
|
114
114
|
this.updateAPIClient();
|
|
115
115
|
return [2 /*return*/];
|
|
@@ -122,8 +122,8 @@ var UserAuthService = /** @class */ (function () {
|
|
|
122
122
|
* @private
|
|
123
123
|
*/
|
|
124
124
|
UserAuthService.prototype.updateAPIClient = function () {
|
|
125
|
-
Log.
|
|
126
|
-
Log.
|
|
125
|
+
Log.log('SDK Token:', this.sdkToken);
|
|
126
|
+
Log.log('User ID:', this.userID);
|
|
127
127
|
this.apiService.setAPIToken(this.sdkToken);
|
|
128
128
|
this.apiService.setUserId(this.userID);
|
|
129
129
|
};
|
|
@@ -138,7 +138,7 @@ var UserAuthService = /** @class */ (function () {
|
|
|
138
138
|
if (this.hasToken()) {
|
|
139
139
|
return [2 /*return*/, this.populateUserDataFromStorage()];
|
|
140
140
|
}
|
|
141
|
-
Log.
|
|
141
|
+
Log.log('Attempt to acquire SDK token');
|
|
142
142
|
return [2 /*return*/, this.getSDKTokenFromServer()];
|
|
143
143
|
});
|
|
144
144
|
});
|
|
@@ -164,12 +164,12 @@ var UserAuthService = /** @class */ (function () {
|
|
|
164
164
|
return [4 /*yield*/, responseJson];
|
|
165
165
|
case 3:
|
|
166
166
|
data = _a.sent();
|
|
167
|
-
Log.
|
|
167
|
+
Log.log('Register Device Response', data);
|
|
168
168
|
this.saveUserDataInStorage(data);
|
|
169
169
|
return [3 /*break*/, 5];
|
|
170
170
|
case 4:
|
|
171
171
|
error_1 = _a.sent();
|
|
172
|
-
Log.
|
|
172
|
+
Log.error(error_1);
|
|
173
173
|
throw error_1;
|
|
174
174
|
case 5: return [2 /*return*/];
|
|
175
175
|
}
|
|
@@ -117,7 +117,7 @@ var NewSessionExecutor = /** @class */ (function () {
|
|
|
117
117
|
return __generator(this, function (_b) {
|
|
118
118
|
switch (_b.label) {
|
|
119
119
|
case 0:
|
|
120
|
-
event = new Event('CE
|
|
120
|
+
event = new Event('CE App Installed', {});
|
|
121
121
|
_a = event;
|
|
122
122
|
return [4 /*yield*/, new DevicePropertiesCollector().get()];
|
|
123
123
|
case 1:
|
|
@@ -137,7 +137,7 @@ var NewSessionExecutor = /** @class */ (function () {
|
|
|
137
137
|
return __generator(this, function (_b) {
|
|
138
138
|
switch (_b.label) {
|
|
139
139
|
case 0:
|
|
140
|
-
event = new Event('CE
|
|
140
|
+
event = new Event('CE App Launched', {});
|
|
141
141
|
_a = event;
|
|
142
142
|
return [4 /*yield*/, new DevicePropertiesCollector().get()];
|
|
143
143
|
case 1:
|
|
@@ -116,6 +116,7 @@ var SessionManager = /** @class */ (function () {
|
|
|
116
116
|
'duration': this.getTotalDurationInSeconds(),
|
|
117
117
|
};
|
|
118
118
|
SafeHttpService.getInstance().concludeSession(data);
|
|
119
|
+
LocalStorageHelper.remove(Constants.STORAGE_ACTIVE_TRIGGER);
|
|
119
120
|
this.destroySession();
|
|
120
121
|
};
|
|
121
122
|
/**
|
|
@@ -67,6 +67,28 @@ var LocalStorageHelper = /** @class */ (function () {
|
|
|
67
67
|
LocalStorageHelper.setBoolean = function (key, value) {
|
|
68
68
|
LocalStorageHelper.setString(key, JSON.stringify(value));
|
|
69
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* Get value from local storage.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} key key provided for the stored value.
|
|
74
|
+
* @return {any} value stored.
|
|
75
|
+
*/
|
|
76
|
+
LocalStorageHelper.getObject = function (key) {
|
|
77
|
+
try {
|
|
78
|
+
return JSON.parse(LocalStorageHelper.getString(key, ''));
|
|
79
|
+
}
|
|
80
|
+
catch (ignored) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Set value in local storage as json string.
|
|
86
|
+
* @param {string} key key provided for the storing value.
|
|
87
|
+
* @param {any} value value stored.
|
|
88
|
+
*/
|
|
89
|
+
LocalStorageHelper.setObject = function (key, value) {
|
|
90
|
+
LocalStorageHelper.setString(key, JSON.stringify(value));
|
|
91
|
+
};
|
|
70
92
|
/**
|
|
71
93
|
* Remove the specified key from storage.
|
|
72
94
|
*
|
package/dist/utils/log.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
2
|
-
for (var i = 0,
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
+
if (ar || !(i in from)) {
|
|
4
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
+
ar[i] = from[i];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
5
9
|
};
|
|
6
10
|
import { Constants } from '../constants';
|
|
7
11
|
/**
|
|
@@ -16,38 +20,38 @@ var Log = /** @class */ (function () {
|
|
|
16
20
|
/**
|
|
17
21
|
* Log info messages.
|
|
18
22
|
*
|
|
19
|
-
* @param {any
|
|
23
|
+
* @param {any} messages
|
|
20
24
|
*/
|
|
21
|
-
Log.
|
|
25
|
+
Log.log = function () {
|
|
22
26
|
var messages = [];
|
|
23
27
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
24
28
|
messages[_i] = arguments[_i];
|
|
25
29
|
}
|
|
26
|
-
console.log.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages));
|
|
30
|
+
console.log.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages, false));
|
|
27
31
|
};
|
|
28
32
|
/**
|
|
29
33
|
* Log error messages.
|
|
30
34
|
*
|
|
31
|
-
* @param {any
|
|
35
|
+
* @param {any} messages
|
|
32
36
|
*/
|
|
33
|
-
Log.
|
|
37
|
+
Log.error = function () {
|
|
34
38
|
var messages = [];
|
|
35
39
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
36
40
|
messages[_i] = arguments[_i];
|
|
37
41
|
}
|
|
38
|
-
console.error.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages));
|
|
42
|
+
console.error.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages, false));
|
|
39
43
|
};
|
|
40
44
|
/**
|
|
41
45
|
* Log warning messages.
|
|
42
46
|
*
|
|
43
|
-
* @param {any
|
|
47
|
+
* @param {any} messages
|
|
44
48
|
*/
|
|
45
|
-
Log.
|
|
49
|
+
Log.warning = function () {
|
|
46
50
|
var messages = [];
|
|
47
51
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
48
52
|
messages[_i] = arguments[_i];
|
|
49
53
|
}
|
|
50
|
-
console.warn.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages));
|
|
54
|
+
console.warn.apply(console, __spreadArray([Constants.LOG_PREFIX, ':'], messages, false));
|
|
51
55
|
};
|
|
52
56
|
return Log;
|
|
53
57
|
}());
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letscooee/web-sdk",
|
|
3
3
|
"description": "Hyperpersonalised Mobile/Web App Re-Engagement via Machine Learning",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.7",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"lint": "eslint 'src/**'",
|
|
7
7
|
"prepare": "npm run build",
|
|
8
8
|
"build": "tsc",
|
|
9
|
-
"build:production": "
|
|
9
|
+
"build:production": "webpack && webpack --config ./webpack-preview.config.js",
|
|
10
10
|
"serve:old-school": "webpack serve",
|
|
11
11
|
"preversion": "git add CHANGELOG.md src/constants.ts",
|
|
12
12
|
"version": "npm run build:production",
|
|
@@ -31,18 +31,20 @@
|
|
|
31
31
|
"homepage": "https://github.com/letscooee/cooee-web-sdk#readme",
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/ua-parser-js": "^0.7.36",
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
35
|
-
"@typescript-eslint/parser": "^
|
|
36
|
-
"eslint": "^7.
|
|
34
|
+
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
|
35
|
+
"@typescript-eslint/parser": "^5.10.0",
|
|
36
|
+
"eslint": "^8.7.0",
|
|
37
37
|
"eslint-config-google": "^0.14.0",
|
|
38
38
|
"ts-loader": "^9.2.4",
|
|
39
|
-
"typescript": "^4.
|
|
39
|
+
"typescript": "^4.4.4",
|
|
40
40
|
"webpack": "^5.47.1",
|
|
41
41
|
"webpack-cli": "^4.7.2",
|
|
42
42
|
"webpack-dev-server": "^4.1.1"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"bson-objectid": "^2.0.1",
|
|
46
|
+
"hex-rgb": "^5.0.0",
|
|
47
|
+
"hex-to-rgba": "^2.0.1",
|
|
46
48
|
"rxjs": "^7.3.0",
|
|
47
49
|
"ua-parser-js": "^0.7.28"
|
|
48
50
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const config = require('./webpack.config');
|
|
2
|
+
config.entry = './src/index-preview.ts';
|
|
3
|
+
config.output.library = {
|
|
4
|
+
name: 'CooeePreview',
|
|
5
|
+
type: 'assign',
|
|
6
|
+
export: 'default',
|
|
7
|
+
};
|
|
8
|
+
config.output.filename = 'sdk-preview.min.js';
|
|
9
|
+
|
|
10
|
+
module.exports = config;
|