@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.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/dist/npm/cjs/modules/contract/recommendation-contract.js +1 -1
  4. package/dist/npm/cjs/modules/contract/search-contract.js +1 -1
  5. package/dist/npm/cjs/modules/contract/tracking-contract.js +1 -1
  6. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +164 -0
  7. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
  8. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +21 -0
  9. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
  10. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +3 -0
  11. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
  12. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +107 -0
  13. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
  14. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +404 -0
  15. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +1 -0
  16. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +21 -0
  17. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +1 -0
  18. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +8 -0
  19. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +1 -0
  20. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +126 -0
  21. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +1 -0
  22. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +133 -0
  23. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
  24. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +21 -0
  25. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +1 -0
  26. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +3 -0
  27. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +1 -0
  28. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +154 -0
  29. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
  30. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +1481 -0
  31. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +1 -0
  32. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +22 -0
  33. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +1 -0
  34. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +21 -0
  35. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +1 -0
  36. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +8 -0
  37. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +1 -0
  38. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +139 -0
  39. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +1 -0
  40. package/dist/npm/cjs/modules/contract/widget-contract.js +1 -1
  41. package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +2 -2
  42. package/dist/npm/esm/modules/contract/recommendation-contract.js +1 -1
  43. package/dist/npm/esm/modules/contract/search-contract.d.ts +1 -1
  44. package/dist/npm/esm/modules/contract/search-contract.js +1 -1
  45. package/dist/npm/esm/modules/contract/tracking-contract.d.ts +1 -1
  46. package/dist/npm/esm/modules/contract/tracking-contract.js +1 -1
  47. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +8 -0
  48. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +160 -0
  49. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
  50. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +3 -0
  51. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +5 -0
  52. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
  53. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +56 -0
  54. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +2 -0
  55. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
  56. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +3 -0
  57. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +103 -0
  58. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
  59. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +35 -0
  60. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +396 -0
  61. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +1 -0
  62. package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +3 -0
  63. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +5 -0
  64. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +1 -0
  65. package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +119 -0
  66. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +7 -0
  67. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +1 -0
  68. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +22 -0
  69. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +118 -0
  70. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +1 -0
  71. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +7 -0
  72. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +130 -0
  73. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
  74. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +3 -0
  75. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +5 -0
  76. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +1 -0
  77. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +37 -0
  78. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +2 -0
  79. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +1 -0
  80. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +6 -0
  81. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +147 -0
  82. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
  83. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +22 -0
  84. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +1472 -0
  85. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +1 -0
  86. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +4 -0
  87. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +6 -0
  88. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +1 -0
  89. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +14 -0
  90. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +18 -0
  91. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +1 -0
  92. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +128 -0
  93. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +7 -0
  94. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +1 -0
  95. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +11 -0
  96. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +132 -0
  97. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +1 -0
  98. package/dist/npm/esm/modules/contract/widget-contract.d.ts +1 -1
  99. package/dist/npm/esm/modules/contract/widget-contract.js +1 -1
  100. package/dist/npm/esm/selwise.js +2 -2
  101. 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -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":";;AAwBA,wDAEC;AAED,8DAEC;AAED,kEAgCC;AAiCD,0DAuDC;AAED,0DAsCC;AAhMD,0FAA0F;AAC1F,uCAMmB;AAOnB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,0BAAgB,CAAC,CAAC;AACtD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9F,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,iCAAuB,CAAC,CAAC;AAChE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAEnG,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,OAAO,mBAAmB,CAAC,GAAG,CAAC,SAAgB,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,yBAAyB,CAAC,QAAgB;IACxD,OAAO,sBAAsB,CAAC,GAAG,CAAC,QAAe,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,2BAA2B,CAAC,OAAgB;IAC1D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,8BAA8B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/D,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAU,EAAE,CAAC;QACxE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,GAAG,EAAE,EAAE,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAgB;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAAgB,CAAC,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,gCAAgC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjE,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,oCAAoC,GAAG,EAAE,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,SAAS,IAAI,KAAK,IAAI,OAAQ,KAA8B,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACvF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,yCAAyC,GAAG,EAAE,EAAE,CAAC;QACnF,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAA4B;IAClE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oCAA0B,CAAC,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACpE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CACtC,CAAC;QACF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,kCAAkC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC1E,WAAW,EAAE,kBAAkB;aAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;QACrE,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC5D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;YAC1E,CAAC;YAED,MAAM,iBAAiB,GAAI,MAAM,CAAC,aAAa,CAAC,kBAAgC,CAAC,MAAM,CACrF,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CACnF,CAAC;YAEF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;YACxE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACzE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAA4B;IAClE,MAAM,mBAAmB,GAAyC,EAAE,GAAG,0BAAgB,EAAE,CAAC;IAC1F,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;QAC9D,CAAC,CAAC,MAAM,CAAC,eAAe;QACxB,CAAC,CAAC,EAAE,CAAC;IAEP,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC1D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChE,mBAAmB,CAAC,UAAU,CAAC,GAAG;gBAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,GAAG,iCAAuB;QAC1B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpD,aAAa,CAAC,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,MAAM,CACxE,CAAC,QAAiB,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,kBAAkB,IAAI,aAAa,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvF,aAAa,CAAC,kBAAkB,GAAG,iCAAuB,CAAC,kBAAkB,CAAC;IAChF,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACjD,CAAC,CAAC,EAAE,GAAG,oCAA0B,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE;YAC/D,CAAC,CAAC,EAAE,GAAG,oCAA0B,EAAE;QACrC,eAAe,EAAE,mBAAmB;QACpC,aAAa;KACd,CAAC;AACJ,CAAC"}