@selwise/widget 0.0.1 → 0.0.2
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/LICENSE +21 -0
- package/README.md +71 -0
- package/dist/npm/cjs/modules/contract/recommendation-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/search-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/tracking-contract.js +1 -1
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +164 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +3 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +107 -0
- package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +404 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +8 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +126 -0
- package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +133 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +3 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +154 -0
- package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +1481 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +22 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +21 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +8 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +1 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +139 -0
- package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +1 -0
- package/dist/npm/cjs/modules/contract/widget-contract.js +1 -1
- package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +2 -2
- package/dist/npm/esm/modules/contract/recommendation-contract.js +1 -1
- package/dist/npm/esm/modules/contract/search-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/search-contract.js +1 -1
- package/dist/npm/esm/modules/contract/tracking-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/tracking-contract.js +1 -1
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +8 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +160 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +56 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +2 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +103 -0
- package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +35 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +396 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +119 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +7 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +22 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +118 -0
- package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +7 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +130 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +3 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +5 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +37 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +2 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +6 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +147 -0
- package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +22 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +1472 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +4 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +6 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +14 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +18 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +128 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +7 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +1 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +11 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +132 -0
- package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +1 -0
- package/dist/npm/esm/modules/contract/widget-contract.d.ts +1 -1
- package/dist/npm/esm/modules/contract/widget-contract.js +1 -1
- package/dist/npm/esm/selwise.js +2 -2
- package/package.json +25 -9
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FREQUENCY_CAP_INTERVALS = exports.COOKIE_CONSENT_DEFAULTS = exports.TRACKING_MODULES = exports.DEFAULT_PAGE_TYPE_PATTERNS = exports.EVENT_CATEGORIES = exports.CANONICAL_EVENTS = void 0;
|
|
4
|
+
exports.CANONICAL_EVENTS = [
|
|
5
|
+
'page_view',
|
|
6
|
+
'virtual_page_view',
|
|
7
|
+
'widget_view',
|
|
8
|
+
'category_view',
|
|
9
|
+
'product_view',
|
|
10
|
+
'product_click',
|
|
11
|
+
'product_impression',
|
|
12
|
+
'product_dwell_time',
|
|
13
|
+
'add_to_cart',
|
|
14
|
+
'remove_from_cart',
|
|
15
|
+
'update_cart',
|
|
16
|
+
'cart_abandon',
|
|
17
|
+
'cart_restore',
|
|
18
|
+
'checkout_begin',
|
|
19
|
+
'checkout_progress',
|
|
20
|
+
'checkout_option',
|
|
21
|
+
'purchase',
|
|
22
|
+
'user_signup',
|
|
23
|
+
'user_login',
|
|
24
|
+
'user_logout',
|
|
25
|
+
'user_update',
|
|
26
|
+
'search_instant_open',
|
|
27
|
+
'search_query',
|
|
28
|
+
'search_filter',
|
|
29
|
+
'search_sort',
|
|
30
|
+
'search_page',
|
|
31
|
+
'search_results',
|
|
32
|
+
'search_zero_results',
|
|
33
|
+
'search_close',
|
|
34
|
+
'impression',
|
|
35
|
+
'click',
|
|
36
|
+
'close',
|
|
37
|
+
'view',
|
|
38
|
+
'hover',
|
|
39
|
+
'scroll',
|
|
40
|
+
'slider_navigate',
|
|
41
|
+
'slider_swipe',
|
|
42
|
+
'widget_impression',
|
|
43
|
+
'script_injected',
|
|
44
|
+
'script_error',
|
|
45
|
+
'identify',
|
|
46
|
+
'category_filter',
|
|
47
|
+
'recent_search_click',
|
|
48
|
+
'popular_search_click',
|
|
49
|
+
'popular_category_click',
|
|
50
|
+
'popular_product_click',
|
|
51
|
+
'wishlist',
|
|
52
|
+
'custom_event',
|
|
53
|
+
];
|
|
54
|
+
exports.EVENT_CATEGORIES = {
|
|
55
|
+
page_view: 'page',
|
|
56
|
+
virtual_page_view: 'page',
|
|
57
|
+
widget_view: 'engagement',
|
|
58
|
+
category_view: 'commerce',
|
|
59
|
+
product_view: 'commerce',
|
|
60
|
+
product_click: 'search',
|
|
61
|
+
product_impression: 'commerce',
|
|
62
|
+
product_dwell_time: 'commerce',
|
|
63
|
+
add_to_cart: 'commerce',
|
|
64
|
+
remove_from_cart: 'commerce',
|
|
65
|
+
update_cart: 'commerce',
|
|
66
|
+
cart_abandon: 'commerce',
|
|
67
|
+
cart_restore: 'commerce',
|
|
68
|
+
checkout_begin: 'commerce',
|
|
69
|
+
checkout_progress: 'commerce',
|
|
70
|
+
checkout_option: 'commerce',
|
|
71
|
+
purchase: 'commerce',
|
|
72
|
+
user_signup: 'user',
|
|
73
|
+
user_login: 'user',
|
|
74
|
+
user_logout: 'user',
|
|
75
|
+
user_update: 'user',
|
|
76
|
+
search_instant_open: 'search',
|
|
77
|
+
search_query: 'search',
|
|
78
|
+
search_filter: 'search',
|
|
79
|
+
search_sort: 'search',
|
|
80
|
+
search_page: 'search',
|
|
81
|
+
search_results: 'search',
|
|
82
|
+
search_zero_results: 'search',
|
|
83
|
+
search_close: 'search',
|
|
84
|
+
impression: 'engagement',
|
|
85
|
+
click: 'engagement',
|
|
86
|
+
close: 'engagement',
|
|
87
|
+
view: 'engagement',
|
|
88
|
+
hover: 'engagement',
|
|
89
|
+
scroll: 'engagement',
|
|
90
|
+
slider_navigate: 'recommendation',
|
|
91
|
+
slider_swipe: 'recommendation',
|
|
92
|
+
widget_impression: 'recommendation',
|
|
93
|
+
script_injected: 'system',
|
|
94
|
+
script_error: 'system',
|
|
95
|
+
identify: 'user',
|
|
96
|
+
category_filter: 'search',
|
|
97
|
+
recent_search_click: 'search',
|
|
98
|
+
popular_search_click: 'search',
|
|
99
|
+
popular_category_click: 'search',
|
|
100
|
+
popular_product_click: 'search',
|
|
101
|
+
wishlist: 'commerce',
|
|
102
|
+
custom_event: 'engagement',
|
|
103
|
+
};
|
|
104
|
+
exports.DEFAULT_PAGE_TYPE_PATTERNS = {
|
|
105
|
+
home: '^/$|\\/index\\.html?$',
|
|
106
|
+
product: '\\/(products?|p|item)s?\\/[a-z0-9-]+',
|
|
107
|
+
category: '\\/(categories?|c|collection)s?\\/[a-z0-9-]+',
|
|
108
|
+
search: '\\/(search|find)',
|
|
109
|
+
checkout: '\\/(checkout|payment|order)',
|
|
110
|
+
cart: '\\/(cart|basket)',
|
|
111
|
+
account: '\\/(account|profile|my-account)',
|
|
112
|
+
};
|
|
113
|
+
exports.TRACKING_MODULES = {
|
|
114
|
+
page: { enabled: true },
|
|
115
|
+
product: { enabled: true },
|
|
116
|
+
basket: { enabled: true },
|
|
117
|
+
checkout: { enabled: true },
|
|
118
|
+
user: { enabled: false },
|
|
119
|
+
search: { enabled: false },
|
|
120
|
+
};
|
|
121
|
+
exports.COOKIE_CONSENT_DEFAULTS = {
|
|
122
|
+
enabled: false,
|
|
123
|
+
variableName: '__wcmp_consent',
|
|
124
|
+
waitForConsent: false,
|
|
125
|
+
defaultConsent: true,
|
|
126
|
+
granularEnabled: false,
|
|
127
|
+
requiredCategories: ['necessary'],
|
|
128
|
+
timeoutMs: 5000,
|
|
129
|
+
storageKey: 'selwise_consent',
|
|
130
|
+
consentChangeCallback: '',
|
|
131
|
+
};
|
|
132
|
+
exports.FREQUENCY_CAP_INTERVALS = ['', '15m', '30m', '1h', '2h', '6h', '12h', '1d', '1w'];
|
|
133
|
+
//# sourceMappingURL=configs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/tracking-contract/configs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// AUTO-GENERATED FROM packages/tracking-contract/src/index.ts. DO NOT EDIT DIRECTLY.
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./configs"), exports);
|
|
20
|
+
__exportStar(require("./validators"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/tracking-contract/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qFAAqF;AACrF,0CAAwB;AACxB,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/tracking-contract/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateCanonicalEvent = validateCanonicalEvent;
|
|
4
|
+
exports.validateFrequencyInterval = validateFrequencyInterval;
|
|
5
|
+
exports.validateFrequencyCapPayload = validateFrequencyCapPayload;
|
|
6
|
+
exports.validateDataLayerConfig = validateDataLayerConfig;
|
|
7
|
+
exports.sanitizeDataLayerConfig = sanitizeDataLayerConfig;
|
|
8
|
+
// AUTO-GENERATED FROM packages/tracking-contract/src/validators.ts. DO NOT EDIT DIRECTLY.
|
|
9
|
+
const configs_1 = require("./configs");
|
|
10
|
+
const CANONICAL_EVENT_SET = new Set(configs_1.CANONICAL_EVENTS);
|
|
11
|
+
const REQUIRED_CATEGORY_SET = new Set(['necessary', 'analytics', 'marketing', 'preferences']);
|
|
12
|
+
const PAGE_DETECTION_SET = new Set(['auto', 'manual', 'patterns']);
|
|
13
|
+
const FREQUENCY_INTERVAL_SET = new Set(configs_1.FREQUENCY_CAP_INTERVALS);
|
|
14
|
+
const FREQUENCY_CAP_KEY_SET = new Set(['perSession', 'perDay', 'perWeek', 'total', 'minInterval']);
|
|
15
|
+
function isRecord(value) {
|
|
16
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
17
|
+
}
|
|
18
|
+
function validateCanonicalEvent(eventName) {
|
|
19
|
+
return CANONICAL_EVENT_SET.has(eventName);
|
|
20
|
+
}
|
|
21
|
+
function validateFrequencyInterval(interval) {
|
|
22
|
+
return FREQUENCY_INTERVAL_SET.has(interval);
|
|
23
|
+
}
|
|
24
|
+
function validateFrequencyCapPayload(payload) {
|
|
25
|
+
if (payload === undefined || payload === null) {
|
|
26
|
+
return { valid: true };
|
|
27
|
+
}
|
|
28
|
+
if (!isRecord(payload)) {
|
|
29
|
+
return { valid: false, message: 'invalid frequency cap payload' };
|
|
30
|
+
}
|
|
31
|
+
const invalidKeys = Object.keys(payload).filter((key) => !FREQUENCY_CAP_KEY_SET.has(key));
|
|
32
|
+
if (invalidKeys.length > 0) {
|
|
33
|
+
return {
|
|
34
|
+
valid: false,
|
|
35
|
+
message: `invalid frequency cap key: ${invalidKeys.join(', ')}`,
|
|
36
|
+
invalidKeys,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
for (const key of ['perSession', 'perDay', 'perWeek', 'total']) {
|
|
40
|
+
if (payload[key] !== undefined) {
|
|
41
|
+
if (!Number.isInteger(payload[key]) || payload[key] < 0) {
|
|
42
|
+
return { valid: false, message: `invalid frequency cap value: ${key}` };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (payload.minInterval !== undefined) {
|
|
47
|
+
if (typeof payload.minInterval !== 'string' || !validateFrequencyInterval(payload.minInterval)) {
|
|
48
|
+
return { valid: false, message: 'invalid frequency cap minInterval' };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return { valid: true };
|
|
52
|
+
}
|
|
53
|
+
function validateTrackingModules(modules) {
|
|
54
|
+
if (modules === undefined) {
|
|
55
|
+
return { valid: true };
|
|
56
|
+
}
|
|
57
|
+
if (!isRecord(modules)) {
|
|
58
|
+
return { valid: false, message: 'invalid tracking modules payload' };
|
|
59
|
+
}
|
|
60
|
+
const allowedKeys = new Set(Object.keys(configs_1.TRACKING_MODULES));
|
|
61
|
+
const invalidKeys = Object.keys(modules).filter((key) => !allowedKeys.has(key));
|
|
62
|
+
if (invalidKeys.length > 0) {
|
|
63
|
+
return {
|
|
64
|
+
valid: false,
|
|
65
|
+
message: `invalid tracking module key: ${invalidKeys.join(', ')}`,
|
|
66
|
+
invalidKeys,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
for (const [key, value] of Object.entries(modules)) {
|
|
70
|
+
if (!isRecord(value)) {
|
|
71
|
+
return { valid: false, message: `invalid tracking module payload: ${key}` };
|
|
72
|
+
}
|
|
73
|
+
if ('enabled' in value && typeof value.enabled !== 'boolean') {
|
|
74
|
+
return { valid: false, message: `invalid tracking module enabled flag: ${key}` };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return { valid: true };
|
|
78
|
+
}
|
|
79
|
+
function validateDataLayerConfig(config) {
|
|
80
|
+
if (!isRecord(config)) {
|
|
81
|
+
return { valid: false, message: 'invalid data layer config payload' };
|
|
82
|
+
}
|
|
83
|
+
if (config.pageDetection !== undefined) {
|
|
84
|
+
if (typeof config.pageDetection !== 'string' || !PAGE_DETECTION_SET.has(config.pageDetection)) {
|
|
85
|
+
return { valid: false, message: 'invalid page detection mode' };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (config.pageTypePatterns !== undefined) {
|
|
89
|
+
if (!isRecord(config.pageTypePatterns)) {
|
|
90
|
+
return { valid: false, message: 'invalid page type patterns payload' };
|
|
91
|
+
}
|
|
92
|
+
const allowedPatternKeys = new Set(Object.keys(configs_1.DEFAULT_PAGE_TYPE_PATTERNS));
|
|
93
|
+
const invalidPatternKeys = Object.keys(config.pageTypePatterns).filter((key) => !allowedPatternKeys.has(key));
|
|
94
|
+
if (invalidPatternKeys.length > 0) {
|
|
95
|
+
return {
|
|
96
|
+
valid: false,
|
|
97
|
+
message: `invalid page type pattern key: ${invalidPatternKeys.join(', ')}`,
|
|
98
|
+
invalidKeys: invalidPatternKeys,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (config.cookieConsent !== undefined) {
|
|
103
|
+
if (!isRecord(config.cookieConsent)) {
|
|
104
|
+
return { valid: false, message: 'invalid cookie consent payload' };
|
|
105
|
+
}
|
|
106
|
+
if (config.cookieConsent.requiredCategories !== undefined) {
|
|
107
|
+
if (!Array.isArray(config.cookieConsent.requiredCategories)) {
|
|
108
|
+
return { valid: false, message: 'invalid required categories payload' };
|
|
109
|
+
}
|
|
110
|
+
const invalidCategories = config.cookieConsent.requiredCategories.filter((category) => typeof category !== 'string' || !REQUIRED_CATEGORY_SET.has(category));
|
|
111
|
+
if (invalidCategories.length > 0) {
|
|
112
|
+
return { valid: false, message: 'invalid required categories value' };
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const moduleValidation = validateTrackingModules(config.trackingModules);
|
|
117
|
+
if (!moduleValidation.valid) {
|
|
118
|
+
return moduleValidation;
|
|
119
|
+
}
|
|
120
|
+
return { valid: true };
|
|
121
|
+
}
|
|
122
|
+
function sanitizeDataLayerConfig(config) {
|
|
123
|
+
const baseTrackingModules = { ...configs_1.TRACKING_MODULES };
|
|
124
|
+
const incomingTrackingModules = isRecord(config.trackingModules)
|
|
125
|
+
? config.trackingModules
|
|
126
|
+
: {};
|
|
127
|
+
for (const moduleName of Object.keys(baseTrackingModules)) {
|
|
128
|
+
const incoming = incomingTrackingModules[moduleName];
|
|
129
|
+
if (isRecord(incoming) && typeof incoming.enabled === 'boolean') {
|
|
130
|
+
baseTrackingModules[moduleName] = {
|
|
131
|
+
enabled: incoming.enabled,
|
|
132
|
+
...(isRecord(incoming.config) ? { config: incoming.config } : {}),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const cookieConsent = {
|
|
137
|
+
...configs_1.COOKIE_CONSENT_DEFAULTS,
|
|
138
|
+
...(isRecord(config.cookieConsent) ? config.cookieConsent : {}),
|
|
139
|
+
};
|
|
140
|
+
if (Array.isArray(cookieConsent.requiredCategories)) {
|
|
141
|
+
cookieConsent.requiredCategories = cookieConsent.requiredCategories.filter((category) => typeof category === 'string' && REQUIRED_CATEGORY_SET.has(category));
|
|
142
|
+
}
|
|
143
|
+
if (!cookieConsent.requiredCategories || cookieConsent.requiredCategories.length === 0) {
|
|
144
|
+
cookieConsent.requiredCategories = configs_1.COOKIE_CONSENT_DEFAULTS.requiredCategories;
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
pageTypePatterns: isRecord(config.pageTypePatterns)
|
|
148
|
+
? { ...configs_1.DEFAULT_PAGE_TYPE_PATTERNS, ...config.pageTypePatterns }
|
|
149
|
+
: { ...configs_1.DEFAULT_PAGE_TYPE_PATTERNS },
|
|
150
|
+
trackingModules: baseTrackingModules,
|
|
151
|
+
cookieConsent,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/tracking-contract/validators.ts"],"names":[],"mappings":"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"}
|