@duckduckgo/autoconsent 5.3.0 → 6.0.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 (95) hide show
  1. package/.eslintrc +1 -1
  2. package/CHANGELOG.md +17 -0
  3. package/data/coverage.json +958 -1010
  4. package/dist/addon-firefox/background.bundle.js +13 -12
  5. package/dist/addon-firefox/content.bundle.js +1074 -930
  6. package/dist/addon-firefox/manifest.json +1 -1
  7. package/dist/addon-firefox/rules.json +83 -83
  8. package/dist/addon-mv3/background.bundle.js +13 -12
  9. package/dist/addon-mv3/content.bundle.js +1074 -930
  10. package/dist/addon-mv3/manifest.json +1 -1
  11. package/dist/addon-mv3/popup.bundle.js +38 -0
  12. package/dist/addon-mv3/popup.html +2 -1
  13. package/dist/addon-mv3/rules.json +83 -83
  14. package/dist/autoconsent.cjs.js +1074 -937
  15. package/dist/autoconsent.esm.js +1074 -932
  16. package/dist/autoconsent.playwright.js +1 -1
  17. package/lib/cmps/airbnb.ts +1 -3
  18. package/lib/cmps/all.ts +13 -22
  19. package/lib/cmps/base.ts +123 -92
  20. package/lib/cmps/consentmanager.ts +7 -10
  21. package/lib/cmps/conversant.ts +1 -4
  22. package/lib/cmps/cookiebot.ts +6 -10
  23. package/lib/cmps/evidon.ts +1 -3
  24. package/lib/cmps/klaro.ts +3 -7
  25. package/lib/cmps/onetrust.ts +3 -7
  26. package/lib/cmps/sourcepoint-frame.ts +1 -4
  27. package/lib/cmps/tiktok.ts +1 -3
  28. package/lib/cmps/trustarc-frame.ts +1 -3
  29. package/lib/cmps/trustarc-top.ts +6 -5
  30. package/lib/cmps/uniconsent.ts +1 -3
  31. package/lib/eval-snippets.ts +105 -0
  32. package/lib/rule-executors.ts +0 -8
  33. package/lib/rules.ts +3 -1
  34. package/lib/types.ts +1 -1
  35. package/lib/web.ts +26 -13
  36. package/package.json +1 -1
  37. package/readme.md +3 -3
  38. package/rules/autoconsent/192.json +1 -1
  39. package/rules/autoconsent/adroll.json +1 -1
  40. package/rules/autoconsent/affinity-serif-com.json +1 -1
  41. package/rules/autoconsent/axeptio.json +1 -1
  42. package/rules/autoconsent/bing.json +1 -1
  43. package/rules/autoconsent/borlabs.json +1 -1
  44. package/rules/autoconsent/bundesregierung-de.json +1 -1
  45. package/rules/autoconsent/canva.json +1 -1
  46. package/rules/autoconsent/clickio.json +1 -1
  47. package/rules/autoconsent/clinch.json +1 -1
  48. package/rules/autoconsent/coinbase.json +1 -1
  49. package/rules/autoconsent/complianz-banner.json +1 -1
  50. package/rules/autoconsent/complianz-categories.json +1 -1
  51. package/rules/autoconsent/complianz-optin.json +1 -1
  52. package/rules/autoconsent/cookie-law-info.json +2 -2
  53. package/rules/autoconsent/cookie-manager-popup.json +1 -1
  54. package/rules/autoconsent/cookiealert.json +3 -3
  55. package/rules/autoconsent/cookiefirst.json +7 -8
  56. package/rules/autoconsent/cookieinformation.json +3 -3
  57. package/rules/autoconsent/dailymotion.json +1 -1
  58. package/rules/autoconsent/dsgvo.json +1 -1
  59. package/rules/autoconsent/dunelm.json +1 -1
  60. package/rules/autoconsent/etsy.json +2 -2
  61. package/rules/autoconsent/eu-cookie-compliance.json +1 -1
  62. package/rules/autoconsent/eu-cookie-law.json +1 -1
  63. package/rules/autoconsent/ezoic.json +2 -2
  64. package/rules/autoconsent/google.json +1 -1
  65. package/rules/autoconsent/iubenda.json +2 -2
  66. package/rules/autoconsent/jquery-cookiebar.json +1 -1
  67. package/rules/autoconsent/mediavine.json +1 -1
  68. package/rules/autoconsent/microsoft.json +3 -3
  69. package/rules/autoconsent/moove.json +1 -1
  70. package/rules/autoconsent/paypal.json +1 -1
  71. package/rules/autoconsent/primebox.json +1 -1
  72. package/rules/autoconsent/pubtech.json +1 -1
  73. package/rules/autoconsent/reddit.json +1 -1
  74. package/rules/autoconsent/sibbo.json +1 -1
  75. package/rules/autoconsent/sirdata.json +1 -1
  76. package/rules/autoconsent/snigel.json +1 -1
  77. package/rules/autoconsent/steampowered.json +1 -1
  78. package/rules/autoconsent/tarteaucitron.json +3 -3
  79. package/rules/autoconsent/tealium.json +4 -4
  80. package/rules/autoconsent/testcmp-cosmetic.json +1 -1
  81. package/rules/autoconsent/testcmp.json +1 -1
  82. package/rules/autoconsent/thefreedictionary.json +2 -2
  83. package/rules/autoconsent/theverge.json +1 -1
  84. package/rules/autoconsent/twitter.json +1 -1
  85. package/rules/autoconsent/ubuntu.com.json +1 -1
  86. package/rules/autoconsent/uk-cookie-consent.json +1 -1
  87. package/rules/autoconsent/usercentrics-api.json +7 -7
  88. package/rules/autoconsent/usercentrics-button.json +1 -1
  89. package/rules/autoconsent/waitrose.json +2 -2
  90. package/rules/autoconsent/wp-cookie-notice.json +1 -1
  91. package/rules/autoconsent/xing.json +1 -1
  92. package/rules/autoconsent/youtube-desktop.json +1 -1
  93. package/rules/autoconsent/youtube-mobile.json +1 -1
  94. package/rules/rules.json +83 -83
  95. package/lib/index.ts +0 -4
