@duckduckgo/autoconsent 1.0.7 → 2.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.
Files changed (187) hide show
  1. package/.eslintrc.cjs +14 -0
  2. package/.vscode/.idea/.vscode.iml +9 -0
  3. package/.vscode/.idea/modules.xml +8 -0
  4. package/.vscode/.idea/workspace.xml +28 -0
  5. package/.vscode/settings.json +7 -0
  6. package/Jenkinsfile +68 -39
  7. package/api.md +104 -0
  8. package/dist/addon-firefox/background.bundle.js +1 -0
  9. package/dist/addon-firefox/content.bundle.js +1 -0
  10. package/dist/addon-firefox/icons/cog.png +0 -0
  11. package/dist/addon-firefox/icons/cookie-idle.png +0 -0
  12. package/dist/addon-firefox/icons/cookie.png +0 -0
  13. package/dist/addon-firefox/icons/party.png +0 -0
  14. package/dist/addon-firefox/icons/tick.png +0 -0
  15. package/dist/addon-firefox/icons/verified.png +0 -0
  16. package/dist/addon-firefox/rules.json +4167 -0
  17. package/dist/addon-mv3/background.bundle.js +1 -0
  18. package/dist/addon-mv3/content.bundle.js +1 -0
  19. package/dist/addon-mv3/icons/cog.png +0 -0
  20. package/dist/addon-mv3/icons/cookie-idle.png +0 -0
  21. package/dist/addon-mv3/icons/cookie.png +0 -0
  22. package/dist/addon-mv3/icons/party.png +0 -0
  23. package/dist/addon-mv3/icons/tick.png +0 -0
  24. package/dist/addon-mv3/icons/verified.png +0 -0
  25. package/dist/addon-mv3/rules.json +4167 -0
  26. package/dist/autoconsent.cjs.js +1 -1383
  27. package/dist/autoconsent.esm.js +1 -1375
  28. package/dist/autoconsent.playwright.js +1 -0
  29. package/lib/cmps/all.ts +15 -10
  30. package/lib/cmps/base.ts +95 -90
  31. package/lib/cmps/consentmanager.ts +31 -19
  32. package/lib/cmps/consentomatic.ts +89 -0
  33. package/lib/cmps/cookiebot.ts +62 -53
  34. package/lib/cmps/evidon.ts +29 -18
  35. package/lib/cmps/onetrust.ts +32 -20
  36. package/lib/cmps/sourcepoint-frame.ts +104 -0
  37. package/lib/cmps/sourcepoint-top.ts +47 -0
  38. package/lib/cmps/trustarc-frame.ts +115 -0
  39. package/lib/cmps/trustarc-top.ts +97 -0
  40. package/lib/consentomatic/index.ts +233 -70
  41. package/lib/{web/consentomatic → consentomatic}/tools.ts +0 -0
  42. package/lib/eval-handler.ts +58 -0
  43. package/lib/index.ts +0 -2
  44. package/lib/messages.ts +100 -0
  45. package/lib/rule-executors.ts +108 -0
  46. package/lib/rules.ts +82 -0
  47. package/lib/types.ts +35 -0
  48. package/lib/utils.ts +64 -0
  49. package/lib/web.ts +288 -74
  50. package/package.json +20 -16
  51. package/playwright/content.ts +21 -0
  52. package/playwright/runner.ts +162 -0
  53. package/playwright.config.ts +7 -0
  54. package/readme.md +61 -47
  55. package/rollup.config.js +30 -16
  56. package/rules/autoconsent/192.json +17 -0
  57. package/rules/autoconsent/ausopen.json +8 -0
  58. package/rules/autoconsent/baden-wuerttemberg-de.json +7 -3
  59. package/rules/autoconsent/bing.json +14 -0
  60. package/rules/autoconsent/bundesregierung-de.json +5 -1
  61. package/rules/autoconsent/cc-banner.json +0 -1
  62. package/rules/autoconsent/cookie-law-info.json +1 -1
  63. package/rules/autoconsent/cookie-notice.json +1 -2
  64. package/rules/autoconsent/cookieconsent.json +5 -6
  65. package/rules/autoconsent/destatis-de.json +2 -2
  66. package/rules/autoconsent/dunelm.json +18 -0
  67. package/rules/autoconsent/etsy.json +4 -3
  68. package/rules/autoconsent/eu-cookie-compliance.json +0 -1
  69. package/rules/autoconsent/gov-uk.json +10 -0
  70. package/rules/autoconsent/hl-co-uk.json +8 -9
  71. package/rules/autoconsent/johnlewis.json +5 -2
  72. package/rules/autoconsent/marksandspencer.json +8 -0
  73. package/rules/autoconsent/mediamarkt-de.json +1 -1
  74. package/rules/autoconsent/microsoft.json +1 -1
  75. package/rules/autoconsent/notice-cookie.json +0 -1
  76. package/rules/autoconsent/osano.json +4 -2
  77. package/rules/autoconsent/{paypal-de.json → paypal.json} +6 -2
  78. package/rules/autoconsent/snigel.json +2 -1
  79. package/rules/autoconsent/tealium.json +4 -5
  80. package/rules/autoconsent/thefreedictionary.json +1 -1
  81. package/rules/autoconsent/uswitch.json +8 -0
  82. package/rules/autoconsent/waitrose.json +28 -0
  83. package/rules/autoconsent/wetransfer.json +7 -0
  84. package/rules/rules.json +345 -45
  85. package/tests/192.spec.ts +7 -0
  86. package/tests/arzt-auskunft.spec.ts +1 -1
  87. package/tests/asus.spec.ts +1 -1
  88. package/tests/ausopen.spec.ts +7 -0
  89. package/tests/aws.amazon.spec.ts +1 -1
  90. package/tests/baden-wuerttemberg.spec.ts +1 -1
  91. package/tests/borlabs.spec.ts +1 -1
  92. package/tests/bundesregierung.spec.ts +5 -2
  93. package/tests/ccbanner.spec.ts +1 -1
  94. package/tests/consentmanager.spec.ts +3 -3
  95. package/tests/cookiebot.spec.ts +8 -1
  96. package/tests/cookieconsent.spec.ts +1 -1
  97. package/tests/cookielawinfo.spec.ts +1 -1
  98. package/tests/cookienotice.spec.ts +1 -1
  99. package/tests/corona-in-zahlen.spec.ts +1 -1
  100. package/tests/deepl.spec.ts +1 -1
  101. package/tests/destatis.spec.ts +1 -1
  102. package/tests/didomi.spec.ts +7 -3
  103. package/tests/drupal.spec.ts +8 -0
  104. package/tests/dunelm.spec.ts +7 -0
  105. package/tests/etsy.spec.ts +1 -1
  106. package/tests/eu-cookie-compliance-banner.spec.ts +1 -1
  107. package/tests/evidon.spec.ts +7 -2
  108. package/tests/fundingchoices.spec.ts +2 -1
  109. package/tests/gov-uk.spec.ts +9 -0
  110. package/tests/hl-co-uk.spec.ts +1 -1
  111. package/tests/hubspot.spec.ts +1 -1
  112. package/tests/ionos.spec.ts +1 -1
  113. package/tests/johnlewis.spec.ts +2 -2
  114. package/tests/klaro.spec.ts +1 -1
  115. package/tests/marksandspencer.spec.ts +7 -0
  116. package/tests/mediamarkt.spec.ts +1 -1
  117. package/tests/metoffice-gov-uk.spec.ts +1 -1
  118. package/tests/microsoft.spec.ts +1 -1
  119. package/tests/moneysavingexpert.spec.ts +1 -1
  120. package/tests/motor-talk.spec.ts +1 -1
  121. package/tests/national-lottery.spec.ts +1 -1
  122. package/tests/netflix.spec.ts +1 -1
  123. package/tests/nhs.spec.ts +1 -1
  124. package/tests/notice-cookie.spec.ts +1 -1
  125. package/tests/obi.spec.ts +1 -1
  126. package/tests/oil.spec.ts +2 -2
  127. package/tests/onetrust.spec.ts +27 -2
  128. package/tests/osano.spec.ts +1 -1
  129. package/tests/otto.spec.ts +1 -1
  130. package/tests/paypal.spec.ts +8 -6
  131. package/tests/quantcast.spec.ts +5 -2
  132. package/tests/snigel.spec.ts +1 -1
  133. package/tests/sourcepoint.spec.ts +8 -8
  134. package/tests/springer.spec.ts +2 -2
  135. package/tests/steampowered.spec.ts +1 -1
  136. package/tests/tealium.spec.ts +1 -1
  137. package/tests/testcmp.spec.ts +1 -1
  138. package/tests/thalia.spec.ts +1 -1
  139. package/tests/thefreedictionary.spec.ts +1 -1
  140. package/tests/trustarc.spec.ts +26 -3
  141. package/tests/usercentrics-1.spec.ts +1 -1
  142. package/tests/uswitch.spec.ts +7 -0
  143. package/tests/vodafone.spec.ts +1 -1
  144. package/tests/waitrose.spec.ts +7 -0
  145. package/tests/wetransfer.spec.ts +7 -0
  146. package/tests/wordpressgdpr.spec.ts +2 -2
  147. package/tests/xing.spec.ts +1 -1
  148. package/tsconfig.json +2 -2
  149. package/update_version.js +10 -6
  150. package/.eslintrc +0 -12
  151. package/cosmetics/rules.json +0 -110
  152. package/dist/autoconsent.puppet.js +0 -1074
  153. package/lib/cmps/all.js +0 -19
  154. package/lib/cmps/base.js +0 -174
  155. package/lib/cmps/consentmanager.js +0 -31
  156. package/lib/cmps/cookiebot.js +0 -73
  157. package/lib/cmps/evidon.js +0 -26
  158. package/lib/cmps/onetrust.js +0 -34
  159. package/lib/cmps/sourcepoint.js +0 -82
  160. package/lib/cmps/sourcepoint.ts +0 -95
  161. package/lib/cmps/trustarc.js +0 -106
  162. package/lib/cmps/trustarc.ts +0 -147
  163. package/lib/config.js +0 -1
  164. package/lib/consentomatic/index.js +0 -52
  165. package/lib/detector.js +0 -33
  166. package/lib/detector.ts +0 -34
  167. package/lib/hider.js +0 -13
  168. package/lib/hider.ts +0 -16
  169. package/lib/index.js +0 -4
  170. package/lib/messages.d.ts +0 -61
  171. package/lib/node.js +0 -35
  172. package/lib/node.ts +0 -43
  173. package/lib/puppet/tab.js +0 -121
  174. package/lib/puppet/tab.ts +0 -146
  175. package/lib/rules.d.ts +0 -80
  176. package/lib/tabwrapper.js +0 -67
  177. package/lib/tabwrapper.ts +0 -74
  178. package/lib/types.d.ts +0 -61
  179. package/lib/web/consentomatic/index.ts +0 -249
  180. package/lib/web/content-utils.js +0 -29
  181. package/lib/web/content-utils.ts +0 -31
  182. package/lib/web/content.js +0 -89
  183. package/lib/web/content.ts +0 -80
  184. package/lib/web/tab.js +0 -112
  185. package/lib/web/tab.ts +0 -178
  186. package/lib/web.js +0 -95
  187. package/tests/runner.ts +0 -61
