@duckduckgo/autoconsent 2.1.2 → 2.2.1

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/.vscode/.idea/.vscode.iml +9 -0
  2. package/.vscode/.idea/modules.xml +8 -0
  3. package/.vscode/.idea/workspace.xml +28 -0
  4. package/.vscode/settings.json +7 -0
  5. package/dist/addon-firefox/background.bundle.js +1 -1
  6. package/dist/addon-firefox/content.bundle.js +1 -1
  7. package/dist/addon-firefox/manifest.json +1 -1
  8. package/dist/addon-firefox/rules.json +985 -51
  9. package/dist/addon-mv3/background.bundle.js +1 -1
  10. package/dist/addon-mv3/content.bundle.js +1 -1
  11. package/dist/addon-mv3/manifest.json +1 -1
  12. package/dist/addon-mv3/rules.json +985 -51
  13. package/dist/autoconsent.cjs.js +1 -1
  14. package/dist/autoconsent.esm.js +1 -1
  15. package/dist/autoconsent.playwright.js +1 -1
  16. package/lib/cmps/all.ts +7 -0
  17. package/lib/cmps/base.ts +37 -24
  18. package/lib/cmps/consentmanager.ts +27 -4
  19. package/lib/cmps/conversant.ts +60 -0
  20. package/lib/cmps/klaro.ts +66 -0
  21. package/lib/cmps/onetrust.ts +3 -3
  22. package/lib/cmps/sourcepoint-frame.ts +9 -8
  23. package/lib/cmps/sourcepoint-top.ts +5 -0
  24. package/lib/cmps/trustarc-frame.ts +3 -0
  25. package/lib/cmps/uniconsent.ts +71 -0
  26. package/lib/rules.ts +8 -1
  27. package/lib/web.ts +48 -25
  28. package/package.json +1 -1
  29. package/readme.md +29 -0
  30. package/rules/autoconsent/adroll.json +11 -0
  31. package/rules/autoconsent/aws-amazon.json +6 -1
  32. package/rules/autoconsent/axeptio.json +41 -0
  33. package/rules/autoconsent/clickio.json +18 -0
  34. package/rules/autoconsent/complianz-banner.json +13 -0
  35. package/rules/autoconsent/complianz-categories.json +17 -0
  36. package/rules/autoconsent/complianz-notice.json +14 -0
  37. package/rules/autoconsent/complianz-optin.json +20 -0
  38. package/rules/autoconsent/cookie-notice.json +3 -1
  39. package/rules/autoconsent/cookieinformation.json +14 -0
  40. package/rules/autoconsent/dsgvo.json +16 -0
  41. package/rules/autoconsent/eu-cookie-law.json +20 -0
  42. package/rules/autoconsent/ezoic.json +19 -0
  43. package/rules/autoconsent/iubenda.json +23 -0
  44. package/rules/autoconsent/jquery-cookiebar.json +25 -0
  45. package/rules/autoconsent/mediavine.json +20 -0
  46. package/rules/autoconsent/moove.json +28 -0
  47. package/rules/autoconsent/paypal.json +4 -1
  48. package/rules/autoconsent/primebox.json +19 -0
  49. package/rules/autoconsent/privacymanager.json +30 -0
  50. package/rules/autoconsent/pubtech.json +42 -0
  51. package/rules/autoconsent/sibbo.json +43 -0
  52. package/rules/autoconsent/sirdata.json +11 -0
  53. package/rules/autoconsent/tarteaucitron.json +18 -0
  54. package/rules/autoconsent/tealium.json +0 -1
  55. package/rules/autoconsent/termly.json +31 -0
  56. package/rules/autoconsent/testcmp.json +4 -1
  57. package/rules/autoconsent/uk-cookie-consent.json +15 -0
  58. package/rules/autoconsent/{usercentrics-1.json → usercentrics-api.json} +2 -2
  59. package/rules/autoconsent/usercentrics-button.json +14 -0
  60. package/rules/autoconsent/vodafone-de.json +5 -5
  61. package/rules/autoconsent/wp-cookie-notice.json +12 -0
  62. package/rules/rules.json +985 -51
  63. package/tests/adroll.spec.ts +15 -0
  64. package/tests/axeptio.spec.ts +9 -0
  65. package/tests/clickio.spec.ts +10 -0
  66. package/tests/complianz-banner.spec.ts +7 -0
  67. package/tests/complianz-categories.spec.ts +14 -0
  68. package/tests/{cookieconsent.spec.ts → complianz-notice.spec.ts} +1 -2
  69. package/tests/complianz-optin.spec.ts +6 -0
  70. package/tests/consentmanager.spec.ts +2 -1
  71. package/tests/conversant.spec.ts +10 -0
  72. package/tests/{cookienotice.spec.ts → cookie-notice.spec.ts} +0 -0
  73. package/tests/cookieinformation.spec.ts +10 -0
  74. package/tests/dsgvo.spec.ts +6 -0
  75. package/tests/eu-cookie-law.spec.ts +6 -0
  76. package/tests/ezoic.spec.ts +8 -0
  77. package/tests/iubenda.spec.ts +8 -0
  78. package/tests/jquery-cookiebar.spec.ts +6 -0
  79. package/tests/klaro.spec.ts +6 -2
  80. package/tests/mediavine.spec.ts +8 -0
  81. package/tests/moove.spec.ts +14 -0
  82. package/tests/oil.spec.ts +3 -2
  83. package/tests/primebox.spec.ts +7 -0
  84. package/tests/privacymanager.spec.ts +8 -0
  85. package/tests/pubtech.spec.ts +13 -0
  86. package/tests/sibbo.spec.ts +16 -0
  87. package/tests/sirdata.spec.ts +8 -0
  88. package/tests/tarteaucitron.spec.ts +9 -0
  89. package/tests/tealium.spec.ts +1 -1
  90. package/tests/termly.spec.ts +12 -0
  91. package/tests/trustarc.spec.ts +1 -9
  92. package/tests/uk-cookie-consent.spec.ts +7 -0
  93. package/tests/uniconsent.spec.ts +12 -0
  94. package/tests/{usercentrics-1.spec.ts → usercentrics-api.spec.ts} +3 -2
  95. package/tests/usercentrics-button.spec.ts +8 -0
  96. package/tests/wp-cookie-notice.spec.ts +8 -0
  97. package/dist/autoconsent.standalone.js +0 -1
  98. package/rules/autoconsent/cookieconsent.json +0 -8
  99. package/rules/autoconsent/destatis-de.json +0 -8
  100. package/rules/autoconsent/klaro.json +0 -10
  101. package/tests/destatis.spec.ts +0 -7
