@ovh-ux/ovh-at-internet 0.1.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/CHANGELOG.md ADDED
@@ -0,0 +1,10 @@
1
+ # [0.1.0](https://github.com/ovh/manager/compare/@ovh-ux/ovh-at-internet@0.0.0...@ovh-ux/ovh-at-internet@0.1.0) (2022-06-14)
2
+
3
+
4
+ ### Features
5
+
6
+ * **ovh-at-internet:** create component ([b692503](https://github.com/ovh/manager/commit/b692503df0ed2d91bf0ff4e44af85d4b7dddc350))
7
+ * **pnr:** add nav tracking ([0ec0ada](https://github.com/ovh/manager/commit/0ec0adae23428bf77e9808b1e86f4e917583d376))
8
+
9
+
10
+
package/LICENSE ADDED
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2013-present, OVH SAS
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ * Neither the name of the copyright holders nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # ovh-at-internet
package/dist/config.js ADDED
@@ -0,0 +1,45 @@
1
+ import { isEmpty } from 'lodash-es';
2
+ export class OvhAtInternetConfig {
3
+ constructor() {
4
+ this.enabled = false;
5
+ this.debug = false;
6
+ this.region = 'EU';
7
+ }
8
+ isDefaultSet() {
9
+ return !isEmpty(this.defaults);
10
+ }
11
+ setDefaults(def) {
12
+ this.defaults = def;
13
+ return this.defaults;
14
+ }
15
+ getDefaults() {
16
+ return Object.assign({}, this.defaults);
17
+ }
18
+ setDefaultsPromise(promise) {
19
+ this.defaultsPromise = promise.then((defaults) => {
20
+ return this.setDefaults(defaults);
21
+ });
22
+ }
23
+ getDefaultsPromise() {
24
+ return this.defaultsPromise;
25
+ }
26
+ isEnabled() {
27
+ return this.enabled;
28
+ }
29
+ setEnabled(state) {
30
+ this.enabled = state;
31
+ }
32
+ setDebug(state) {
33
+ this.debug = state;
34
+ }
35
+ isDebugActive() {
36
+ return this.debug;
37
+ }
38
+ getRegion() {
39
+ return this.region;
40
+ }
41
+ setRegion(region) {
42
+ this.region = region;
43
+ }
44
+ }
45
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DpC,MAAM,OAAO,mBAAmB;IAAhC;QAcY,YAAO,GAAG,KAAK,CAAC;QAKhB,UAAK,GAAG,KAAK,CAAC;QAKd,WAAM,GAAG,IAAI,CAAC;IAyF1B,CAAC;IApFC,YAAY;QACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAMD,WAAW,CAAC,GAAa;QACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAKD,WAAW;QACT,yBACK,IAAI,CAAC,QAAQ,EAChB;IACJ,CAAC;IAOD,kBAAkB,CAAC,OAA0B;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAkB,EAAE,EAAE;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAMD,UAAU,CAAC,KAAc;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAMD,QAAQ,CAAC,KAAc;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAKD,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAKD,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAMD,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,90 @@
1
+ export const AT_INTERNET_CUSTOM_VARS = {
2
+ countryCode: {
3
+ path: {
4
+ default: 'site.1',
5
+ US: 'site.12',
6
+ },
7
+ format: '[%s]',
8
+ },
9
+ currencyCode: {
10
+ path: {
11
+ default: 'site.16',
12
+ US: 'site.15',
13
+ },
14
+ format: '[%s]',
15
+ },
16
+ pageUrl: {
17
+ path: {
18
+ default: 'site.11',
19
+ US: 'site.10',
20
+ },
21
+ format: '[%s]',
22
+ },
23
+ referrerSite: {
24
+ path: {
25
+ default: 'site.8',
26
+ US: 'site.11',
27
+ },
28
+ format: '[%s]',
29
+ },
30
+ event: {
31
+ path: {
32
+ default: 'site.20',
33
+ US: 'site.6',
34
+ },
35
+ format: '[%s]',
36
+ },
37
+ siteName: {
38
+ path: {
39
+ default: 'site.13',
40
+ US: 'site.14',
41
+ },
42
+ format: '[%s]',
43
+ },
44
+ projectId: {
45
+ path: {
46
+ default: 'page.1',
47
+ },
48
+ format: '[%s]',
49
+ },
50
+ voucherCode: {
51
+ path: {
52
+ default: 'page.2',
53
+ },
54
+ format: '[%s]',
55
+ },
56
+ pciCreationStep: {
57
+ path: {
58
+ default: 'page.1',
59
+ },
60
+ format: '[%s]',
61
+ },
62
+ pciCreationErrorMessage: {
63
+ path: {
64
+ default: 'page.2',
65
+ },
66
+ format: '[%s]',
67
+ },
68
+ pciCreationNumProjects: {
69
+ path: {
70
+ default: 'page.1',
71
+ },
72
+ format: '[%s]',
73
+ },
74
+ pciCreationNumProjects3: {
75
+ path: {
76
+ default: 'page.3',
77
+ },
78
+ format: '[%s]',
79
+ },
80
+ orderStatus: {
81
+ path: {
82
+ default: 'page.1',
83
+ },
84
+ format: '[%s]',
85
+ },
86
+ };
87
+ export default {
88
+ AT_INTERNET_CUSTOM_VARS,
89
+ };
90
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAI3D,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,EAAE,EAAE,SAAS;SACd;QACD,MAAM,EAAE,MAAM;KACf;IAKD,YAAY,EAAE;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,SAAS;SACd;QACD,MAAM,EAAE,MAAM;KACf;IAKD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,SAAS;SACd;QACD,MAAM,EAAE,MAAM;KACf;IAMD,YAAY,EAAE;QACZ,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;YACjB,EAAE,EAAE,SAAS;SACd;QACD,MAAM,EAAE,MAAM;KACf;IAKD,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,QAAQ;SACb;QACD,MAAM,EAAE,MAAM;KACf;IAED,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,EAAE,EAAE,SAAS;SACd;QACD,MAAM,EAAE,MAAM;KACf;IAKD,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,eAAe,EAAE;QACf,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,uBAAuB,EAAE;QACvB,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,sBAAsB,EAAE;QACtB,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,uBAAuB,EAAE;QACvB,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;IAKD,WAAW,EAAE;QACX,IAAI,EAAE;YACJ,OAAO,EAAE,QAAQ;SAClB;QACD,MAAM,EAAE,MAAM;KACf;CACF,CAAC;AAEF,eAAe;IACb,uBAAuB;CACxB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './ovh-at-internet';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,265 @@
1
+ import { has, isNumber } from 'lodash-es';
2
+ import { OvhAtInternetConfig, } from './config';
3
+ import { getUniqueId } from './utils';
4
+ import { AT_INTERNET_CUSTOM_VARS } from './constants';
5
+ export default class OvhAtInternet extends OvhAtInternetConfig {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.atinternetTag = null;
9
+ this.trackQueue = [];
10
+ }
11
+ logDebugInfos(log, logData) {
12
+ if (this.debug) {
13
+ console.info(log, logData);
14
+ }
15
+ }
16
+ updateData(trackData) {
17
+ const data = Object.assign(Object.assign({}, trackData), this.defaults);
18
+ if (!data.visitorId) {
19
+ this.atinternetTag.identifiedVisitor.set({ id: data.visitorId });
20
+ }
21
+ if (data.level2 === undefined) {
22
+ data.level2 = '0';
23
+ console.warn('atinternet level2 attribute undefined: use default unclassified level2 "0". Please fix it!');
24
+ }
25
+ return data;
26
+ }
27
+ updateCustomVars(data, varValue, varKey, customVars) {
28
+ if (has(data, varKey)) {
29
+ const valuePath = varValue.path[this.region] || varValue.path.default;
30
+ const keys = valuePath.split('.');
31
+ let tmp = customVars;
32
+ keys.forEach((key, idx) => {
33
+ if (idx === keys.length - 1 && varValue.format) {
34
+ tmp[key] = varValue.format.replace('%s', data[varKey]);
35
+ }
36
+ else {
37
+ tmp[key] = tmp[key] || {};
38
+ tmp = tmp[key];
39
+ }
40
+ });
41
+ }
42
+ }
43
+ getCustomVarsWithDefaults(trackData) {
44
+ const customVars = {};
45
+ Object.keys(AT_INTERNET_CUSTOM_VARS).forEach((customVarKey) => {
46
+ const customVarVal = AT_INTERNET_CUSTOM_VARS[customVarKey];
47
+ this.updateCustomVars(this.defaults, customVarVal, customVarKey, customVars);
48
+ this.updateCustomVars(trackData, customVarVal, customVarKey, customVars);
49
+ });
50
+ return customVars;
51
+ }
52
+ isTagAvailable() {
53
+ const isEnabled = this.enabled;
54
+ if (isEnabled && !this.atinternetTag) {
55
+ console.error('atinternet missing smarttag.js dependency');
56
+ return false;
57
+ }
58
+ return isEnabled;
59
+ }
60
+ clearTrackQueue() {
61
+ this.trackQueue.splice(0, this.trackQueue.length);
62
+ }
63
+ processTrackQueue() {
64
+ while (this.trackQueue.length) {
65
+ const { type, data } = this.trackQueue.shift();
66
+ const trackFunction = this[type];
67
+ const boundFunction = trackFunction.bind(this);
68
+ boundFunction(data);
69
+ }
70
+ }
71
+ initTag() {
72
+ this.atinternetTag = new window.ATInternet.Tracker.Tag({
73
+ ClientSideUserId: { clientSideMode: 'always' },
74
+ secure: true,
75
+ disableCookie: !this.enabled,
76
+ });
77
+ this.processTrackQueue();
78
+ }
79
+ getTag() {
80
+ if (!this.atinternetTag) {
81
+ this.initTag();
82
+ }
83
+ return this.atinternetTag;
84
+ }
85
+ init() {
86
+ if (window.ATInternet && this.enabled) {
87
+ try {
88
+ this.initTag();
89
+ }
90
+ catch (err) {
91
+ this.atinternetTag = null;
92
+ console.error('atinternet tag initialization failed', err);
93
+ }
94
+ }
95
+ }
96
+ trackMVTest(mvData) {
97
+ if (this.isTagAvailable()) {
98
+ try {
99
+ this.atinternetTag.mvTesting.set(mvData);
100
+ this.atinternetTag.dispatch();
101
+ }
102
+ catch (e) {
103
+ console.error('atinternet or mvTesting tag missing', e);
104
+ }
105
+ }
106
+ else {
107
+ this.trackQueue.push({
108
+ type: 'trackMVTest',
109
+ data: mvData,
110
+ });
111
+ }
112
+ }
113
+ trackPage(pageDataParam) {
114
+ let pageData = pageDataParam;
115
+ if (this.isTagAvailable()) {
116
+ pageData = this.updateData(pageData);
117
+ if (pageData.name) {
118
+ pageData.customVars = this.getCustomVarsWithDefaults(Object.assign({ pageUrl: encodeURIComponent(window.location.href) }, pageDataParam));
119
+ this.atinternetTag.page.send(pageData);
120
+ this.logDebugInfos('atinternet.trackpage: ', pageData);
121
+ }
122
+ else {
123
+ console.error('atinternet.trackPage invalid data: missing name attribute', pageData);
124
+ }
125
+ }
126
+ else {
127
+ this.trackQueue.push({
128
+ type: 'trackPage',
129
+ data: pageData,
130
+ });
131
+ }
132
+ }
133
+ trackClick(clickDataParam) {
134
+ let clickData = clickDataParam;
135
+ if (this.isTagAvailable()) {
136
+ clickData = this.updateData(clickData);
137
+ if (['action', 'navigation', 'download', 'exit'].includes(clickData.type)) {
138
+ this.atinternetTag.click.send(clickData);
139
+ this.logDebugInfos('atinternet.trackclick: ', clickData);
140
+ }
141
+ else {
142
+ console.error("atinternet.trackClick invalid or missing 'type' attribute for data", clickData);
143
+ }
144
+ }
145
+ else {
146
+ this.trackQueue.push({ type: 'trackClick', data: clickData });
147
+ }
148
+ }
149
+ trackOrder(orderDataParam) {
150
+ let orderData = orderDataParam;
151
+ if (this.isTagAvailable()) {
152
+ orderData = this.updateData(orderData);
153
+ if (!orderData.page) {
154
+ console.error('atinternet.trackProduct missing page attribute: ', orderData);
155
+ return;
156
+ }
157
+ if (!orderData.name) {
158
+ console.error('atinternet.trackProduct missing name attribute: ', orderData);
159
+ return;
160
+ }
161
+ if (orderData.price === undefined &&
162
+ orderData.priceTaxFree === undefined) {
163
+ console.error('atinternet.trackProduct missing price attribute: ', orderData);
164
+ return;
165
+ }
166
+ const orderId = orderData.orderId || getUniqueId();
167
+ const cartId = `cart-${orderId}`;
168
+ this.atinternetTag.page.set({
169
+ name: orderData.page,
170
+ level2: orderData.level2,
171
+ });
172
+ this.atinternetTag.cart.set({
173
+ cardId: cartId,
174
+ });
175
+ let product = {
176
+ productId: orderData.name,
177
+ quantity: orderData.quantity || 1,
178
+ };
179
+ const amount = {};
180
+ let turnover = 0;
181
+ const status = orderData.status || 3;
182
+ if (isNumber(orderData.price)) {
183
+ product = Object.assign(Object.assign({}, product), { unitPriceTaxIncluded: orderData.price, amountTaxIncluded: orderData.price * product.quantity });
184
+ turnover = orderData.price * product.quantity;
185
+ }
186
+ if (isNumber(orderData.priceTaxFree)) {
187
+ product = Object.assign(Object.assign({}, product), { unitPriceTaxFree: orderData.priceTaxFree, amountTaxFree: orderData.priceTaxFree * product.quantity });
188
+ turnover = orderData.priceTaxFree * product.quantity;
189
+ }
190
+ this.atinternetTag.cart.add({ product });
191
+ this.atinternetTag.order.set({
192
+ orderId,
193
+ status,
194
+ amount,
195
+ turnover,
196
+ });
197
+ this.atinternetTag.customVars.set(this.getCustomVarsWithDefaults(orderData));
198
+ this.atinternetTag.dispatch();
199
+ this.logDebugInfos('atinternet.trackOrder: ', orderData);
200
+ }
201
+ else {
202
+ this.trackQueue.push({ type: 'trackOrder', data: orderData });
203
+ }
204
+ }
205
+ trackEvent(eventDataParam) {
206
+ const eventData = eventDataParam;
207
+ if (this.isTagAvailable()) {
208
+ if (!eventData.page) {
209
+ console.error('atinternet.trackEvent missing page attribute: ', eventData);
210
+ return;
211
+ }
212
+ if (!eventData.event) {
213
+ console.error('atinternet.trackEvent missing eventData attribute: ', eventData);
214
+ return;
215
+ }
216
+ this.atinternetTag.page.set({
217
+ name: eventData.page,
218
+ level2: eventData.level2,
219
+ });
220
+ this.atinternetTag.customVars.set(this.getCustomVarsWithDefaults(eventData));
221
+ this.atinternetTag.dispatch();
222
+ this.logDebugInfos('atinternet.trackEvent: ', eventData);
223
+ }
224
+ else {
225
+ this.trackQueue.push({ type: 'trackEvent', data: eventData });
226
+ }
227
+ }
228
+ trackImpression(impressionDataParam) {
229
+ const impressionData = impressionDataParam;
230
+ if (this.isTagAvailable()) {
231
+ this.updateData(impressionData);
232
+ if (!impressionData.campaignId) {
233
+ console.error('atinternet.trackImpression missing impressionData attribute: ', impressionData);
234
+ return;
235
+ }
236
+ this.atinternetTag.publisher.set({
237
+ impression: impressionData,
238
+ });
239
+ this.atinternetTag.dispatch();
240
+ this.logDebugInfos('atinternet.trackImpression: ', impressionData);
241
+ }
242
+ else {
243
+ this.trackQueue.push({ type: 'trackImpression', data: impressionData });
244
+ }
245
+ }
246
+ trackClickImpression(impressionDataParam) {
247
+ const impressionData = impressionDataParam;
248
+ if (this.isTagAvailable()) {
249
+ this.updateData(impressionData);
250
+ if (!impressionData.click) {
251
+ console.error('atinternet.trackClickImpression missing impressionData attribute: ', impressionData);
252
+ return;
253
+ }
254
+ this.atinternetTag.publisher.send(impressionData);
255
+ this.logDebugInfos('atinternet.trackClickImpression: ', impressionData);
256
+ }
257
+ else {
258
+ this.trackQueue.push({
259
+ type: 'trackClickImpression',
260
+ data: impressionData,
261
+ });
262
+ }
263
+ }
264
+ }
265
+ //# sourceMappingURL=ovh-at-internet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ovh-at-internet.js","sourceRoot":"","sources":["../src/ovh-at-internet.ts"],"names":[],"mappings":"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"}
package/dist/track.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../src/track.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export const getRandomString = (len) => {
2
+ const alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3
+ return new Array(len)
4
+ .map(() => alphabet.charAt(Math.floor(Math.random() * alphabet.length)))
5
+ .join('');
6
+ };
7
+ export const getUniqueId = () => {
8
+ return new Date().valueOf().toString(36) + getRandomString(8);
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE;IACrD,MAAM,QAAQ,GACZ,gEAAgE,CAAC;IACnE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC;SAClB,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;SACvE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE;IAEtC,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@ovh-ux/ovh-at-internet",
3
+ "version": "0.1.0",
4
+ "description": "ATInternet tracking library for OVHcloud.",
5
+ "keywords": [
6
+ "at-internet",
7
+ "tracking"
8
+ ],
9
+ "homepage": "https://github.com/ovh/manager/tree/master/packages/components/ovh-at-internet#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/ovh/manager/issues"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/ovh/manager.git",
16
+ "directory": "packages/components/ovh-at-internet"
17
+ },
18
+ "license": "BSD-3-Clause",
19
+ "sideEffects": false,
20
+ "main": "dist/index.js",
21
+ "module": "dist/index.js",
22
+ "types": "./types",
23
+ "files": [
24
+ "dist",
25
+ "types"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc",
29
+ "dev": "tsc",
30
+ "dev:watch": "tsc --watch",
31
+ "prepare": "yarn run build",
32
+ "start": "lerna exec --stream --scope='@ovh-ux/manager-config' --include-dependencies -- yarn run build",
33
+ "start:dev": "lerna exec --stream --scope='@ovh-ux/manager-config' --include-dependencies -- yarn run dev",
34
+ "start:watch": "lerna exec --stream --parallel --scope='@ovh-ux/manager-config' --include-dependencies -- yarn run dev:watch"
35
+ },
36
+ "dependencies": {
37
+ "@ovh-ux/manager-config": "^5.0.0 || ^6.0.0",
38
+ "@types/lodash-es": "^4.17.5",
39
+ "lodash-es": "^4.17.15"
40
+ },
41
+ "devDependencies": {}
42
+ }
@@ -0,0 +1,69 @@
1
+ import { CountryCode } from '@ovh-ux/manager-config/types/locale/country-code.enum';
2
+ export declare type levelKey<Num extends number> = `level${Num}`;
3
+ declare type chapterKey<Num extends number> = `chapter${Num}`;
4
+ export interface PageData {
5
+ name: string;
6
+ [key: levelKey<number>]: string;
7
+ [key: chapterKey<number>]: string;
8
+ visitorId?: number | string;
9
+ customObject?: Record<string, unknown>;
10
+ customVars: Record<string, unknown>;
11
+ }
12
+ export interface ClickData extends PageData {
13
+ type: 'action' | 'navigation' | 'download' | 'exit';
14
+ }
15
+ export interface MVTestingData {
16
+ test: string;
17
+ waveId: number;
18
+ creation: string;
19
+ }
20
+ export interface MVTestingVariables {
21
+ variable: string;
22
+ version: string;
23
+ }
24
+ export interface OrderData extends PageData {
25
+ page?: string;
26
+ price?: number;
27
+ priceTaxFree?: number;
28
+ orderId?: number;
29
+ quantity?: number;
30
+ status?: number;
31
+ countryCode?: CountryCode;
32
+ currencyCode?: CountryCode;
33
+ }
34
+ export interface ImpressionData extends PageData {
35
+ campaignId: string;
36
+ creation: string;
37
+ variant: string;
38
+ format: string;
39
+ generalPlacement: string;
40
+ detailedPlacement: string;
41
+ advertiserId: string;
42
+ url: string;
43
+ }
44
+ export interface ImpressionDataClick extends ImpressionData {
45
+ click: unknown;
46
+ }
47
+ export interface EventData extends PageData {
48
+ page: string;
49
+ event: Event;
50
+ }
51
+ export declare class OvhAtInternetConfig {
52
+ protected defaults: PageData;
53
+ protected defaultsPromise: Promise<PageData>;
54
+ protected enabled: boolean;
55
+ protected debug: boolean;
56
+ protected region: string;
57
+ isDefaultSet(): boolean;
58
+ setDefaults(def: PageData): PageData;
59
+ getDefaults(): PageData;
60
+ setDefaultsPromise(promise: Promise<PageData>): void;
61
+ getDefaultsPromise(): Promise<PageData>;
62
+ isEnabled(): boolean;
63
+ setEnabled(state: boolean): void;
64
+ setDebug(state: boolean): void;
65
+ isDebugActive(): boolean;
66
+ getRegion(): string;
67
+ setRegion(region: string): void;
68
+ }
69
+ export {};
@@ -0,0 +1,12 @@
1
+ export interface IAtInternetCustomVar {
2
+ path: Record<string, string>;
3
+ format: string;
4
+ }
5
+ export declare type AtInternetCustomVars = {
6
+ [key in string]: IAtInternetCustomVar;
7
+ };
8
+ export declare const AT_INTERNET_CUSTOM_VARS: AtInternetCustomVars;
9
+ declare const _default: {
10
+ AT_INTERNET_CUSTOM_VARS: AtInternetCustomVars;
11
+ };
12
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { MVTestingData, MVTestingVariables } from './config';
2
+ declare global {
3
+ interface Window {
4
+ ATInternet: {
5
+ Tracker: {
6
+ Tag: ATInternetTag;
7
+ };
8
+ };
9
+ }
10
+ }
11
+ export interface ATInternetTagOptions {
12
+ ClientSideUserId: {
13
+ clientSideMode: string;
14
+ };
15
+ secure: boolean;
16
+ disableCookie: boolean;
17
+ mvTesting?: {
18
+ set: (params: MVTestingData) => void;
19
+ add: (params: MVTestingVariables) => void;
20
+ };
21
+ [key: string]: any;
22
+ }
23
+ export interface ATInternetTag {
24
+ new (tag: ATInternetTagOptions): ATInternetTagOptions;
25
+ }
26
+ export { default } from './ovh-at-internet';
@@ -0,0 +1,23 @@
1
+ import { OvhAtInternetConfig, PageData, OrderData, ClickData, ImpressionData, ImpressionDataClick, EventData, MVTestingData } from './config';
2
+ import { ATInternetTagOptions } from '.';
3
+ export default class OvhAtInternet extends OvhAtInternetConfig {
4
+ private atinternetTag;
5
+ private trackQueue;
6
+ private logDebugInfos;
7
+ private updateData;
8
+ private updateCustomVars;
9
+ private getCustomVarsWithDefaults;
10
+ isTagAvailable(): boolean;
11
+ clearTrackQueue(): void;
12
+ processTrackQueue(): void;
13
+ initTag(): void;
14
+ getTag(): ATInternetTagOptions;
15
+ init(): void;
16
+ trackMVTest(mvData: MVTestingData): void;
17
+ trackPage(pageDataParam: PageData): void;
18
+ trackClick(clickDataParam: ClickData): void;
19
+ trackOrder(orderDataParam: OrderData): void;
20
+ trackEvent(eventDataParam: EventData): void;
21
+ trackImpression(impressionDataParam: ImpressionData): void;
22
+ trackClickImpression(impressionDataParam: ImpressionDataClick): void;
23
+ }
@@ -0,0 +1,7 @@
1
+ import { MVTestingData, PageData } from './config';
2
+ export declare type TrackType = 'trackPage' | 'trackClick' | 'trackOrder' | 'trackEvent' | 'trackImpression' | 'trackClickImpression' | 'trackMVTest';
3
+ export declare type AtInternetTrackData<T> = T extends PageData ? T : MVTestingData;
4
+ export interface IOvhAtInternetTrack<T> {
5
+ type: TrackType;
6
+ data: AtInternetTrackData<T>;
7
+ }
@@ -0,0 +1,2 @@
1
+ export declare const getRandomString: (len: number) => string;
2
+ export declare const getUniqueId: () => string;