@@ -3,7 +3,7 @@
3
3
  "prehideSelectors": ["#wcpConsentBannerCtrl"],
4
4
  "detectCmp": [{ "exists": "#wcpConsentBannerCtrl" }],
5
5
  "detectPopup": [{ "exists": "#wcpConsentBannerCtrl" }],
6
- "optOut": [{ "eval": "Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Reject|Ablehnen'))[0].click() || true" }],
7
- "optIn": [{ "eval": "Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click() || true" }],
8
- "test": [{ "eval": "!!document.cookie.match('MSCC')"}]
6
+ "optOut": [{ "eval": "EVAL_MICROSOFT_0" }],
7
+ "optIn": [{ "eval": "EVAL_MICROSOFT_1" }],
8
+ "test": [{ "eval": "EVAL_MICROSOFT_2"}]
9
9
  }
@@ -14,7 +14,7 @@
14
14
  "then": [
15
15
  { "click": "#moove_gdpr_cookie_info_bar .change-settings-button" },
16
16
  { "waitForVisible": "#moove_gdpr_cookie_modal" },
17
- { "eval": "document.querySelectorAll('#moove_gdpr_cookie_modal input').forEach(i => { if (!i.disabled && i.name !== 'moove_gdpr_strict_cookies') i.checked = false }) || true" },
17
+ { "eval": "EVAL_MOOVE_0" },
18
18
  { "click": ".moove-gdpr-modal-save-settings" }
19
19
  ],
20
20
  "else": [
@@ -14,6 +14,6 @@
14
14
  ],
15
15
  "test": [
16
16
  { "wait": 500 },
17
- { "eval": "document.cookie.includes('cookie_prefs') === true" }
17
+ { "eval": "EVAL_PAYPAL_0" }
18
18
  ]