@@ -31,6 +31,37 @@
31
31
  }
32
32
  ]
33
33
  },
34
+ {
35
+ "name": "Adroll",
36
+ "prehideSelectors": [
37
+ "#adroll_consent_container"
38
+ ],
39
+ "detectCmp": [
40
+ {
41
+ "exists": "#adroll_consent_container"
42
+ }
43
+ ],
44
+ "detectPopup": [
45
+ {
46
+ "visible": "#adroll_consent_container"
47
+ }
48
+ ],
49
+ "optIn": [
50
+ {
51
+ "waitForThenClick": "#adroll_consent_accept"
52
+ }
53
+ ],
54
+ "optOut": [
55
+ {
56
+ "waitForThenClick": "#adroll_consent_reject"
57
+ }
58
+ ],
59
+ "test": [
60
+ {
61
+ "eval": "!document.cookie.includes('__adroll_fpc')"
62
+ }
63
+ ]
64
+ },
34
65
  {
35
66
  "name": "affinity.serif.com",
36
67
  "detectCmp": [
@@ -183,13 +214,55 @@
183
214
  "click": "button[data-id=awsccc-cb-btn-customize]"
184
215
  },
185
216
  {
186
- "eval": "Array.from(document.querySelectorAll('input[aria-checked=true')).forEach(e => e.click()) || true"
217
+ "waitFor": "input[aria-checked]"
218
+ },
219
+ {
220
+ "click": "input[aria-checked=true]",
221
+ "all": true,
222
+ "optional": true
187
223
  },
188
224
  {
189
225
  "click": "button[data-id=awsccc-cs-btn-save]"
190
226
  }
191
227
  ]
192
228
  },
229
+ {
230
+ "name": "axeptio",
231
+ "prehideSelectors": [
232
+ ".axeptio_widget"
233
+ ],
234
+ "detectCmp": [
235
+ {
236
+ "exists": ".axeptio_widget"
237
+ }
238
+ ],
239
+ "detectPopup": [
240
+ {
241
+ "visible": ".axeptio_widget"
242
+ }
243
+ ],
244
+ "optIn": [
245
+ {
246
+ "waitFor": ".axeptio-widget--open"
247
+ },
248
+ {
249
+ "click": "button#axeptio_btn_acceptAll"
250
+ }
251
+ ],
252
+ "optOut": [
253
+ {
254
+ "waitFor": ".axeptio-widget--open"
255
+ },
256
+ {
257
+ "click": "button#axeptio_btn_dismiss"
258
+ }
259
+ ],
260
+ "test": [
261
+ {
262
+ "eval": "document.cookie.includes('axeptio_authorized_vendors=%2C%2C')"
263
+ }
264
+ ]
265
+ },
193
266
  {
194
267
  "name": "baden-wuerttemberg.de",
195
268
  "prehideSelectors": [
@@ -344,6 +417,213 @@
344
417
  }
345
418
  ]
346
419
  },