package/rules/rules.json CHANGED
@@ -1,5 +1,36 @@
1
1
  {
2
2
  "autoconsent": [
3
+ {
4
+ "name": "192.com",
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".ont-cookies"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": ".ont-cookies"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "click": ".ont-btn-main.ont-cookies-btn.js-ont-btn-ok2"
18
+ }
19
+ ],
20
+ "optOut": [
21
+ {
22
+ "click": ".ont-cookes-btn-manage"
23
+ },
24
+ {
25
+ "click": ".ont-btn-main.ont-cookies-btn.js-ont-btn-choose"
26
+ }
27
+ ],
28
+ "test": [
29
+ {
30
+ "eval": "document.cookie.includes('CC_ADVERTISING=NO') && document.cookie.includes('CC_ANALYTICS=NO')"
31
+ }
32
+ ]
33
+ },
3
34
  {
4
35
  "name": "arzt-auskunft.de",
5
36
  "prehideSelectors": [
@@ -52,6 +83,34 @@
52
83
  }
53
84
  ]
54
85
  },
86
+ {
87
+ "name": "ausopen.com",
88
+ "isHidingRule": true,
89
+ "detectCmp": [
90
+ {
91
+ "exists": ".gdpr-popup__message"
92
+ }
93
+ ],
94
+ "detectPopup": [
95
+ {
96
+ "visible": ".gdpr-popup__message"
97
+ }
98
+ ],
99
+ "optOut": [
100
+ {
101
+ "hide": [
102
+ ".gdpr-popup__message"
103
+ ]
104
+ }
105
+ ],
106
+ "optIn": [
107
+ {
108
+ "click": [
109
+ ".gdpr-popup__message button"
110
+ ]
111
+ }
112
+ ]
113
+ },
55
114
  {
56
115
  "name": "aws.amazon.com",
57
116
  "prehideSelectors": [
@@ -89,7 +148,6 @@
89
148
  },
90
149
  {
91
150
  "name": "baden-wuerttemberg.de",
92
- "isHidingRule": true,
93
151
  "prehideSelectors": [
94
152
  ".cookie-alert.t-dark"
95
153
  ],
@@ -105,10 +163,53 @@
105
163
  ],
106
164
  "optIn": [
107
165
  {
108
- "click": ".cookie-alert__button"
166
+ "click": ".cookie-alert__form input:not([disabled]):not([checked])"
167
+ },
168
+ {
169
+ "click": ".cookie-alert__button button"
170
+ }
171
+ ],
172
+ "optOut": [
173
+ {
174
+ "hide": [
175
+ ".cookie-alert.t-dark"
176
+ ]
177
+ }
178
+ ]
179
+ },
180
+ {
181
+ "name": "bing.com",
182
+ "prehideSelectors": [
183
+ "#bnp_container"
184
+ ],
185
+ "detectCmp": [
186
+ {
187
+ "exists": "#bnp_cookie_banner"
188
+ }
189
+ ],
190
+ "detectPopup": [
191
+ {
192
+ "visible": "#bnp_cookie_banner"
193
+ }
194
+ ],
195
+ "optIn": [
196
+ {
197
+ "click": "#bnp_btn_accept"
109
198
  }
110
199
  ],
111
- "optOut": []
200
+ "optOut": [
201
+ {
202
+ "click": "#bnp_btn_preference"
203
+ },
204
+ {
205
+ "click": "#mcp_savesettings"
206
+ }
207
+ ],
208
+ "test": [
209
+ {
210
+ "eval": "document.cookie.includes('AL=0') && document.cookie.includes('AD=0') && document.cookie.includes('SM=0')"
211
+ }
212
+ ]
112
213
  },