19
19
  }
@@ -14,6 +14,6 @@
14
14
  { "hide": ["#cookie-bar"] }
15
15
  ],
16
16
  "test": [
17
- { "eval": "!document.cookie.includes('cb-enabled=accepted')" }
17
+ { "eval": "EVAL_PRIMEBOX_0" }
18
18
  ]
19
19
  }
@@ -36,7 +36,7 @@
36
36
  ],
37
37
  "test": [
38
38
  {
39
- "eval": "document.cookie.includes('euconsent-v2') && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)) "
39
+ "eval": "EVAL_PUBTECH_0"
40
40
  }
41
41
  ]
42
42
  }
@@ -17,6 +17,6 @@
17
17
  { "waitForThenClick": "section:has(a[href^=\"https://www.reddit.com/policies/cookies\"]) section[class^='_'] > section:last-child form button" }
18
18
  ],
19
19
  "test": [
20
- {"eval": "document.cookie.includes('eu_cookie={%22opted%22:true%2C%22nonessential%22:false}')"}
20
+ {"eval": "EVAL_REDDIT_0"}
21
21
  ]
22
22
  }
@@ -37,7 +37,7 @@
37
37
  ],
38
38
  "test": [
39
39
  {
40
- "eval": "!!window.localStorage.getItem('euconsent-v2')"
40
+ "eval": "EVAL_SIBBO_0"
41
41
  }
42
42
  ]
43
43
  }
@@ -6,6 +6,6 @@
6
6
  "optIn": [ { "waitForThenClick": "#sd-cmp .sd-cmp-3cRQ2" } ],
7
7
  "optOut": [ { "waitForThenClick": "#sd-cmp .sd-cmp-1pO44" } ],
8
8
  "test": [
9
- { "eval": "document.cookie.includes('euconsent-v2')" }
9
+ { "eval": "EVAL_SIRDATA_0" }
10
10
  ]
11
11
  }
@@ -3,6 +3,6 @@
3
3
  "detectCmp": [{ "exists": ".snigel-cmp-framework" }],
4
4
  "detectPopup": [{ "visible": ".snigel-cmp-framework" }],
5
5
  "optOut": [{ "click": "#sn-b-custom" }, {"click": "#sn-b-save"}],
6
- "test": [{ "eval": "!!document.cookie.match('snconsent')"}],
6
+ "test": [{ "eval": "EVAL_SNIGEL_0"}],
7
7
  "optIn": [{ "click": ".snigel-cmp-framework #accept-choices" }]
8
8
  }
@@ -9,7 +9,7 @@
9
9
  "wait": 1000
10
10
  },
11
11
  {
12
- "eval": "JSON.parse(decodeURIComponent(document.cookie.split(';').find(s => s.trim().startsWith('cookieSettings')).split('=')[1])).preference_state === 2"
12
+ "eval": "EVAL_STEAMPOWERED_0"
13
13
  }
14
14
  ]
15
15
  }
@@ -7,12 +7,12 @@
7
7
  "check": "any"
8
8
  }],
9
9
  "optIn": [
10
- { "eval": "tarteaucitron.userInterface.respondAll(true) || true" }
10
+ { "eval": "EVAL_TARTEAUCITRON_1" }
11
11
  ],
12
12
  "optOut": [
13
- { "eval": "tarteaucitron.userInterface.respondAll(false) || true" }
13
+ { "eval": "EVAL_TARTEAUCITRON_0" }
14
14
  ],
15
15
  "test": [
16
- { "eval": "document.cookie.match(/tarteaucitron=[^;]*/)[0].includes('false')", "comment": "sometimes there are required categories, so we check that at least something is false" }
16
+ { "eval": "EVAL_TARTEAUCITRON_2", "comment": "sometimes there are required categories, so we check that at least something is false" }
17
17
  ]
18
18
  }
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "Tealium",
3
3
  "prehideSelectors": ["#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#consent-layer"],