420
+ {
421
+ "name": "click.io",
422
+ "prehideSelectors": [
423
+ "#cl-consent"
424
+ ],
425
+ "detectCmp": [
426
+ {
427
+ "exists": "#cl-consent"
428
+ }
429
+ ],
430
+ "detectPopup": [
431
+ {
432
+ "visible": "#cl-consent"
433
+ }
434
+ ],
435
+ "optIn": [
436
+ {
437
+ "waitForThenClick": "#cl-consent [data-role=\"b_agree\"]"
438
+ }
439
+ ],
440
+ "optOut": [
441
+ {
442
+ "waitFor": "#cl-consent [data-role=\"b_options\"]"
443
+ },
444
+ {
445
+ "wait": 500
446
+ },
447
+ {
448
+ "click": "#cl-consent [data-role=\"b_options\"]"
449
+ },
450
+ {
451
+ "waitFor": ".cl-consent-popup.cl-consent-visible [data-role=\"alloff\"]"
452
+ },
453
+ {
454
+ "click": ".cl-consent-popup.cl-consent-visible [data-role=\"alloff\"]",
455
+ "all": true
456
+ },
457
+ {
458
+ "click": "[data-role=\"b_save\"]"
459
+ }
460
+ ],
461
+ "test": [
462
+ {
463
+ "eval": "document.cookie.includes('__lxG__consent__v2_daisybit=')",
464
+ "comment": "TODO: this only checks if we interacted at all"
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ "name": "Complianz banner",
470
+ "prehideSelectors": [
471
+ "#cmplz-cookiebanner-container"
472
+ ],
473
+ "detectCmp": [
474
+ {
475
+ "exists": "#cmplz-cookiebanner-container .cmplz-cookiebanner"
476
+ }
477
+ ],
478
+ "detectPopup": [
479
+ {
480
+ "visible": "#cmplz-cookiebanner-container .cmplz-cookiebanner",
481
+ "check": "any"
482
+ }
483
+ ],
484
+ "optIn": [
485
+ {
486
+ "waitForThenClick": ".cmplz-cookiebanner .cmplz-accept"
487
+ }
488
+ ],
489
+ "optOut": [
490
+ {
491
+ "waitForThenClick": ".cmplz-cookiebanner .cmplz-deny"
492
+ }
493
+ ],
494
+ "test": [
495
+ {
496
+ "eval": "document.cookie.includes('cmplz_banner-status=dismissed')"
497
+ }
498
+ ]
499
+ },
500
+ {
501
+ "name": "Complianz categories",
502
+ "prehideSelectors": [
503
+ ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
504
+ ],
505
+ "detectCmp": [
506
+ {
507
+ "exists": ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
508
+ }
509
+ ],
510
+ "detectPopup": [
511
+ {
512
+ "visible": ".cc-type-categories[aria-describedby=\"cookieconsent:desc\"]"
513
+ }
514
+ ],
515
+ "optIn": [
516
+ {
517
+ "click": ".cc-accept-all",
518
+ "optional": true
519
+ },
520
+ {
521
+ "click": ".cc-allow",
522
+ "optional": true
523
+ },
524
+ {
525
+ "click": ".cc-dismiss",
526
+ "optional": true
527
+ }
528
+ ],
529
+ "optOut": [
530
+ {
531
+ "click": ".cc-dismiss"
532
+ }
533
+ ],
534
+ "test": [
535
+ {
536
+ "eval": "!!document.cookie.match(/cmplz_[^=]+=deny/)"
537
+ }
538
+ ]
539
+ },
540
+ {
541
+ "name": "Complianz notice",
542
+ "prehideSelectors": [
543
+ ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
544
+ ],
545
+ "detectCmp": [
546
+ {
547
+ "exists": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
548
+ }
549
+ ],
550
+ "detectPopup": [
551
+ {
552
+ "visible": ".cc-type-info[aria-describedby=\"cookieconsent:desc\"]"
553
+ }
554
+ ],
555
+ "optIn": [
556
+ {
557
+ "click": ".cc-accept-all",
558
+ "optional": true
559
+ },
560
+ {
561
+ "click": ".cc-allow",
562
+ "optional": true
563
+ },
564
+ {
565
+ "click": ".cc-dismiss",
566
+ "optional": true
567
+ }
568
+ ],
569
+ "optOut": [
570
+ {
571
+ "hide": [
572
+ "[aria-describedby=\"cookieconsent:desc\"]"
573
+ ]
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "name": "Complianz optin",
579
+ "prehideSelectors": [
580
+ ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
581
+ ],
582
+ "detectCmp": [
583
+ {
584
+ "exists": ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
585
+ }
586
+ ],
587
+ "detectPopup": [
588
+ {
589
+ "visible": ".cc-type-opt-in[aria-describedby=\"cookieconsent:desc\"]"
590
+ }
591
+ ],
592
+ "optIn": [
593
+ {
594
+ "click": ".cc-accept-all",
595
+ "optional": true
596
+ },
597
+ {
598
+ "click": ".cc-allow",
599
+ "optional": true
600
+ },
601
+ {
602
+ "click": ".cc-dismiss",
603
+ "optional": true
604
+ }
605
+ ],
606
+ "optOut": [
607
+ {
608
+ "click": ".cc-settings"
609
+ },
610
+ {
611
+ "waitForVisible": "[aria-label=\"cookies preferences popup\"]"
612
+ },
613
+ {
614
+ "click": "[aria-label=\"cookies preferences popup\"] input[type=checkbox]:not([disabled])",
615
+ "all": true
616
+ },
617
+ {
618
+ "click": "[aria-label=\"cookies preferences popup\"] [aria-label=\"Accept Selected\"]"
619
+ }
620
+ ],
621
+ "test": [
622
+ {
623
+ "eval": "!!document.cookie.match(/cookieconsent_preferences_disabled=[^;]+/)"
624
+ }
625
+ ]
626
+ },
347
627
  {
348
628
  "name": "cookie-law-info",
349
629
  "prehideSelectors": [
@@ -387,7 +667,7 @@
387
667
  ],
388
668
  "detectCmp": [
389
669
  {
390
- "exists": "#cookie-notice"
670
+ "visible": "#cookie-notice .cookie-notice-container"
391
671
  }
392
672
  ],
393
673
  "detectPopup": [
@@ -411,30 +691,39 @@
411
691
  ]
412
692
  },
413
693
  {
414
- "name": "cookieconsent",
694
+ "name": "Cookie Information Banner",
415
695
  "prehideSelectors": [
416
- "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
696
+ "#cookie-information-template-wrapper"
417
697
  ],
418
698
  "detectCmp": [
419
699
  {
420
- "exists": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
700
+ "exists": "#cookie-information-template-wrapper"
421
701
  }
422
702
  ],
423
703
  "detectPopup": [
424
704
  {
425
- "visible": "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
705
+ "visible": "#cookie-information-template-wrapper"
426
706
  }
427
707
  ],
428
708
  "optIn": [
429
709
  {
430
- "click": ".cc-dismiss"
710
+ "eval": "CookieInformation.submitAllCategories() || true"
431
711
  }
432
712
  ],
433
713
  "optOut": [
434
714
  {
435
715
  "hide": [
436
- "[aria-label=\"cookieconsent\"][aria-describedby=\"cookieconsent:desc\"]"
437
- ]
716
+ "#cookie-information-template-wrapper"
717
+ ],
718
+ "comment": "some templates don't hide the banner automatically"
719
+ },
720
+ {
721
+ "eval": "CookieInformation.declineAllCategories() || true"
722
+ }
723
+ ],
724
+ "test": [
725
+ {
726
+ "eval": "document.cookie.includes('CookieInformationConsent=')"
438
727
  }
439
728
  ]
440
729
  },
@@ -494,55 +783,61 @@
494
783
  ]
495
784
  },
496
785
  {
497
- "name": "destatis.de",
498
- "prehideSelectors": [
499
- "div[aria-labelledby=cookiebannerhead]"
500
- ],
786
+ "name": "Drupal",
501
787
  "detectCmp": [
502
788
  {
503
- "exists": ".cookiebannerbox"
789
+ "exists": "#drupalorg-crosssite-gdpr"
504
790
  }
505
791
  ],
506
792
  "detectPopup": [
507
793
  {
508
- "visible": ".cookiebannerbox"
794
+ "visible": "#drupalorg-crosssite-gdpr"
509
795
  }
510
796
  ],
511
797
  "optOut": [
512
798
  {
513
- "hide": [
514
- ".cookiebannerbox"
515
- ]
799
+ "click": ".no"
516
800
  }
517
801
  ],
518
802
  "optIn": [
519
803
  {
520
- "click": [
521
- ".cookiebannerbox .close"
522
- ]
804
+ "click": ".yes"
523
805
  }
524
806
  ]
525
807
  },
526
808
  {
527
- "name": "Drupal",
809
+ "name": "WP DSGVO Tools",
810
+ "link": "https://wordpress.org/plugins/shapepress-dsgvo/",
811
+ "prehideSelectors": [
812
+ ".sp-dsgvo"
813
+ ],
528
814
  "detectCmp": [
529
815
  {
530
- "exists": "#drupalorg-crosssite-gdpr"
816
+ "exists": ".sp-dsgvo.sp-dsgvo-popup-overlay"
531
817
  }
532
818
  ],
533
819
  "detectPopup": [
534
820
  {
535
- "visible": "#drupalorg-crosssite-gdpr"
821
+ "visible": ".sp-dsgvo.sp-dsgvo-popup-overlay",
822
+ "check": "any"
823
+ }
824
+ ],
825
+ "optIn": [
826
+ {
827
+ "click": ".sp-dsgvo-privacy-btn-accept-all",
828
+ "all": true
536
829
  }
537
830
  ],
538
831
  "optOut": [
539
832
  {
540
- "click": ".no"
833
+ "hide": [
834
+ ".sp-dsgvo.sp-dsgvo-popup-overlay"
835
+ ]
541
836
  }
542
837
  ],
543
- "optIn": [
838
+ "test": [
544
839
  {
545
- "click": ".yes"
840
+ "eval": "!document.cookie.includes('sp_dsgvo_cookie_settings')"
546
841
  }
547
842
  ]
548
843
  },
@@ -656,18 +951,100 @@
656
951
  ]
657
952
  },