113
214
  {
114
215
  "name": "borlabs",
@@ -158,7 +259,11 @@
158
259
  ],
159
260
  "optOut": [
160
261
  {
161
- "click": ".bpa-close-button"
262
+ "wait": 500,
263
+ "comment": "click is not immediately recognized"
264
+ },
265
+ {
266
+ "waitForThenClick": ".bpa-close-button"
162
267
  }
163
268
  ],
164
269
  "test": [
@@ -172,7 +277,6 @@
172
277
  "prehideSelectors": [
173
278
  ".cc_banner-wrapper"
174
279
  ],
175
- "isHidingRule": true,
176
280
  "detectCmp": [
177
281
  {
178
282
  "exists": ".cc_banner-wrapper"
@@ -213,7 +317,7 @@
213
317
  ],
214
318
  "optIn": [
215
319
  {
216
- "click": "[data-cli_action=\"accept\"]"
320
+ "click": "[data-cli_action=\"accept_all\"]"
217
321
  }
218
322
  ],
219
323
  "optOut": [
@@ -237,7 +341,6 @@
237
341
  "prehideSelectors": [
238
342
  "#cookie-notice"
239
343
  ],
240
- "isHidingRule": true,
241
344
  "detectCmp": [
242
345
  {
243
346
  "exists": "#cookie-notice"
@@ -250,7 +353,7 @@
250
353
  ],
251
354
  "optIn": [
252
355
  {
253
- "hide": [
356
+ "click": [
254
357
  "#cn-accept-cookie"
255
358
  ]
256
359
  }
@@ -266,17 +369,16 @@
266
369
  {
267
370
  "name": "cookieconsent",
268
371
  "prehideSelectors": [
269
- "[aria-label=\"cookieconsent\"]"
372
+ "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
270
373
  ],
271
- "isHidingRule": true,
272
374
  "detectCmp": [
273
375
  {
274
- "exists": "[aria-label=\"cookieconsent\"]"
376
+ "exists": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
275
377
  }
276
378
  ],
277
379
  "detectPopup": [
278
380
  {
279
- "visible": "[aria-label=\"cookieconsent\"]"
381
+ "visible": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
280
382
  }
281
383
  ],
282
384
  "optIn": [
@@ -287,7 +389,7 @@
287
389
  "optOut": [
288
390
  {
289
391
  "hide": [
290
- "[aria-label=\"cookieconsent\"]"
392
+ "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
291
393
  ]
292
394
  }
293
395
  ]
@@ -352,7 +454,6 @@
352
454
  "prehideSelectors": [
353
455
  "div[aria-labelledby=cookiebannerhead]"
354
456
  ],
355
- "isHidingRule": true,
356
457
  "detectCmp": [
357
458
  {
358
459
  "exists": ".cookiebannerbox"
@@ -369,6 +470,13 @@
369
470
  ".cookiebannerbox"
370
471
  ]
371
472
  }
473
+ ],
474
+ "optIn": [
475
+ {
476
+ "click": [
477
+ ".cookiebannerbox .close"
478
+ ]
479
+ }
372
480
  ]
373
481
  },
374
482
  {
@@ -394,8 +502,46 @@
394
502
  }
395
503
  ]
396
504
  },
505
+ {
506
+ "name": "dunelm.com",
507
+ "prehideSelectors": [
508
+ "div[data-testid=cookie-consent-modal-backdrop]"
509
+ ],
510
+ "detectCmp": [
511
+ {
512
+ "exists": "div[data-testid=cookie-consent-message-contents]"
513
+ }
514
+ ],
515
+ "detectPopup": [
516
+ {
517
+ "visible": "div[data-testid=cookie-consent-message-contents]"
518
+ }
519
+ ],
520
+ "optIn": [
521
+ {
522
+ "click": "[data-testid=\"cookie-consent-allow-all\"]"
523
+ }
524
+ ],
525
+ "optOut": [
526
+ {
527
+ "click": "button[data-testid=cookie-consent-adjust-settings]"
528
+ },
529
+ {
530
+ "click": "button[data-testid=cookie-consent-preferences-save]"
531
+ }
532
+ ],
533
+ "test": [
534
+ {
535
+ "eval": "document.cookie.includes('cc_functional=0') && document.cookie.includes('cc_targeting=0')"
536
+ }
537
+ ]
538
+ },
397
539
  {
398
540
  "name": "etsy",
541
+ "prehideSelectors": [
542
+ "#gdpr-single-choice-overlay",
543
+ "#gdpr-privacy-settings"
544
+ ],
399
545
  "detectCmp": [
400
546
  {
401
547
  "exists": "#gdpr-single-choice-overlay"
@@ -408,19 +554,17 @@
408
554
  ],
409
555
  "optOut": [
410
556
  {
411
- "hide": [
412
- "#gdpr-single-choice-overlay",
413
- "#gdpr-privacy-settings"
414
- ]
557
+ "click": "button[data-gdpr-open-full-settings]"
415
558
  },
416
559
  {
417
- "click": "button[data-gdpr-open-full-settings]"
560
+ "waitForVisible": ".gdpr-overlay-body input",
561
+ "timeout": 3000
418
562
  },
419
563
  {
420
- "wait": 500
564
+ "wait": 1000
421
565
  },
422
566
  {
423
- "eval": "document.querySelectorAll('.gdpr-overlay-body input').forEach(toggle => { toggle.checked = false; }) || true"
567
+ "eval": "document.querySelectorAll(\".gdpr-overlay-body input\").forEach(toggle => { toggle.checked = false; }) || true"
424
568
  },
425
569
  {
426
570
  "eval": "document.querySelector('.gdpr-overlay-view button[data-wt-overlay-close]').click() || true"
@@ -434,7 +578,6 @@
434
578
  },
435
579
  {
436
580
  "name": "eu-cookie-compliance-banner",
437
- "isHidingRule": true,
438
581
  "detectCmp": [
439
582
  {
440
583
  "exists": ".eu-cookie-compliance-banner-info"
@@ -503,6 +646,32 @@
503
646
  }
504
647
  ]
505
648
  },
649
+ {
650
+ "name": "gov.uk",
651
+ "detectCmp": [
652
+ {
653
+ "exists": "#global-cookie-message"
654
+ }
655
+ ],
656
+ "detectPopup": [
657
+ {
658
+ "exists": "#global-cookie-message"
659
+ }
660
+ ],
661
+ "optIn": [
662
+ {
663
+ "click": "button[data-accept-cookies=true]"
664
+ }
665
+ ],
666
+ "optOut": [
667
+ {
668
+ "click": "button[data-reject-cookies=true],#reject-cookies"
669
+ },
670
+ {
671
+ "click": "button[data-hide-cookie-banner=true],#hide-cookie-decision"
672
+ }
673
+ ]
674
+ },
506
675
  {
507
676
  "name": "hl.co.uk",
508
677
  "prehideSelectors": [
@@ -534,19 +703,18 @@
534
703
  ]
535
704
  },
536
705
  {
537
- "wait": 500
706
+ "waitFor": "#AOCookieToggle"
538
707
  },
539
708
  {
540
- "click": "#AOCookieToggle"
541
- },
542
- {
543
- "eval": "document.querySelector('#AOCookieToggle').getAttribute('aria-pressed') === 'false'"
709
+ "click": "#AOCookieToggle[aria-pressed=true]",
710
+ "optional": true
544
711
  },
545
712
  {
546
- "click": "#TPCookieToggle"
713
+ "waitFor": "#TPCookieToggle"
547
714
  },
548
715
  {
549
- "eval": "document.querySelector('#TPCookieToggle').getAttribute('aria-pressed') === 'false'"
716
+ "click": "#TPCookieToggle[aria-pressed=true]",
717
+ "optional": true
550
718
  },
551
719
  {
552
720
  "click": "#updateCookieButton"
@@ -629,12 +797,10 @@
629
797
  "wait": "500"
630
798
  },
631
799
  {
632
- "eval": "!!Array.from(document.querySelectorAll('label[data-test^=toggle]')).forEach(e => e.click())",
800
+ "click": "label[data-test^=toggle][class*=checked]:not([class*=disabled])",
801
+ "all": true,
633
802
  "optional": true
634
803
  },
635
- {
636
- "eval": "Array.from(document.querySelectorAll('label[data-test^=toggle]')).filter(e => e.className.match('checked') && !e.className.match('disabled')).length === 0"
637
- },
638
804
  {
639
805
  "click": "button[data-test=save-preferences]"
640
806
  }
@@ -673,6 +839,34 @@
673
839
  }
674
840
  ]
675
841
  },
842
+ {
843
+ "name": "marksandspencer.com",
844
+ "isHidingRule": true,
845
+ "detectCmp": [
846
+ {
847
+ "exists": ".navigation-cookiebbanner"
848
+ }
849
+ ],
850
+ "detectPopup": [
851
+ {
852
+ "visible": ".navigation-cookiebbanner"
853
+ }
854
+ ],
855
+ "optOut": [
856
+ {
857
+ "hide": [
858
+ ".navigation-cookiebbanner"
859
+ ]
860
+ }
861
+ ],
862
+ "optIn": [
863
+ {
864
+ "click": [
865
+ ".navigation-cookiebbanner__submit"
866
+ ]
867
+ }
868
+ ]
869
+ },
676
870
  {
677
871
  "name": "mediamarkt.de",
678
872
  "prehideSelectors": [
@@ -696,7 +890,7 @@
696
890
  ],
697
891
  "optIn": [
698
892
  {
699
- "click": "'button[data-test^=pwa-consent-layer-accept-all'"
893
+ "click": "button[data-test^=pwa-consent-layer-accept-all"
700
894
  }
701
895
  ]
702
896
  },
@@ -748,7 +942,7 @@
748
942
  ],
749
943
  "optIn": [
750
944
  {
751
- "eval": "Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click()"
945
+ "eval": "Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click() || true"
752
946
  }
753
947
  ],
754
948
  "test": [
@@ -899,7 +1093,6 @@
899
1093
  "prehideSelectors": [
900
1094
  ".button--notice"
901
1095
  ],
902
- "isHidingRule": true,
903
1096
  "detectCmp": [
904
1097
  {
905
1098
  "exists": ".notice--cookie"
@@ -954,7 +1147,6 @@
954
1147
  "prehideSelectors": [
955
1148
  ".osano-cm-window"
956
1149
  ],
957
- "isHidingRule": true,
958
1150
  "detectCmp": [
959
1151
  {
960
1152
  "exists": ".osano-cm-window"
@@ -967,7 +1159,8 @@
967
1159
  ],
968
1160
  "optIn": [
969
1161
  {
970
- "click": ".osano-cm-accept-all"
1162
+ "click": ".osano-cm-accept-all",
1163
+ "optional": true
971
1164
  }
972
1165
  ],
973
1166
  "optOut": [
@@ -1005,7 +1198,7 @@
1005
1198
  ]
1006
1199
  },
1007
1200
  {
1008
- "name": "paypal.de",
1201
+ "name": "paypal.com",
1009
1202
  "prehideSelectors": [
1010
1203
  "#gdprCookieBanner"
1011
1204
  ],
@@ -1025,9 +1218,17 @@
1025
1218
  }
1026
1219
  ],
1027
1220
  "optOut": [
1221
+ {
1222
+ "wait": 200
1223
+ },
1028
1224
  {
1029
1225
  "click": ".gdprCookieBanner_decline-button"
1030
1226
  }
1227
+ ],
1228
+ "test": [
1229
+ {
1230
+ "eval": "document.cookie.includes('cookie_prefs') === true"
1231
+ }
1031
1232
  ]
1032
1233
  },
1033
1234
  {
@@ -1096,6 +1297,11 @@
1096
1297
  {
1097
1298
  "eval": "!!document.cookie.match('snconsent')"
1098
1299
  }
1300
+ ],
1301
+ "optIn": [
1302
+ {
1303
+ "click": ".snigel-cmp-framework #accept-choices"
1304
+ }
1099
1305
  ]
1100
1306
  },
1101
1307
  {
@@ -1137,13 +1343,12 @@
1137
1343
  "prehideSelectors": [
1138
1344
  "#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#consent-layer"
1139
1345
  ],
1140
- "isHidingRule": false,
1141
1346
  "detectCmp": [
1142
1347
  {
1143
- "exists": "#__tealiumGDPRecModal"
1348
+ "visible": "#__tealiumGDPRecModal"
1144
1349
  },
1145
1350
  {
1146
- "eval": "window.utag && typeof utag.gdpr === 'object'"
1351
+ "eval": "typeof window.utag !== 'undefined' && typeof utag.gdpr === 'object'"
1147
1352
  }
1148
1353
  ],
1149
1354
  "detectPopup": [
@@ -1160,7 +1365,11 @@
1160
1365
  ]
1161
1366
  },
1162
1367
  {
1163
- "click": "#cm-acceptNone,.js-accept-essential-cookies"
1368
+ "waitForThenClick": "#cm-acceptNone,.js-accept-essential-cookies",
1369
+ "timeout": 1000
1370
+ },
1371
+ {
1372
+ "eval": "utag.gdpr.setConsentValue(false) || true"
1164
1373
  }
1165
1374
  ],
1166
1375
  "optIn": [
@@ -1170,7 +1379,7 @@
1170
1379
  ]
1171
1380
  },
1172
1381
  {
1173
- "eval": "utag.gdpr.setConsentValue(true)"
1382
+ "eval": "utag.gdpr.setConsentValue(true) || true"
1174
1383
  }
1175
1384
  ],
