@cuemath/web-utils 1.0.29-beta.3 → 1.0.29-beta.4
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/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/instrumentation/index.d.ts +5 -0
- package/dist/cjs/constants/instrumentation/index.js +9 -0
- package/dist/cjs/constants/instrumentation/index.js.map +1 -0
- package/dist/cjs/growth-source/index.js +3 -96
- package/dist/cjs/growth-source/index.js.map +1 -1
- package/dist/cjs/growth-source/types.d.ts +2 -0
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.js +1 -0
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/constants/instrumentation/index.d.ts +5 -0
- package/dist/esm/constants/instrumentation/index.js +6 -0
- package/dist/esm/constants/instrumentation/index.js.map +1 -0
- package/dist/esm/growth-source/index.js +3 -88
- package/dist/esm/growth-source/index.js.map +1 -1
- package/dist/esm/growth-source/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./country"), exports);
|
|
18
18
|
__exportStar(require("./date-time"), exports);
|
|
19
19
|
__exportStar(require("./currency-symbols"), exports);
|
|
20
|
+
__exportStar(require("./instrumentation"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,qDAAmC;AACnC,oDAAkC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.REVENUE_CHANNEL = exports.REFERRAL_PAGE_PATH = void 0;
|
|
4
|
+
exports.REFERRAL_PAGE_PATH = ['gift/invite/', 'gift/referral/'];
|
|
5
|
+
exports.REVENUE_CHANNEL = {
|
|
6
|
+
REFERRAL: 'referral',
|
|
7
|
+
ORGANIC: 'organic',
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/constants/instrumentation/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAExD,QAAA,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC"}
|
|
@@ -4,12 +4,6 @@ exports.setLandingPage = exports.setPlatformChannel = exports.setFirstPage = exp
|
|
|
4
4
|
const cookie_1 = require("../cookie");
|
|
5
5
|
const url_parser_1 = require("../url-parser");
|
|
6
6
|
const SOURCE_DETAILS_COOKIE = 'source_details';
|
|
7
|
-
const UTM_PARAMS = [
|
|
8
|
-
'utm_source',
|
|
9
|
-
'utm_medium',
|
|
10
|
-
'utm_campaign',
|
|
11
|
-
'utm_term',
|
|
12
|
-
];
|
|
13
7
|
const readSourceCookie = () => {
|
|
14
8
|
const sourceDetails = (0, cookie_1.getCookie)(SOURCE_DETAILS_COOKIE);
|
|
15
9
|
return sourceDetails ? JSON.parse(decodeURIComponent(sourceDetails)) : undefined;
|
|
@@ -35,28 +29,12 @@ const updateSourceCookie = (sourceDetail) => {
|
|
|
35
29
|
};
|
|
36
30
|
writeSourceCookie(updatedDetails);
|
|
37
31
|
};
|
|
38
|
-
const getRevenueChannel = (platform
|
|
32
|
+
const getRevenueChannel = (platform) => {
|
|
39
33
|
let revenueChannel = 'unknown';
|
|
40
34
|
// set defaults for WEBSITE and ASTRO
|
|
41
35
|
if (platform === 'website') {
|
|
42
36
|
revenueChannel = 'organic';
|
|
43
37
|
}
|
|
44
|
-
if (utmSource) {
|
|
45
|
-
switch (true) {
|
|
46
|
-
case /^affiliate-/.test(utmSource):
|
|
47
|
-
revenueChannel = 'affiliate';
|
|
48
|
-
break;
|
|
49
|
-
case /^offline-/.test(utmSource):
|
|
50
|
-
revenueChannel = 'offline';
|
|
51
|
-
break;
|
|
52
|
-
case /^referral-/.test(utmSource):
|
|
53
|
-
revenueChannel = 'referral';
|
|
54
|
-
break;
|
|
55
|
-
case /^performance-/.test(utmSource):
|
|
56
|
-
revenueChannel = 'performance';
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
38
|
return revenueChannel;
|
|
61
39
|
};
|
|
62
40
|
/*
|
|
@@ -75,86 +53,26 @@ const getFlow = (platform, experiments) => {
|
|
|
75
53
|
}
|
|
76
54
|
return flow;
|
|
77
55
|
};
|
|
78
|
-
const getUTMParams = () => {
|
|
79
|
-
if (typeof window === undefined)
|
|
80
|
-
return {};
|
|
81
|
-
const search = new URLSearchParams(window.location.search);
|
|
82
|
-
const utmParams = UTM_PARAMS.reduce((acc, param) => {
|
|
83
|
-
const utmParam = search.get(param);
|
|
84
|
-
if (utmParam) {
|
|
85
|
-
acc[param] = utmParam;
|
|
86
|
-
}
|
|
87
|
-
return acc;
|
|
88
|
-
}, {});
|
|
89
|
-
return utmParams;
|
|
90
|
-
};
|
|
91
56
|
const getFirstPage = () => {
|
|
92
57
|
if (typeof window === undefined)
|
|
93
58
|
return '';
|
|
94
59
|
return (0, url_parser_1.removeHrefLangFromPath)(window.location.pathname);
|
|
95
60
|
};
|
|
96
|
-
/* TODO: Align Marketing Team on UTM source convention
|
|
97
|
-
affiliate-<channel>
|
|
98
|
-
performance-<channel>
|
|
99
|
-
organic-<channel>
|
|
100
|
-
offline-<channel>
|
|
101
|
-
*/
|
|
102
|
-
const getChannel = (utmSource) => {
|
|
103
|
-
// TODO: UTM source patter for FB, GOOGLE...
|
|
104
|
-
if (!utmSource)
|
|
105
|
-
return '';
|
|
106
|
-
let channel = '';
|
|
107
|
-
if (utmSource) {
|
|
108
|
-
switch (true) {
|
|
109
|
-
case /^affiliate-/.test(utmSource):
|
|
110
|
-
case /^offline-/.test(utmSource):
|
|
111
|
-
case /^referral-/.test(utmSource):
|
|
112
|
-
case /^performance-/.test(utmSource):
|
|
113
|
-
channel = utmSource.split('-')[1];
|
|
114
|
-
break;
|
|
115
|
-
default:
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return channel;
|
|
120
|
-
};
|
|
121
61
|
/*
|
|
122
62
|
Set Static Source Details of user on Visit of Platform
|
|
123
63
|
*/
|
|
124
64
|
const initSourceDetails = async ({ platform, experiments, // only for website.
|
|
125
65
|
flow, affiliateChannel, offlineChannel, organicChannel, performanceChannel, revenueChannel, salesProcess, guestId, landingPage, }) => {
|
|
126
|
-
const utmParams = getUTMParams();
|
|
127
|
-
const { utm_source: utmSource } = utmParams;
|
|
128
|
-
const leadChannel = getChannel(utmSource);
|
|
129
66
|
/*
|
|
130
67
|
source cookie was added in cross subdomain for few days initially,
|
|
131
68
|
which was later changed to subdomain specific. Now to sending older cookie to backend, removing older cookie
|
|
132
69
|
*/
|
|
133
70
|
(0, cookie_1.removeCookie)(SOURCE_DETAILS_COOKIE, true);
|
|
134
|
-
revenueChannel = revenueChannel || getRevenueChannel(platform
|
|
135
|
-
if (utmSource) {
|
|
136
|
-
switch (revenueChannel) {
|
|
137
|
-
case 'affiliate':
|
|
138
|
-
affiliateChannel = affiliateChannel || leadChannel;
|
|
139
|
-
break;
|
|
140
|
-
case 'offline':
|
|
141
|
-
offlineChannel = offlineChannel || leadChannel;
|
|
142
|
-
break;
|
|
143
|
-
case 'organic':
|
|
144
|
-
organicChannel = organicChannel || leadChannel;
|
|
145
|
-
break;
|
|
146
|
-
case 'performance':
|
|
147
|
-
performanceChannel = performanceChannel || leadChannel;
|
|
148
|
-
break;
|
|
149
|
-
default:
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
71
|
+
revenueChannel = revenueChannel || getRevenueChannel(platform);
|
|
153
72
|
if (!(0, exports.isSourcePresent)()) {
|
|
154
73
|
const sourceDetails = {
|
|
155
74
|
platform_channel: platform,
|
|
156
75
|
experiment_dict: experiments,
|
|
157
|
-
utm_params: utmParams,
|
|
158
76
|
flow: flow || getFlow(platform, experiments),
|
|
159
77
|
affiliate_channel: affiliateChannel,
|
|
160
78
|
offline_channel: offlineChannel,
|
|
@@ -169,22 +87,11 @@ flow, affiliateChannel, offlineChannel, organicChannel, performanceChannel, reve
|
|
|
169
87
|
writeSourceCookie(sourceDetails);
|
|
170
88
|
}
|
|
171
89
|
else {
|
|
172
|
-
|
|
90
|
+
const updatedSource = {
|
|
173
91
|
experiment_dict: experiments,
|
|
174
92
|
flow: flow || getFlow(platform, experiments),
|
|
175
93
|
guest_id: guestId,
|
|
176
94
|
};
|
|
177
|
-
if (utmSource) {
|
|
178
|
-
updatedSource = {
|
|
179
|
-
...updatedSource,
|
|
180
|
-
utm_params: utmParams,
|
|
181
|
-
affiliate_channel: affiliateChannel,
|
|
182
|
-
offline_channel: offlineChannel,
|
|
183
|
-
organic_channel: organicChannel,
|
|
184
|
-
performance_channel: performanceChannel,
|
|
185
|
-
revenue_channel: revenueChannel,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
95
|
updateSourceCookie(updatedSource);
|
|
189
96
|
}
|
|
190
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/growth-source/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/growth-source/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/constants/instrumentation/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC"}
|
|
@@ -21,12 +21,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
import { createCookie, getCookie, removeCookie } from '../cookie';
|
|
22
22
|
import { removeHrefLangFromPath } from '../url-parser';
|
|
23
23
|
const SOURCE_DETAILS_COOKIE = 'source_details';
|
|
24
|
-
const UTM_PARAMS = [
|
|
25
|
-
'utm_source',
|
|
26
|
-
'utm_medium',
|
|
27
|
-
'utm_campaign',
|
|
28
|
-
'utm_term',
|
|
29
|
-
];
|
|
30
24
|
export const readSourceCookie = () => {
|
|
31
25
|
const sourceDetails = getCookie(SOURCE_DETAILS_COOKIE);
|
|
32
26
|
return sourceDetails ? JSON.parse(decodeURIComponent(sourceDetails)) : undefined;
|
|
@@ -46,28 +40,12 @@ const updateSourceCookie = (sourceDetail) => {
|
|
|
46
40
|
? Object.assign(Object.assign({}, restAttributes), sourceDetail) : Object.assign(Object.assign({}, current), sourceDetail) });
|
|
47
41
|
writeSourceCookie(updatedDetails);
|
|
48
42
|
};
|
|
49
|
-
const getRevenueChannel = (platform
|
|
43
|
+
const getRevenueChannel = (platform) => {
|
|
50
44
|
let revenueChannel = 'unknown';
|
|
51
45
|
// set defaults for WEBSITE and ASTRO
|
|
52
46
|
if (platform === 'website') {
|
|
53
47
|
revenueChannel = 'organic';
|
|
54
48
|
}
|
|
55
|
-
if (utmSource) {
|
|
56
|
-
switch (true) {
|
|
57
|
-
case /^affiliate-/.test(utmSource):
|
|
58
|
-
revenueChannel = 'affiliate';
|
|
59
|
-
break;
|
|
60
|
-
case /^offline-/.test(utmSource):
|
|
61
|
-
revenueChannel = 'offline';
|
|
62
|
-
break;
|
|
63
|
-
case /^referral-/.test(utmSource):
|
|
64
|
-
revenueChannel = 'referral';
|
|
65
|
-
break;
|
|
66
|
-
case /^performance-/.test(utmSource):
|
|
67
|
-
revenueChannel = 'performance';
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
49
|
return revenueChannel;
|
|
72
50
|
};
|
|
73
51
|
/*
|
|
@@ -86,86 +64,26 @@ const getFlow = (platform, experiments) => {
|
|
|
86
64
|
}
|
|
87
65
|
return flow;
|
|
88
66
|
};
|
|
89
|
-
const getUTMParams = () => {
|
|
90
|
-
if (typeof window === undefined)
|
|
91
|
-
return {};
|
|
92
|
-
const search = new URLSearchParams(window.location.search);
|
|
93
|
-
const utmParams = UTM_PARAMS.reduce((acc, param) => {
|
|
94
|
-
const utmParam = search.get(param);
|
|
95
|
-
if (utmParam) {
|
|
96
|
-
acc[param] = utmParam;
|
|
97
|
-
}
|
|
98
|
-
return acc;
|
|
99
|
-
}, {});
|
|
100
|
-
return utmParams;
|
|
101
|
-
};
|
|
102
67
|
const getFirstPage = () => {
|
|
103
68
|
if (typeof window === undefined)
|
|
104
69
|
return '';
|
|
105
70
|
return removeHrefLangFromPath(window.location.pathname);
|
|
106
71
|
};
|
|
107
|
-
/* TODO: Align Marketing Team on UTM source convention
|
|
108
|
-
affiliate-<channel>
|
|
109
|
-
performance-<channel>
|
|
110
|
-
organic-<channel>
|
|
111
|
-
offline-<channel>
|
|
112
|
-
*/
|
|
113
|
-
const getChannel = (utmSource) => {
|
|
114
|
-
// TODO: UTM source patter for FB, GOOGLE...
|
|
115
|
-
if (!utmSource)
|
|
116
|
-
return '';
|
|
117
|
-
let channel = '';
|
|
118
|
-
if (utmSource) {
|
|
119
|
-
switch (true) {
|
|
120
|
-
case /^affiliate-/.test(utmSource):
|
|
121
|
-
case /^offline-/.test(utmSource):
|
|
122
|
-
case /^referral-/.test(utmSource):
|
|
123
|
-
case /^performance-/.test(utmSource):
|
|
124
|
-
channel = utmSource.split('-')[1];
|
|
125
|
-
break;
|
|
126
|
-
default:
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return channel;
|
|
131
|
-
};
|
|
132
72
|
/*
|
|
133
73
|
Set Static Source Details of user on Visit of Platform
|
|
134
74
|
*/
|
|
135
75
|
export const initSourceDetails = ({ platform, experiments, // only for website.
|
|
136
76
|
flow, affiliateChannel, offlineChannel, organicChannel, performanceChannel, revenueChannel, salesProcess, guestId, landingPage, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
137
|
-
const utmParams = getUTMParams();
|
|
138
|
-
const { utm_source: utmSource } = utmParams;
|
|
139
|
-
const leadChannel = getChannel(utmSource);
|
|
140
77
|
/*
|
|
141
78
|
source cookie was added in cross subdomain for few days initially,
|
|
142
79
|
which was later changed to subdomain specific. Now to sending older cookie to backend, removing older cookie
|
|
143
80
|
*/
|
|
144
81
|
removeCookie(SOURCE_DETAILS_COOKIE, true);
|
|
145
|
-
revenueChannel = revenueChannel || getRevenueChannel(platform
|
|
146
|
-
if (utmSource) {
|
|
147
|
-
switch (revenueChannel) {
|
|
148
|
-
case 'affiliate':
|
|
149
|
-
affiliateChannel = affiliateChannel || leadChannel;
|
|
150
|
-
break;
|
|
151
|
-
case 'offline':
|
|
152
|
-
offlineChannel = offlineChannel || leadChannel;
|
|
153
|
-
break;
|
|
154
|
-
case 'organic':
|
|
155
|
-
organicChannel = organicChannel || leadChannel;
|
|
156
|
-
break;
|
|
157
|
-
case 'performance':
|
|
158
|
-
performanceChannel = performanceChannel || leadChannel;
|
|
159
|
-
break;
|
|
160
|
-
default:
|
|
161
|
-
break;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
82
|
+
revenueChannel = revenueChannel || getRevenueChannel(platform);
|
|
164
83
|
if (!isSourcePresent()) {
|
|
165
84
|
const sourceDetails = {
|
|
166
85
|
platform_channel: platform,
|
|
167
86
|
experiment_dict: experiments,
|
|
168
|
-
utm_params: utmParams,
|
|
169
87
|
flow: flow || getFlow(platform, experiments),
|
|
170
88
|
affiliate_channel: affiliateChannel,
|
|
171
89
|
offline_channel: offlineChannel,
|
|
@@ -180,14 +98,11 @@ flow, affiliateChannel, offlineChannel, organicChannel, performanceChannel, reve
|
|
|
180
98
|
writeSourceCookie(sourceDetails);
|
|
181
99
|
}
|
|
182
100
|
else {
|
|
183
|
-
|
|
101
|
+
const updatedSource = {
|
|
184
102
|
experiment_dict: experiments,
|
|
185
103
|
flow: flow || getFlow(platform, experiments),
|
|
186
104
|
guest_id: guestId,
|
|
187
105
|
};
|
|
188
|
-
if (utmSource) {
|
|
189
|
-
updatedSource = Object.assign(Object.assign({}, updatedSource), { utm_params: utmParams, affiliate_channel: affiliateChannel, offline_channel: offlineChannel, organic_channel: organicChannel, performance_channel: performanceChannel, revenue_channel: revenueChannel });
|
|
190
|
-
}
|
|
191
106
|
updateSourceCookie(updatedSource);
|
|
192
107
|
}
|
|
193
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/growth-source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/growth-source/index.ts"],"names":[],"mappings":"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"}
|