4
- "detectCmp": [{ "visible": "#__tealiumGDPRecModal" }, { "eval": "typeof window.utag !== 'undefined' && typeof utag.gdpr === 'object'" }],
4
+ "detectCmp": [{ "visible": "#__tealiumGDPRecModal" }, { "eval": "EVAL_TEALIUM_0" }],
5
5
  "detectPopup": [{ "visible": "#__tealiumGDPRecModal" }],
6
6
  "optOut": [
7
7
  { "waitForThenClick": "#cm-acceptNone,.js-accept-essential-cookies", "timeout": 1000 },
8
- { "eval": "utag.gdpr.setConsentValue(false) || true" }
8
+ { "eval": "EVAL_TEALIUM_1" }
9
9
  ],
10
10
  "optIn": [
11
11
  { "hide": ["#__tealiumGDPRecModal"] },
12
- { "eval": "utag.gdpr.setConsentValue(true) || true" }
12
+ { "eval": "EVAL_TEALIUM_2" }
13
13
  ],
14
14
  "test": [
15
- { "eval": "utag.gdpr.getConsentState() !== 1" }
15
+ { "eval": "EVAL_TEALIUM_3" }
16
16
  ]
17
17
  }
@@ -13,6 +13,6 @@
13
13
  ],
14
14
  "test": [
15
15
  { "wait": 500 },
16
- { "eval": "window.results.results[0] === 'banner_hidden'" }
16
+ { "eval": "EVAL_TESTCMP_COSMETIC_0" }
17
17
  ]
18
18
  }
@@ -11,5 +11,5 @@
11
11
  { "waitFor": "#reject-all" },
12
12
  { "click": "#reject-all" }
13
13
  ],
14
- "test": [{ "eval": "window.results.results[0] === 'button_clicked'" }]
14
+ "test": [{ "eval": "EVAL_TESTCMP_0" }]
15
15
  }
@@ -3,10 +3,10 @@
3
3
  "prehideSelectors": ["#cmpBanner"],
4
4
  "detectCmp": [{ "exists": "#cmpBanner" }],
5
5
  "detectPopup": [{ "visible": "#cmpBanner" }],
6
- "optIn": [{ "eval": "cmpUi.allowAll() || true" }],
6
+ "optIn": [{ "eval": "EVAL_THEFREEDICTIONARY_1" }],
7
7
  "optOut": [
8
8
  {
9
- "eval": "cmpUi.showPurposes() || cmpUi.rejectAll() || true"
9
+ "eval": "EVAL_THEFREEDICTIONARY_0"
10
10
  }
11
11
  ]
12
12
  }
@@ -32,7 +32,7 @@
32
32
  ],
33
33
  "test": [
34
34
  {
35
- "eval": "document.cookie.includes('_duet_gdpr_acknowledged=1')"
35
+ "eval": "EVAL_THEVERGE_0"
36
36
  }
37
37
  ]
38
38
  }
@@ -17,6 +17,6 @@
17
17
  { "waitForThenClick": "[data-testid=\"BottomBar\"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:last-child" }
18
18
  ],
19
19
  "TODOtest": [
20
- { "eval": "document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')" }
20
+ { "eval": "EVAL_document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')" }
21
21
  ]
22
22
  }
@@ -67,7 +67,7 @@
67
67
  ],
68
68
  "test": [
69
69
  {
70
- "eval": "document.cookie === '_cookies_accepted=essential'"
70
+ "eval": "EVAL_UBUNTU_COM_0"
71
71
  }
72
72
  ]
73
73
  }
@@ -11,6 +11,6 @@
11
11
  { "hide": ["#catapult-cookie-bar"] }
12
12
  ],
13
13
  "test": [
14
- { "eval": "!document.cookie.includes('catAccCookies')" }
14
+ { "eval": "EVAL_UK_COOKIE_CONSENT_0" }
15
15
  ]
16
16
  }
@@ -3,7 +3,7 @@
3
3
  "detectCmp": [{ "exists": "#usercentrics-root" }],