1176
1385
  "test": [
@@ -1256,7 +1465,7 @@
1256
1465
  ],
1257
1466
  "optIn": [
1258
1467
  {
1259
- "eval": "cmpUi.allowAll()"
1468
+ "eval": "cmpUi.allowAll() || true"
1260
1469
  }
1261
1470
  ],
1262
1471
  "optOut": [
@@ -1302,6 +1511,32 @@
1302
1511
  }
1303
1512
  ]
1304
1513
  },
1514
+ {
1515
+ "name": "uswitch.com",
1516
+ "prehideSelectors": [
1517
+ "#cookie-banner-wrapper"
1518
+ ],
1519
+ "detectCmp": [
1520
+ {
1521
+ "exists": "#cookie-banner-wrapper"
1522
+ }
1523
+ ],
1524
+ "detectPopup": [
1525
+ {
1526
+ "visible": "#cookie-banner-wrapper"
1527
+ }
1528
+ ],
1529
+ "optIn": [
1530
+ {
1531
+ "click": "#cookie_banner_accept_mobile"
1532
+ }
1533
+ ],
1534
+ "optOut": [
1535
+ {
1536
+ "click": "#cookie_banner_save"
1537
+ }
1538
+ ]
1539
+ },
1305
1540
  {
1306
1541
  "name": "vodafone.de",
1307
1542
  "prehideSelectors": [
@@ -1331,6 +1566,71 @@
1331
1566
  }
1332
1567
  ]