658
953
  {
659
- "name": "funding-choices",
954
+ "name": "EU Cookie Law",
660
955
  "prehideSelectors": [
661
- ".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"
956
+ ".pea_cook_wrapper,.pea_cook_more_info_popover"
662
957
  ],
663
958
  "detectCmp": [
664
959
  {
665
- "exists": ".fc-consent-root"
960
+ "exists": ".pea_cook_wrapper"
666
961
  }
667
962
  ],
668
963
  "detectPopup": [
669
964
  {
670
- "exists": ".fc-dialog-container"
965
+ "wait": 500
966
+ },
967
+ {
968
+ "visible": ".pea_cook_wrapper"
969
+ }
970
+ ],
971
+ "optIn": [
972
+ {
973
+ "click": "#pea_cook_btn"
974
+ }
975
+ ],
976
+ "optOut": [
977
+ {
978
+ "hide": [
979
+ ".pea_cook_wrapper"
980
+ ]
981
+ }
982
+ ],
983
+ "test": [
984
+ {
985
+ "eval": "!document.cookie.includes('euCookie')"
986
+ }
987
+ ]
988
+ },
989
+ {
990
+ "name": "EZoic",
991
+ "prehideSelectors": [
992
+ "#ez-cookie-dialog-wrapper"
993
+ ],
994
+ "detectCmp": [
995
+ {
996
+ "exists": "#ez-cookie-dialog-wrapper"
997
+ }
998
+ ],
999
+ "detectPopup": [
1000
+ {
1001
+ "visible": "#ez-cookie-dialog-wrapper"
1002
+ }
1003
+ ],
1004
+ "optIn": [
1005
+ {
1006
+ "click": "#ez-accept-all",
1007
+ "optional": true
1008
+ },
1009
+ {
1010
+ "eval": "ezCMP.handleAcceptAllClick()",
1011
+ "optional": true
1012
+ }
1013
+ ],
1014
+ "optOut": [
1015
+ {
1016
+ "click": "#ez-manage-settings"
1017
+ },
1018
+ {
1019
+ "waitFor": "#ez-cookie-dialog input[type=checkbox]"
1020
+ },
1021
+ {
1022
+ "click": "#ez-cookie-dialog input[type=checkbox][checked]",
1023
+ "all": true
1024
+ },
1025
+ {
1026
+ "click": "#ez-save-settings"
1027
+ }
1028
+ ],
1029
+ "test": [
1030
+ {
1031
+ "eval": "!!document.cookie.match(/ezCMPCookieConsent=[^;]+\\|2=0\\|3=0\\|4=0/)"
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ "name": "funding-choices",
1037
+ "prehideSelectors": [
1038
+ ".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"
1039
+ ],
1040
+ "detectCmp": [
1041
+ {
1042
+ "exists": ".fc-consent-root"
1043
+ }
1044
+ ],
1045
+ "detectPopup": [
1046
+ {
1047
+ "exists": ".fc-dialog-container"
671
1048
  }
672
1049
  ],
673
1050
  "optOut": [
@@ -818,6 +1195,43 @@
818
1195
  }
819
1196
  ]
820
1197
  },
1198
+ {
1199
+ "name": "iubenda",
1200
+ "prehideSelectors": [
1201
+ "#iubenda-cs-banner"
1202
+ ],
1203
+ "detectCmp": [
1204
+ {
1205
+ "exists": "#iubenda-cs-banner"
1206
+ }
1207
+ ],
1208
+ "detectPopup": [
1209
+ {
1210
+ "visible": ".iubenda-cs-accept-btn"
1211
+ }
1212
+ ],
1213
+ "optIn": [
1214
+ {
1215
+ "click": ".iubenda-cs-accept-btn"
1216
+ }
1217
+ ],
1218
+ "optOut": [
1219
+ {
1220
+ "click": ".iubenda-cs-customize-btn"
1221
+ },
1222
+ {
1223
+ "eval": "document.querySelectorAll('.purposes-item input[type=checkbox]:not([disabled])').forEach(x => {if(x.checked) x.click()}) || true"
1224
+ },
1225
+ {
1226
+ "click": "#iubFooterBtn"
1227
+ }
1228
+ ],
1229
+ "test": [
1230
+ {
1231
+ "eval": "!!document.cookie.match(/_iub_cs-\\d+=/)"
1232
+ }
1233
+ ]
1234
+ },
821
1235
  {
822
1236
  "name": "johnlewis.com",
823
1237
  "prehideSelectors": [
@@ -856,30 +1270,41 @@
856
1270
  ]
857
1271
  },
858
1272
  {
859
- "name": "klaro",
1273
+ "name": "jquery.cookieBar",
1274
+ "comment": "https://github.com/kovarp/jquery.cookieBar",
1275
+ "prehideSelectors": [
1276
+ ".cookie-bar"
1277
+ ],
860
1278
  "detectCmp": [
861
1279
  {
862
- "exists": ".klaro > .cookie-notice"
1280
+ "exists": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"
863
1281
  }
864
1282
  ],
865
1283
  "detectPopup": [
866
1284
  {
867
- "visible": ".klaro > .cookie-notice"
1285
+ "visible": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",
1286
+ "check": "any"
868
1287
  }
869
1288
  ],
870
1289
  "optIn": [
871
1290
  {
872
- "click": ".cm-btn-success"
1291
+ "click": ".cookie-bar .cookie-bar__btn"
873
1292
  }
874
1293
  ],
875
1294
  "optOut": [
876
1295
  {
877
- "click": ".cn-decline"
1296
+ "hide": [
1297
+ ".cookie-bar"
1298
+ ]
878
1299
  }
879
1300
  ],
880
1301
  "test": [
881
1302
  {
882
- "eval": "Object.values(klaro.getManager().consents).every(c => !c)"
1303
+ "visible": ".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",
1304
+ "check": "none"
1305
+ },
1306
+ {
1307
+ "eval": "!document.cookie.includes('cookies-state=accepted')"
883
1308
  }
884
1309
  ]
885
1310
  },
@@ -938,6 +1363,45 @@
938
1363
  }