4
4
  "detectPopup": [
5
5
  {
6
- "eval": "typeof UC_UI === 'object'"
6
+ "eval": "EVAL_USERCENTRICS_API_0"
7
7
  },
8
8
  {
9
9
  "exists": [
@@ -13,13 +13,13 @@
13
13
  }
14
14
  ],
15
15
  "optIn": [
16
- { "eval": "!!UC_UI.acceptAllConsents()" },
17
- { "eval": "!!UC_UI.closeCMP()" },
18
- { "eval": "UC_UI.areAllConsentsAccepted() === true" }
16
+ { "eval": "EVAL_USERCENTRICS_API_3" },
17
+ { "eval": "EVAL_USERCENTRICS_API_1" },
18
+ { "eval": "EVAL_USERCENTRICS_API_5" }
19
19
  ],
20
20
  "optOut": [
21
- { "eval": "!!UC_UI.closeCMP()" },
22
- { "eval": "!!UC_UI.denyAllConsents()" }
21
+ { "eval": "EVAL_USERCENTRICS_API_1" },
22
+ { "eval": "EVAL_USERCENTRICS_API_2" }
23
23
  ],
24
- "test": [{ "eval": "UC_UI.areAllConsentsAccepted() === false" }]
24
+ "test": [{ "eval": "EVAL_USERCENTRICS_API_6" }]
25
25
  }
@@ -10,5 +10,5 @@
10
10
  "optOut": [
11
11
  { "click": "#usercentrics-button #uc-btn-deny-banner" }
12
12
  ],
13
- "test": [{ "eval": "JSON.parse(localStorage.getItem('usercentrics')).consents.every(c => c.isEssential || !c.consentStatus)" }]
13
+ "test": [{ "eval": "EVAL_USERCENTRICS_BUTTON_0" }]
14
14
  }
@@ -16,13 +16,13 @@
16
16
  "wait": 200
17
17
  },
18
18
  {
19
- "eval": "Array.from(document.querySelectorAll('label[id$=cookies-deny-label]')).forEach(e => e.click()) || true"
19
+ "eval": "EVAL_WAITROSE_0"
20
20
  },
21
21
  {
22
22
  "click": "button[data-test=submit]"
23
23
  }
24
24
  ],
25
25
  "test": [
26
- {"eval": "document.cookie.includes('wtr_cookies_advertising=0') && document.cookie.includes('wtr_cookies_analytics=0')"}
26
+ {"eval": "EVAL_WAITROSE_1"}
27
27
  ]
28
28
  }
@@ -7,6 +7,6 @@
7
7
  "optIn": [ { "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_accept" } ],
8
8
  "optOut": [ { "waitForThenClick": "#gdpr-cookie-consent-bar #cookie_action_reject" } ],
9
9
  "test": [
10
- { "eval": "document.cookie.includes('wpl_viewed_cookie=no')" }
10
+ { "eval": "EVAL_WP_COOKIE_NOTICE_0" }
11
11
  ]
12
12
  }
@@ -11,5 +11,5 @@
11
11
  "click": ".consent-banner-button-accept-overlay"
12
12
  }
13
13
  ],
14
- "test": [{"eval": "document.cookie.includes('userConsent=%7B%22marketing%22%3Afalse')"}]
14
+ "test": [{"eval": "EVAL_XING_0"}]
15
15
  }
@@ -18,6 +18,6 @@
18
18
  ],
19
19
  "test": [
20
20
  { "wait": 500 },
21
- { "eval": "!!document.cookie.match(/SOCS=CAE/)" }
21
+ { "eval": "EVAL_YOUTUBE_DESKTOP_0" }
22
22
  ]
23
23
  }
@@ -17,6 +17,6 @@
17
17
  ],
18
18
  "test": [
19
19
  { "wait": 500 },
20
- { "eval": "!!document.cookie.match(/SOCS=CAE/)" }
20
+ { "eval": "EVAL_YOUTUBE_MOBILE_0" }
21
21
  ]
22
22
  }