1333
1568
  },
1569
+ {
1570
+ "name": "waitrose.com",
1571
+ "prehideSelectors": [
1572
+ "div[aria-labelledby=CookieAlertModalHeading]",
1573
+ "section[data-test=initial-waitrose-cookie-consent-banner]",
1574
+ "section[data-test=cookie-consent-modal]"
1575
+ ],
1576
+ "detectCmp": [
1577
+ {
1578
+ "exists": "section[data-test=initial-waitrose-cookie-consent-banner]"
1579
+ }
1580
+ ],
1581
+ "detectPopup": [
1582
+ {
1583
+ "visible": "section[data-test=initial-waitrose-cookie-consent-banner]"
1584
+ }
1585
+ ],
1586
+ "optIn": [
1587
+ {
1588
+ "click": "button[data-test=accept-all]"
1589
+ }
1590
+ ],
1591
+ "optOut": [
1592
+ {
1593
+ "click": "button[data-test=manage-cookies]"
1594
+ },
1595
+ {
1596
+ "wait": 200
1597
+ },
1598
+ {
1599
+ "eval": "Array.from(document.querySelectorAll('label[id$=cookies-deny-label]')).forEach(e => e.click()) || true"
1600
+ },
1601
+ {
1602
+ "click": "button[data-test=submit]"
1603
+ }
1604
+ ],
1605
+ "test": [
1606
+ {
1607
+ "eval": "document.cookie.includes('wtr_cookies_advertising=0') && document.cookie.includes('wtr_cookies_analytics=0')"
1608
+ }
1609
+ ]
1610
+ },
1611
+ {
1612
+ "name": "wetransfer.com",
1613
+ "detectCmp": [
1614
+ {
1615
+ "exists": ".welcome__cookie-notice"
1616
+ }
1617
+ ],
1618
+ "detectPopup": [
1619
+ {
1620
+ "visible": ".welcome__cookie-notice"
1621
+ }
1622
+ ],
1623
+ "optIn": [
1624
+ {
1625
+ "click": ".welcome__button--accept"
1626
+ }
1627
+ ],
1628
+ "optOut": [
1629
+ {
1630
+ "click": ".welcome__button--decline"
1631
+ }
1632
+ ]
1633
+ },
1334
1634
  {
1335
1635
  "name": "xing.com",
1336
1636
  "detectCmp": [
@@ -0,0 +1,7 @@
1
+ import generateCMPTests from "../playwright/runner";
2
+
3
+ generateCMPTests('192.com', [
4
+ 'https://192.com'], {
5
+ skipRegions: ["US", "FR", "DE"]
6
+ }
7
+ );
@@ -1,4 +1,4 @@
1
- import generateCMPTests from "./runner";
1
+ import generateCMPTests from "../playwright/runner";
2
2
 
3
3
  generateCMPTests('arzt-auskunft.de', [
4
4
  'https://arzt-auskunft.de'], {
@@ -1,4 +1,4 @@
1
- import generateCMPTests from "./runner";
1
+ import generateCMPTests from "../playwright/runner";
2
2
 
3
3
  generateCMPTests('asus', [
4
4
  'https://www.asus.com/',
@@ -0,0 +1,7 @@
1
+ import generateCMPTests from "../playwright/runner";
2
+
3
+ generateCMPTests('ausopen.com', [
4
+ 'https://www.ausopen.com/',
5
+ ], {
6
+ skipRegions: ["US", "FR", "DE"]
7
+ });
@@ -1,4 +1,4 @@
1
- import generateCMPTests from "./runner";
1
+ import generateCMPTests from "../playwright/runner";
2
2
 
3
3
  generateCMPTests('aws.amazon.com', [
4
4
  'https://docs.aws.amazon.com'], {
@@ -1,4 +1,4 @@
1
- import generateCMPTests from "./runner";
1
+ import generateCMPTests from "../playwright/runner";
2
2
 
3
3
  generateCMPTests('baden-wuerttemberg.de', [
4
4
  'https://baden-wuerttemberg.de'], {
@@ -1,4 +1,4 @@
1
- import generateCMPTests from "./runner";
1
+ import generateCMPTests from "../playwright/runner";
2
2
 
3
3
  generateCMPTests('borlabs', [
4
4
  'https://reitschuster.de'], {