c15t 0.0.1-rc.3

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 (86) hide show
  1. package/.turbo/turbo-build.log +54 -0
  2. package/.turbo/turbo-fmt.log +6 -0
  3. package/.turbo/turbo-lint.log +288 -0
  4. package/.turbo/turbo-test.log +33 -0
  5. package/CHANGELOG.md +20 -0
  6. package/LICENSE.md +595 -0
  7. package/README.md +28 -0
  8. package/dist/index.cjs +118 -0
  9. package/dist/index.d.ts +27 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +19 -0
  12. package/dist/libs/__tests__/tracking-blocker.test.cjs +269 -0
  13. package/dist/libs/__tests__/tracking-blocker.test.d.ts +2 -0
  14. package/dist/libs/__tests__/tracking-blocker.test.d.ts.map +1 -0
  15. package/dist/libs/__tests__/tracking-blocker.test.js +267 -0
  16. package/dist/libs/consent-utils.cjs +68 -0
  17. package/dist/libs/consent-utils.d.ts +49 -0
  18. package/dist/libs/consent-utils.d.ts.map +1 -0
  19. package/dist/libs/consent-utils.js +23 -0
  20. package/dist/libs/tracking-blocker.cjs +167 -0
  21. package/dist/libs/tracking-blocker.d.ts +33 -0
  22. package/dist/libs/tracking-blocker.d.ts.map +1 -0
  23. package/dist/libs/tracking-blocker.js +108 -0
  24. package/dist/libs/tracking-domains.cjs +188 -0
  25. package/dist/libs/tracking-domains.d.ts +7 -0
  26. package/dist/libs/tracking-domains.d.ts.map +1 -0
  27. package/dist/libs/tracking-domains.js +146 -0
  28. package/dist/store.cjs +248 -0
  29. package/dist/store.d.ts +58 -0
  30. package/dist/store.d.ts.map +1 -0
  31. package/dist/store.initial-state.cjs +105 -0
  32. package/dist/store.initial-state.d.ts +43 -0
  33. package/dist/store.initial-state.d.ts.map +1 -0
  34. package/dist/store.initial-state.js +66 -0
  35. package/dist/store.js +219 -0
  36. package/dist/store.type.cjs +22 -0
  37. package/dist/store.type.d.ts +159 -0
  38. package/dist/store.type.d.ts.map +1 -0
  39. package/dist/store.type.js +0 -0
  40. package/dist/translations/en.cjs +96 -0
  41. package/dist/translations/en.d.ts +3 -0
  42. package/dist/translations/en.d.ts.map +1 -0
  43. package/dist/translations/en.js +54 -0
  44. package/dist/translations/index.cjs +51 -0
  45. package/dist/translations/index.d.ts +3 -0
  46. package/dist/translations/index.d.ts.map +1 -0
  47. package/dist/translations/index.js +9 -0
  48. package/dist/types/callbacks.cjs +22 -0
  49. package/dist/types/callbacks.d.ts +146 -0
  50. package/dist/types/callbacks.d.ts.map +1 -0
  51. package/dist/types/callbacks.js +0 -0
  52. package/dist/types/compliance.cjs +22 -0
  53. package/dist/types/compliance.d.ts +196 -0
  54. package/dist/types/compliance.d.ts.map +1 -0
  55. package/dist/types/compliance.js +0 -0
  56. package/dist/types/gdpr.cjs +86 -0
  57. package/dist/types/gdpr.d.ts +168 -0
  58. package/dist/types/gdpr.d.ts.map +1 -0
  59. package/dist/types/gdpr.js +44 -0
  60. package/dist/types/index.cjs +44 -0
  61. package/dist/types/index.d.ts +141 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/types/index.js +4 -0
  64. package/dist/types/translations.cjs +22 -0
  65. package/dist/types/translations.d.ts +52 -0
  66. package/dist/types/translations.d.ts.map +1 -0
  67. package/dist/types/translations.js +0 -0
  68. package/package.json +33 -0
  69. package/rslib.config.ts +28 -0
  70. package/src/index.ts +31 -0
  71. package/src/libs/__tests__/tracking-blocker.test.ts +271 -0
  72. package/src/libs/consent-utils.ts +70 -0
  73. package/src/libs/tracking-blocker.ts +202 -0
  74. package/src/libs/tracking-domains.ts +158 -0
  75. package/src/store.initial-state.ts +123 -0
  76. package/src/store.ts +450 -0
  77. package/src/store.type.ts +187 -0
  78. package/src/translations/en.ts +55 -0
  79. package/src/translations/index.ts +10 -0
  80. package/src/types/callbacks.ts +152 -0
  81. package/src/types/compliance.ts +205 -0
  82. package/src/types/gdpr.ts +217 -0
  83. package/src/types/index.ts +148 -0
  84. package/src/types/translations.ts +60 -0
  85. package/tsconfig.json +12 -0
  86. package/vitest.config.ts +15 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+ var __webpack_modules__ = {
3
+ './libs/consent-utils': function (module) {
4
+ module.exports = require('./libs/consent-utils.cjs');
5
+ },
6
+ './libs/tracking-blocker': function (module) {
7
+ module.exports = require('./libs/tracking-blocker.cjs');
8
+ },
9
+ './store': function (module) {
10
+ module.exports = require('./store.cjs');
11
+ },
12
+ './translations': function (module) {
13
+ module.exports = require('./translations/index.cjs');
14
+ },
15
+ './types': function (module) {
16
+ module.exports = require('./types/index.cjs');
17
+ },
18
+ };
19
+ var __webpack_module_cache__ = {};
20
+ function __webpack_require__(moduleId) {
21
+ var cachedModule = __webpack_module_cache__[moduleId];
22
+ if (void 0 !== cachedModule) return cachedModule.exports;
23
+ var module = (__webpack_module_cache__[moduleId] = {
24
+ exports: {},
25
+ });
26
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
27
+ return module.exports;
28
+ }
29
+ (() => {
30
+ __webpack_require__.n = function (module) {
31
+ var getter =
32
+ module && module.__esModule
33
+ ? function () {
34
+ return module['default'];
35
+ }
36
+ : function () {
37
+ return module;
38
+ };
39
+ __webpack_require__.d(getter, {
40
+ a: getter,
41
+ });
42
+ return getter;
43
+ };
44
+ })();
45
+ (() => {
46
+ __webpack_require__.d = function (exports1, definition) {
47
+ for (var key in definition)
48
+ if (
49
+ __webpack_require__.o(definition, key) &&
50
+ !__webpack_require__.o(exports1, key)
51
+ )
52
+ Object.defineProperty(exports1, key, {
53
+ enumerable: true,
54
+ get: definition[key],
55
+ });
56
+ };
57
+ })();
58
+ (() => {
59
+ __webpack_require__.o = function (obj, prop) {
60
+ return Object.prototype.hasOwnProperty.call(obj, prop);
61
+ };
62
+ })();
63
+ (() => {
64
+ __webpack_require__.r = function (exports1) {
65
+ if ('undefined' != typeof Symbol && Symbol.toStringTag)
66
+ Object.defineProperty(exports1, Symbol.toStringTag, {
67
+ value: 'Module',
68
+ });
69
+ Object.defineProperty(exports1, '__esModule', {
70
+ value: true,
71
+ });
72
+ };
73
+ })();
74
+ var __webpack_exports__ = {};
75
+ (() => {
76
+ __webpack_require__.r(__webpack_exports__);
77
+ __webpack_require__.d(__webpack_exports__, {
78
+ consentTypes: () => _types__WEBPACK_IMPORTED_MODULE_3__.consentTypes,
79
+ createConsentManagerStore: () =>
80
+ _store__WEBPACK_IMPORTED_MODULE_0__.createConsentManagerStore,
81
+ createTrackingBlocker: () =>
82
+ _libs_tracking_blocker__WEBPACK_IMPORTED_MODULE_2__.createTrackingBlocker,
83
+ defaultTranslationConfig: () =>
84
+ _translations__WEBPACK_IMPORTED_MODULE_4__.defaultTranslationConfig,
85
+ });
86
+ var _store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__('./store');
87
+ var _libs_consent_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
88
+ './libs/consent-utils'
89
+ );
90
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
91
+ for (var __WEBPACK_IMPORT_KEY__ in _libs_consent_utils__WEBPACK_IMPORTED_MODULE_1__)
92
+ if (
93
+ [
94
+ 'createConsentManagerStore',
95
+ 'consentTypes',
96
+ 'defaultTranslationConfig',
97
+ 'createTrackingBlocker',
98
+ 'default',
99
+ ].indexOf(__WEBPACK_IMPORT_KEY__) < 0
100
+ )
101
+ __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function (key) {
102
+ return _libs_consent_utils__WEBPACK_IMPORTED_MODULE_1__[key];
103
+ }.bind(0, __WEBPACK_IMPORT_KEY__);
104
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
105
+ var _libs_tracking_blocker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
106
+ './libs/tracking-blocker'
107
+ );
108
+ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__('./types');
109
+ var _translations__WEBPACK_IMPORTED_MODULE_4__ =
110
+ __webpack_require__('./translations');
111
+ })();
112
+ var __webpack_export_target__ = exports;
113
+ for (var __webpack_i__ in __webpack_exports__)
114
+ __webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
115
+ if (__webpack_exports__.__esModule)
116
+ Object.defineProperty(__webpack_export_target__, '__esModule', {
117
+ value: true,
118
+ });
@@ -0,0 +1,27 @@
1
+ export { createConsentManagerStore } from './store';
2
+ export type { PrivacyConsentState } from './store.type';
3
+ export * from './libs/consent-utils';
4
+ export { createTrackingBlocker } from './libs/tracking-blocker';
5
+ export type { TrackingBlockerConfig } from './libs/tracking-blocker';
6
+ export { consentTypes } from './types';
7
+ export type {
8
+ CallbackFunction,
9
+ Callbacks,
10
+ AllConsentNames,
11
+ ConsentType,
12
+ ConsentState,
13
+ ComplianceRegion,
14
+ ComplianceSettings,
15
+ PrivacySettings,
16
+ HasConsentedProps,
17
+ NamespaceProps,
18
+ TranslationConfig,
19
+ Translations,
20
+ CookieBannerTranslations,
21
+ ConsentManagerDialogTranslations,
22
+ ConsentManagerWidgetTranslations,
23
+ ConsentTypeTranslations,
24
+ ConsentTypesTranslations,
25
+ } from './types';
26
+ export { defaultTranslationConfig } from './translations';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EACX,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,wBAAwB,GACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ import * as __WEBPACK_EXTERNAL_MODULE__store_js_535ade31__ from './store.js';
2
+ import * as __WEBPACK_EXTERNAL_MODULE__libs_tracking_blocker_js_b46fe1fa__ from './libs/tracking-blocker.js';
3
+ import * as __WEBPACK_EXTERNAL_MODULE__types_index_js_63ede62f__ from './types/index.js';
4
+ import * as __WEBPACK_EXTERNAL_MODULE__translations_index_js_8dbce45e__ from './translations/index.js';
5
+ export * from './libs/consent-utils.js';
6
+ var __webpack_exports__consentTypes =
7
+ __WEBPACK_EXTERNAL_MODULE__types_index_js_63ede62f__.consentTypes;
8
+ var __webpack_exports__createConsentManagerStore =
9
+ __WEBPACK_EXTERNAL_MODULE__store_js_535ade31__.createConsentManagerStore;
10
+ var __webpack_exports__createTrackingBlocker =
11
+ __WEBPACK_EXTERNAL_MODULE__libs_tracking_blocker_js_b46fe1fa__.createTrackingBlocker;
12
+ var __webpack_exports__defaultTranslationConfig =
13
+ __WEBPACK_EXTERNAL_MODULE__translations_index_js_8dbce45e__.defaultTranslationConfig;
14
+ export {
15
+ __webpack_exports__consentTypes as consentTypes,
16
+ __webpack_exports__createConsentManagerStore as createConsentManagerStore,
17
+ __webpack_exports__createTrackingBlocker as createTrackingBlocker,
18
+ __webpack_exports__defaultTranslationConfig as defaultTranslationConfig,
19
+ };
@@ -0,0 +1,269 @@
1
+ 'use strict';
2
+ var __webpack_require__ = {};
3
+ (() => {
4
+ __webpack_require__.g = (function () {
5
+ if ('object' == typeof globalThis) return globalThis;
6
+ try {
7
+ return this || new Function('return this')();
8
+ } catch (e) {
9
+ if ('object' == typeof window) return window;
10
+ }
11
+ })();
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ const external_vitest_namespaceObject = require('vitest');
15
+ const external_tracking_blocker_cjs_namespaceObject = require('../tracking-blocker.cjs');
16
+ const BLOCKED_CONSENT = {
17
+ experience: false,
18
+ functionality: false,
19
+ marketing: false,
20
+ measurement: false,
21
+ necessary: true,
22
+ };
23
+ const ALLOWED_CONSENT = {
24
+ ...BLOCKED_CONSENT,
25
+ measurement: true,
26
+ };
27
+ (0, external_vitest_namespaceObject.describe)('TrackingBlocker', () => {
28
+ const originalFetch = __webpack_require__.g.fetch;
29
+ const originalXHR = __webpack_require__.g.XMLHttpRequest;
30
+ (0, external_vitest_namespaceObject.beforeAll)(() => {
31
+ __webpack_require__.g.fetch = external_vitest_namespaceObject.vi
32
+ .fn()
33
+ .mockImplementation(() => Promise.resolve(new Response()));
34
+ if (!__webpack_require__.g.XMLHttpRequest)
35
+ __webpack_require__.g.XMLHttpRequest = originalXHR;
36
+ });
37
+ (0, external_vitest_namespaceObject.afterAll)(() => {
38
+ __webpack_require__.g.fetch = originalFetch;
39
+ __webpack_require__.g.XMLHttpRequest = originalXHR;
40
+ });
41
+ (0, external_vitest_namespaceObject.beforeEach)(() => {
42
+ external_vitest_namespaceObject.vi.clearAllMocks();
43
+ external_vitest_namespaceObject.vi.restoreAllMocks();
44
+ __webpack_require__.g.fetch = external_vitest_namespaceObject.vi
45
+ .fn()
46
+ .mockImplementation(() => Promise.resolve(new Response()));
47
+ window.fetch = __webpack_require__.g.fetch;
48
+ window.XMLHttpRequest = originalXHR;
49
+ external_vitest_namespaceObject.vi.spyOn(document, 'dispatchEvent');
50
+ });
51
+ (0, external_vitest_namespaceObject.test)(
52
+ 'blocks fetch requests to tracking domains when consent not granted',
53
+ async () => {
54
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
55
+ {},
56
+ BLOCKED_CONSENT
57
+ );
58
+ await (0, external_vitest_namespaceObject.expect)(
59
+ fetch('https://www.google-analytics.com/analytics.js')
60
+ ).rejects.toThrow(
61
+ 'Request to https://www.google-analytics.com/analytics.js blocked due to missing consent'
62
+ );
63
+ (0, external_vitest_namespaceObject.expect)(
64
+ document.dispatchEvent
65
+ ).toHaveBeenCalledWith(
66
+ external_vitest_namespaceObject.expect.objectContaining({
67
+ type: 'ConsentBlockedRequest',
68
+ detail: {
69
+ url: 'https://www.google-analytics.com/analytics.js',
70
+ },
71
+ })
72
+ );
73
+ }
74
+ );
75
+ (0, external_vitest_namespaceObject.test)(
76
+ 'blocks XMLHttpRequest to tracking domains when consent not granted',
77
+ () => {
78
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
79
+ {},
80
+ BLOCKED_CONSENT
81
+ );
82
+ const xhr = new XMLHttpRequest();
83
+ (0, external_vitest_namespaceObject.expect)(() => {
84
+ xhr.open('GET', 'https://www.google-analytics.com/analytics.js');
85
+ }).toThrow(
86
+ 'Request to https://www.google-analytics.com/analytics.js blocked due to missing consent'
87
+ );
88
+ (0, external_vitest_namespaceObject.expect)(
89
+ document.dispatchEvent
90
+ ).toHaveBeenCalledWith(
91
+ external_vitest_namespaceObject.expect.objectContaining({
92
+ type: 'ConsentBlockedRequest',
93
+ detail: {
94
+ url: 'https://www.google-analytics.com/analytics.js',
95
+ },
96
+ })
97
+ );
98
+ }
99
+ );
100
+ (0, external_vitest_namespaceObject.test)(
101
+ 'allows fetch requests to tracking domains after consent granted',
102
+ async () => {
103
+ window.fetch = __webpack_require__.g.fetch;
104
+ const trackingBlocker = (0,
105
+ external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
106
+ {},
107
+ ALLOWED_CONSENT
108
+ );
109
+ const fetchSpy = external_vitest_namespaceObject.vi.spyOn(
110
+ window,
111
+ 'fetch'
112
+ );
113
+ await fetch('https://www.google-analytics.com/analytics.js');
114
+ (0, external_vitest_namespaceObject.expect)(
115
+ fetchSpy
116
+ ).toHaveBeenCalledWith('https://www.google-analytics.com/analytics.js');
117
+ trackingBlocker.destroy();
118
+ }
119
+ );
120
+ (0, external_vitest_namespaceObject.test)(
121
+ 'allows XMLHttpRequest to tracking domains after consent granted',
122
+ () => {
123
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
124
+ {},
125
+ ALLOWED_CONSENT
126
+ );
127
+ const xhr = new XMLHttpRequest();
128
+ (0, external_vitest_namespaceObject.expect)(() => {
129
+ xhr.open('GET', 'https://www.google-analytics.com/analytics.js');
130
+ }).not.toThrow();
131
+ }
132
+ );
133
+ (0, external_vitest_namespaceObject.test)(
134
+ 'allows requests to non-tracking domains regardless of consent',
135
+ async () => {
136
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
137
+ {},
138
+ BLOCKED_CONSENT
139
+ );
140
+ const fetchSpy = external_vitest_namespaceObject.vi.spyOn(
141
+ window,
142
+ 'fetch'
143
+ );
144
+ await fetch('https://api.example.com/data');
145
+ (0, external_vitest_namespaceObject.expect)(
146
+ fetchSpy
147
+ ).toHaveBeenCalledWith('https://api.example.com/data');
148
+ const xhr = new XMLHttpRequest();
149
+ (0, external_vitest_namespaceObject.expect)(() => {
150
+ xhr.open('GET', 'https://api.example.com/data');
151
+ }).not.toThrow();
152
+ }
153
+ );
154
+ (0, external_vitest_namespaceObject.test)(
155
+ 'handles custom domain consent map',
156
+ async () => {
157
+ const trackingBlocker = (0,
158
+ external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
159
+ {
160
+ overrideDomainConsentMap: true,
161
+ domainConsentMap: {
162
+ 'custom-analytics.example.com': 'measurement',
163
+ },
164
+ },
165
+ BLOCKED_CONSENT
166
+ );
167
+ await (0, external_vitest_namespaceObject.expect)(
168
+ fetch('https://custom-analytics.example.com/track')
169
+ ).rejects.toThrow(
170
+ 'Request to https://custom-analytics.example.com/track blocked due to missing consent'
171
+ );
172
+ trackingBlocker.updateConsents({
173
+ experience: false,
174
+ functionality: false,
175
+ marketing: false,
176
+ measurement: true,
177
+ necessary: true,
178
+ });
179
+ const fetchSpy = external_vitest_namespaceObject.vi.spyOn(
180
+ window,
181
+ 'fetch'
182
+ );
183
+ await fetch('https://custom-analytics.example.com/track');
184
+ (0, external_vitest_namespaceObject.expect)(
185
+ fetchSpy
186
+ ).toHaveBeenCalledWith('https://custom-analytics.example.com/track');
187
+ }
188
+ );
189
+ (0, external_vitest_namespaceObject.test)(
190
+ 'handles subdomains correctly',
191
+ async () => {
192
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
193
+ {},
194
+ BLOCKED_CONSENT
195
+ );
196
+ await (0, external_vitest_namespaceObject.expect)(
197
+ fetch('https://subdomain.google-analytics.com/track')
198
+ ).rejects.toThrow(
199
+ 'Request to https://subdomain.google-analytics.com/track blocked due to missing consent'
200
+ );
201
+ }
202
+ );
203
+ (0, external_vitest_namespaceObject.test)(
204
+ 'can be disabled via config',
205
+ async () => {
206
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
207
+ {
208
+ disableAutomaticBlocking: true,
209
+ },
210
+ BLOCKED_CONSENT
211
+ );
212
+ await fetch('https://www.google-analytics.com/analytics.js');
213
+ (0, external_vitest_namespaceObject.expect)(fetch).toHaveBeenCalledWith(
214
+ 'https://www.google-analytics.com/analytics.js'
215
+ );
216
+ }
217
+ );
218
+ (0, external_vitest_namespaceObject.test)(
219
+ 'cleanup restores original fetch and XMLHttpRequest functionality',
220
+ async () => {
221
+ const trackingBlocker = (0,
222
+ external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
223
+ {},
224
+ BLOCKED_CONSENT
225
+ );
226
+ await (0, external_vitest_namespaceObject.expect)(
227
+ fetch('https://www.google-analytics.com/analytics.js')
228
+ ).rejects.toThrow();
229
+ trackingBlocker.destroy();
230
+ await fetch('https://www.google-analytics.com/analytics.js');
231
+ (0, external_vitest_namespaceObject.expect)(fetch).toHaveBeenCalledWith(
232
+ 'https://www.google-analytics.com/analytics.js'
233
+ );
234
+ const xhr = new XMLHttpRequest();
235
+ (0, external_vitest_namespaceObject.expect)(() => {
236
+ xhr.open('GET', 'https://www.google-analytics.com/analytics.js');
237
+ }).not.toThrow();
238
+ }
239
+ );
240
+ (0, external_vitest_namespaceObject.test)(
241
+ 'handles multiple concurrent requests correctly',
242
+ async () => {
243
+ (0, external_tracking_blocker_cjs_namespaceObject.createTrackingBlocker)(
244
+ {},
245
+ BLOCKED_CONSENT
246
+ );
247
+ const requests = Promise.all([
248
+ (0, external_vitest_namespaceObject.expect)(
249
+ fetch('https://www.google-analytics.com/analytics.js')
250
+ ).rejects.toThrow(),
251
+ (0, external_vitest_namespaceObject.expect)(
252
+ fetch('https://www.google-analytics.com/collect')
253
+ ).rejects.toThrow(),
254
+ fetch('https://api.example.com/data'),
255
+ ]);
256
+ await requests;
257
+ (0, external_vitest_namespaceObject.expect)(
258
+ document.dispatchEvent
259
+ ).toHaveBeenCalledTimes(6);
260
+ }
261
+ );
262
+ });
263
+ var __webpack_export_target__ = exports;
264
+ for (var __webpack_i__ in __webpack_exports__)
265
+ __webpack_export_target__[__webpack_i__] = __webpack_exports__[__webpack_i__];
266
+ if (__webpack_exports__.__esModule)
267
+ Object.defineProperty(__webpack_export_target__, '__esModule', {
268
+ value: true,
269
+ });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tracking-blocker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking-blocker.test.d.ts","sourceRoot":"","sources":["../../../src/libs/__tests__/tracking-blocker.test.ts"],"names":[],"mappings":""}