939
1364
  ]
940
1365
  },
1366
+ {
1367
+ "name": "Mediavine",
1368
+ "prehideSelectors": [
1369
+ "[data-name=\"mediavine-gdpr-cmp\"]"
1370
+ ],
1371
+ "detectCmp": [
1372
+ {
1373
+ "exists": "[data-name=\"mediavine-gdpr-cmp\"]"
1374
+ }
1375
+ ],
1376
+ "detectPopup": [
1377
+ {
1378
+ "wait": 500
1379
+ },
1380
+ {
1381
+ "visible": "[data-name=\"mediavine-gdpr-cmp\"]"
1382
+ }
1383
+ ],
1384
+ "optIn": [
1385
+ {
1386
+ "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"primary\"]"
1387
+ }
1388
+ ],
1389
+ "optOut": [
1390
+ {
1391
+ "waitForThenClick": "[data-name=\"mediavine-gdpr-cmp\"] [data-view=\"manageSettings\"]"
1392
+ },
1393
+ {
1394
+ "waitFor": "[data-name=\"mediavine-gdpr-cmp\"] input[type=checkbox]"
1395
+ },
1396
+ {
1397
+ "eval": "document.querySelectorAll(\"[data-name=\\\"mediavine-gdpr-cmp\\\"] input[type=checkbox]\").forEach(x => x.checked && x.click()) || true",
1398
+ "optional": true
1399
+ },
1400
+ {
1401
+ "click": "[data-name=\"mediavine-gdpr-cmp\"] [format=\"secondary\"]"
1402
+ }
1403
+ ]
1404
+ },
941
1405
  {
942
1406
  "name": "metoffice.gov.uk",
943
1407
  "prehideSelectors": [
@@ -1055,6 +1519,61 @@
1055
1519
  }
1056
1520
  ]
1057
1521
  },
1522
+ {
1523
+ "name": "Moove",
1524
+ "prehideSelectors": [
1525
+ "#moove_gdpr_cookie_info_bar"
1526
+ ],
1527
+ "detectCmp": [
1528
+ {
1529
+ "exists": "#moove_gdpr_cookie_info_bar"
1530
+ }
1531
+ ],
1532
+ "detectPopup": [
1533
+ {
1534
+ "visible": "#moove_gdpr_cookie_info_bar"
1535
+ }
1536
+ ],
1537
+ "optIn": [
1538
+ {
1539
+ "waitForThenClick": ".moove-gdpr-infobar-allow-all"
1540
+ }
1541
+ ],
1542
+ "optOut": [
1543
+ {
1544
+ "if": {
1545
+ "exists": "#moove_gdpr_cookie_info_bar .change-settings-button"
1546
+ },
1547
+ "then": [
1548
+ {
1549
+ "click": "#moove_gdpr_cookie_info_bar .change-settings-button"
1550
+ },
1551
+ {
1552
+ "waitForVisible": "#moove_gdpr_cookie_modal"
1553
+ },
1554
+ {
1555
+ "eval": "document.querySelectorAll('#moove_gdpr_cookie_modal input').forEach(i => { if (!i.disabled && i.name !== 'moove_gdpr_strict_cookies') i.checked = false }) || true"
1556
+ },
1557
+ {
1558
+ "click": ".moove-gdpr-modal-save-settings"
1559
+ }
1560
+ ],
1561
+ "else": [
1562
+ {
1563
+ "hide": [
1564
+ "#moove_gdpr_cookie_info_bar"
1565
+ ]
1566
+ }
1567
+ ]
1568
+ }
1569
+ ],
1570
+ "test": [
1571
+ {
1572
+ "visible": "#moove_gdpr_cookie_info_bar",
1573
+ "check": "none"
1574
+ }
1575
+ ]
1576
+ },
1058
1577
  {
1059
1578
  "name": "motor-talk.de",
1060
1579
  "prehideSelectors": [
@@ -1304,11 +1823,156 @@
1304
1823
  }
1305
1824
  ],
1306
1825
  "test": [
1826
+ {
1827
+ "wait": 500
1828
+ },
1307
1829
  {
1308
1830
  "eval": "document.cookie.includes('cookie_prefs') === true"
1309
1831
  }
1310
1832
  ]
1311
1833
  },
1834
+ {
1835
+ "name": "PrimeBox CookieBar",
1836
+ "prehideSelectors": [
1837
+ "#cookie-bar"
1838
+ ],
1839
+ "detectCmp": [
1840
+ {
1841
+ "exists": "#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"
1842
+ }
1843
+ ],
1844
+ "detectPopup": [
1845
+ {
1846
+ "visible": "#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",
1847
+ "check": "any"
1848
+ }
1849
+ ],
1850
+ "optIn": [
1851
+ {
1852
+ "waitForThenClick": "#cookie-bar .cb-enable"
1853
+ }
1854
+ ],
1855
+ "optOut": [
1856
+ {
1857
+ "click": "#cookie-bar .cb-disable",
1858
+ "optional": true
1859
+ },
1860
+ {
1861
+ "hide": [
1862
+ "#cookie-bar"
1863
+ ]
1864
+ }
1865
+ ],
1866
+ "test": [
1867
+ {
1868
+ "eval": "!document.cookie.includes('cb-enabled=accepted')"
1869
+ }
1870
+ ]
1871
+ },
1872
+ {
1873
+ "name": "privacymanager.io",
1874
+ "prehideSelectors": [
1875
+ "#gdpr-consent-tool-wrapper",
1876
+ "iframe[src^=\"https://cmp-consent-tool.privacymanager.io\"]"
1877
+ ],
1878
+ "runContext": {
1879
+ "url": "https://cmp-consent-tool.privacymanager.io",
1880
+ "main": false,
1881
+ "frame": true
1882
+ },
1883
+ "detectCmp": [
1884
+ {
1885
+ "exists": "button#save"
1886
+ }
1887
+ ],
1888
+ "detectPopup": [
1889
+ {
1890
+ "visible": "button#save"
1891
+ }
1892
+ ],
1893
+ "optIn": [
1894
+ {
1895
+ "click": "button#save"
1896
+ }
1897
+ ],
1898
+ "optOut": [
1899
+ {
1900
+ "if": {
1901
+ "exists": "#denyAll"
1902
+ },
1903
+ "then": [
1904
+ {
1905
+ "click": "#denyAll"
1906
+ },
1907
+ {
1908
+ "waitForThenClick": ".okButton"
1909
+ }
1910
+ ],
1911
+ "else": [
1912
+ {
1913
+ "waitForThenClick": "#manageSettings"
1914
+ },
1915
+ {
1916
+ "waitFor": ".purposes-overview-list"
1917
+ },
1918
+ {
1919
+ "waitFor": "button#saveAndExit"
1920
+ },
1921
+ {
1922
+ "click": "span[role=checkbox][aria-checked=true]",
1923
+ "all": true,
1924
+ "optional": true
1925
+ },
1926
+ {
1927
+ "click": "button#saveAndExit"
1928
+ }
1929
+ ]
1930
+ }
1931
+ ]
1932
+ },
1933
+ {
1934
+ "name": "pubtech",
1935
+ "prehideSelectors": [
1936
+ "#pubtech-cmp"
1937
+ ],
1938
+ "detectCmp": [
1939
+ {
1940
+ "exists": "#pubtech-cmp"
1941
+ }
1942
+ ],
1943
+ "detectPopup": [
1944
+ {
1945
+ "visible": "#pubtech-cmp #pt-actions"
1946
+ }
1947
+ ],
1948
+ "optIn": [
1949
+ {
1950
+ "if": {
1951
+ "exists": "#pt-accept-all"
1952
+ },
1953
+ "then": [
1954
+ {
1955
+ "click": "#pubtech-cmp #pt-actions #pt-accept-all"
1956
+ }
1957
+ ],
1958
+ "else": [
1959
+ {
1960
+ "click": "#pubtech-cmp #pt-actions button:nth-of-type(2)"
1961
+ }
1962
+ ]
1963
+ }
1964
+ ],
1965
+ "optOut": [
1966
+ {
1967
+ "click": "#pubtech-cmp #pt-close"
1968
+ }
1969
+ ],
1970
+ "test": [
1971
+ {
1972
+ "eval": "document.cookie.includes('euconsent-v2') && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)) "
1973
+ }
1974
+ ]
1975
+ },
1312
1976
  {
1313
1977
  "name": "quantcast",
1314
1978
  "prehideSelectors": [
@@ -1351,6 +2015,94 @@
1351
2015
  }
1352
2016
  ]
1353
2017
  },
2018
+ {
2019
+ "name": "sibbo",
2020
+ "prehideSelectors": [
2021
+ "sibbo-cmp-layout"
2022
+ ],
2023
+ "detectCmp": [
2024
+ {
2025
+ "exists": "sibbo-cmp-layout"
2026
+ }
2027
+ ],
2028
+ "detectPopup": [
2029
+ {
2030
+ "visible": "sibbo-cmp-layout"
2031
+ }
2032
+ ],
2033
+ "optIn": [
2034
+ {
2035
+ "click": "sibbo-cmp-layout [data-accept-all]"
2036
+ }
2037
+ ],
2038
+ "optOut": [
2039
+ {
2040
+ "click": ".sibbo-panel__aside__buttons a[data-nav=\"purposes\"]"
2041
+ },
2042
+ {
2043
+ "click": ".sibbo-panel__main__header__actions a[data-focusable=\"reject-all\"]"
2044
+ },
2045
+ {
2046
+ "if": {
2047
+ "exists": "[data-view=purposes] .sibbo-panel__main__footer__actions [data-save-and-exit]"
2048
+ },
2049
+ "then": [],
2050
+ "else": [
2051
+ {
2052
+ "waitFor": ".sibbo-panel__main__footer__actions a[data-focusable=\"next\"]:not(.sibbo-cmp-button--disabled)"
2053
+ },
2054
+ {
2055
+ "click": ".sibbo-panel__main__footer__actions a[data-focusable=\"next\"]"
2056
+ },
2057
+ {
2058
+ "click": ".sibbo-panel__main div[data-view=\"purposesLegInt\"] a[data-focusable=\"reject-all\"]"
2059
+ }
2060
+ ]
2061
+ },
2062
+ {
2063
+ "waitFor": ".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"
2064
+ },
2065
+ {
2066
+ "click": ".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"
2067
+ }
2068
+ ],
2069
+ "test": [
2070
+ {
2071
+ "eval": "!!window.localStorage.getItem('euconsent-v2')"
2072
+ }
2073
+ ]
2074
+ },
2075
+ {
2076
+ "name": "Sirdata",
2077
+ "prehideSelectors": [
2078
+ "#sd-cmp"
2079
+ ],
2080
+ "detectCmp": [
2081
+ {
2082
+ "exists": "#sd-cmp"
2083
+ }
2084
+ ],
2085
+ "detectPopup": [
2086
+ {
2087
+ "visible": "#sd-cmp"
2088
+ }
2089
+ ],
2090
+ "optIn": [
2091
+ {
2092
+ "waitForThenClick": "#sd-cmp .sd-cmp-3cRQ2"
2093
+ }
2094
+ ],
2095
+ "optOut": [
2096
+ {
2097
+ "waitForThenClick": "#sd-cmp .sd-cmp-1pO44"
2098
+ }
2099
+ ],
2100
+ "test": [
2101
+ {
2102
+ "eval": "document.cookie.includes('euconsent-v2')"
2103
+ }
2104
+ ]
2105
+ },
1354
2106
  {
1355
2107
  "name": "snigel",
1356
2108
  "detectCmp": [
@@ -1416,6 +2168,39 @@
1416
2168
  }
1417
2169
  ]
1418
2170
  },
2171
+ {
2172
+ "name": "tarteaucitron.js",
2173
+ "prehideSelectors": [
2174
+ "#tarteaucitronRoot"
2175
+ ],
2176
+ "detectCmp": [
2177
+ {
2178
+ "exists": "#tarteaucitronRoot"
2179
+ }
2180
+ ],
2181
+ "detectPopup": [
2182
+ {
2183
+ "visible": "#tarteaucitronRoot #tarteaucitronAlertSmall,#tarteaucitronRoot #tarteaucitronAlertBig",
2184
+ "check": "any"
2185
+ }
2186
+ ],
2187
+ "optIn": [
2188
+ {
2189
+ "eval": "tarteaucitron.userInterface.respondAll(true) || true"
2190
+ }
2191
+ ],
2192
+ "optOut": [
2193
+ {
2194
+ "eval": "tarteaucitron.userInterface.respondAll(false) || true"
2195
+ }
2196
+ ],
2197
+ "test": [
2198
+ {
2199
+ "eval": "document.cookie.match(/tarteaucitron=[^;]*/)[0].includes('false')",
2200
+ "comment": "sometimes there are required categories, so we check that at least something is false"
2201
+ }
2202
+ ]
2203
+ },
1419
2204
  {
1420
2205
  "name": "Tealium",
1421
2206
  "prehideSelectors": [
@@ -1435,13 +2220,6 @@
1435
2220
  }
1436
2221
  ],
1437
2222
  "optOut": [
1438
- {
1439
- "hide": [
1440
- "#__tealiumGDPRecModal",
1441
- "#__tealiumGDPRcpPrefs",
1442
- "#consent-layer"
1443
- ]
1444
- },
1445
2223
  {
1446
2224
  "waitForThenClick": "#cm-acceptNone,.js-accept-essential-cookies",
1447
2225
  "timeout": 1000
@@ -1466,6 +2244,66 @@
1466
2244
  }
1467
2245
  ]
1468
2246
  },
2247
+ {
2248
+ "name": "Termly",
2249
+ "prehideSelectors": [
2250
+ "#termly-code-snippet-support"
2251
+ ],
2252
+ "detectCmp": [
2253
+ {
2254
+ "exists": "#termly-code-snippet-support"
2255
+ }
2256
+ ],
2257
+ "detectPopup": [
2258
+ {
2259
+ "visible": "#termly-code-snippet-support div"
2260
+ }
2261
+ ],
2262
+ "optIn": [
2263
+ {
2264
+ "waitForThenClick": "[data-tid=\"banner-accept\"]"
2265
+ }
2266
+ ],
2267
+ "optOut": [
2268
+ {
2269
+ "if": {
2270
+ "exists": "[data-tid=\"banner-decline\"]"
2271
+ },
2272
+ "then": [
2273
+ {
2274
+ "click": "[data-tid=\"banner-decline\"]"
2275
+ }
2276
+ ],
2277
+ "else": [
2278
+ {
2279
+ "click": ".t-preference-button"
2280
+ },
2281
+ {
2282
+ "wait": 500
2283
+ },
2284
+ {
2285
+ "if": {
2286
+ "exists": ".t-declineAllButton"
2287
+ },
2288
+ "then": [
2289
+ {
2290
+ "click": ".t-declineAllButton"
2291
+ }
2292
+ ],
2293
+ "else": [
2294
+ {
2295
+ "waitForThenClick": ".t-preference-modal input[type=checkbox][checked]:not([disabled])",
2296
+ "all": true
2297
+ },
2298
+ {
2299
+ "waitForThenClick": ".t-saveButton"
2300
+ }
2301
+ ]
2302
+ }
2303
+ ]
2304
+ }
2305
+ ]
2306
+ },
1469
2307
  {
1470
2308
  "name": "Test page CMP",
1471
2309
  "prehideSelectors": [
@@ -1482,6 +2320,9 @@
1482
2320
  }
1483
2321
  ],
1484
2322
  "optIn": [
2323
+ {
2324
+ "waitFor": "#accept-all"
2325
+ },
1485
2326
  {
1486
2327
  "click": "#accept-all"
1487
2328
  }
@@ -1553,7 +2394,40 @@
1553
2394
  ]
1554
2395
  },
1555
2396
  {
1556
- "name": "usercentrics-1",
2397
+ "name": "UK Cookie Consent",
2398
+ "prehideSelectors": [
2399
+ "#catapult-cookie-bar"
2400
+ ],
2401
+ "detectCmp": [
2402
+ {
2403
+ "exists": "#catapult-cookie-bar"
2404
+ }
2405
+ ],
2406
+ "detectPopup": [
2407
+ {
2408
+ "exists": ".has-cookie-bar #catapult-cookie-bar"
2409
+ }
2410
+ ],
2411
+ "optIn": [
2412
+ {
2413
+ "click": "#catapultCookie"
2414
+ }
2415
+ ],
2416
+ "optOut": [
2417
+ {
2418
+ "hide": [
2419
+ "#catapult-cookie-bar"
2420
+ ]
2421
+ }
2422
+ ],
2423
+ "test": [
2424
+ {
2425
+ "eval": "!document.cookie.includes('catAccCookies')"
2426
+ }
2427
+ ]
2428
+ },
2429
+ {
2430
+ "name": "usercentrics-api",
1557
2431
  "detectCmp": [
1558
2432
  {
1559
2433
  "exists": "#usercentrics-root"
@@ -1561,7 +2435,7 @@
1561
2435
  ],
1562
2436
  "detectPopup": [
1563
2437
  {
1564
- "eval": "!!document.querySelector('#usercentrics-root').shadowRoot.querySelector('#uc-center-container')"
2438
+ "eval": "typeof UC_UI === 'object'"
1565
2439
  }
1566
2440
  ],
1567
2441
  "optIn": [
@@ -1589,6 +2463,34 @@
1589
2463
  }
1590
2464
  ]
1591
2465
  },
2466
+ {
2467
+ "name": "usercentrics-button",
2468
+ "detectCmp": [
2469
+ {
2470
+ "exists": "#usercentrics-button"
2471
+ }
2472
+ ],
2473
+ "detectPopup": [
2474
+ {
2475
+ "visible": "#usercentrics-button #uc-btn-accept-banner"
2476
+ }
2477
+ ],
2478
+ "optIn": [
2479
+ {
2480
+ "click": "#usercentrics-button #uc-btn-accept-banner"
2481
+ }
2482
+ ],
2483
+ "optOut": [
2484
+ {
2485
+ "click": "#usercentrics-button #uc-btn-deny-banner"
2486
+ }
2487
+ ],
2488
+ "test": [
2489
+ {
2490
+ "eval": "JSON.parse(localStorage.getItem('usercentrics')).consents.every(c => c.isEssential || !c.consentStatus)"
2491
+ }
2492
+ ]
2493
+ },
1592
2494
  {
1593
2495
  "name": "uswitch.com",
1594
2496
  "prehideSelectors": [
@@ -1617,6 +2519,9 @@
1617
2519
  },
1618
2520
  {
1619
2521
  "name": "vodafone.de",
2522
+ "runContext": {
2523
+ "url": "https://www.vodafone.de/"
2524
+ },
1620
2525
  "prehideSelectors": [
1621
2526
  ".dip-consent,.dip-consent-container"
1622
2527
  ],
@@ -1632,15 +2537,12 @@
1632
2537
  ],
1633
2538
  "optOut": [
1634
2539
  {
1635
- "click": ".dip-consent-btn.white-btn"
1636
- },
1637
- {
1638
- "eval": "Array.from(document.querySelectorAll('.dip-consent-btn.red-btn')).filter(e => e.innerText === 'Auswahl bestätigen')[0].click() || true"
2540
+ "click": ".dip-consent-btn[tabindex=\"2\"]"
1639
2541
  }
1640
2542
  ],
1641
2543
  "optIn": [
1642
2544
  {
1643
- "click": ".dip-consent-btn.red-btn"
2545
+ "click": ".dip-consent-btn[tabindex=\"1\"]"
1644
2546
  }
1645
2547
  ]
1646
2548
  },
@@ -1709,6 +2611,38 @@
1709
2611
  }
1710
2612
  ]
1711
2613
  },
2614
+ {
2615
+ "name": "WP Cookie Notice for GDPR",
2616
+ "comment": "https://wordpress.org/plugins/gdpr-cookie-consent/",
2617
+ "prehideSelectors": [
2618
+ "#gdpr-cookie-consent-bar"
2619
+ ],
2620
+ "detectCmp": [
2621
+ {
2622
+ "exists": "#gdpr-cookie-consent-bar"
2623
+ }
2624
+ ],
2625
+ "detectPopup": [
2626
+ {
2627
+ "visible": "#gdpr-cookie-consent-bar"
2628
+ }
2629
+ ],
2630
+ "optIn": [
2631
+ {
2632
+ "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_accept"
2633
+ }
2634
+ ],
2635
+ "optOut": [
2636
+ {
2637
+ "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_reject"
2638
+ }
2639
+ ],
2640
+ "test": [
2641
+ {
2642
+ "eval": "document.cookie.includes('wpl_viewed_cookie=no')"
2643
+ }
2644
+ ]
2645
+ },
1712
2646
  {
1713
2647
  "name": "xing.com",
1714
2648
  "detectCmp": [