@duckduckgo/autoconsent 16.62.0 → 16.63.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 (74) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/addon-firefox/compact-rules.json +1 -1
  3. package/dist/addon-firefox/content.bundle.js +14 -1
  4. package/dist/addon-firefox/manifest.json +1 -1
  5. package/dist/addon-firefox/rule-index.json +1 -1
  6. package/dist/addon-firefox/rules.json +1 -1
  7. package/dist/addon-mv3/compact-rules.json +1 -1
  8. package/dist/addon-mv3/content.bundle.js +14 -1
  9. package/dist/addon-mv3/manifest.json +1 -1
  10. package/dist/addon-mv3/rule-index.json +1 -1
  11. package/dist/addon-mv3/rules.json +1 -1
  12. package/dist/autoconsent.cjs.js +14 -1
  13. package/dist/autoconsent.esm.js +14 -1
  14. package/dist/autoconsent.playwright.js +14 -1
  15. package/dist/autoconsent.standalone.js +15 -2
  16. package/dist/heuristics.cjs.js +14 -1
  17. package/dist/heuristics.mjs +14 -1
  18. package/lib/heuristic-patterns.ts +17 -1
  19. package/package.json +2 -2
  20. package/rules/autoconsent/appconsent-legacy.json +22 -1
  21. package/rules/autoconsent/beetle-tracking.json +22 -0
  22. package/rules/autoconsent/casier-judiciaire-justice-gouv-fr.json +40 -0
  23. package/rules/autoconsent/civilservicejobs-service-gov-uk.json +38 -0
  24. package/rules/autoconsent/ckies.json +1 -1
  25. package/rules/autoconsent/cookiesinfo-closecookies.json +9 -0
  26. package/rules/autoconsent/dack365.json +35 -0
  27. package/rules/autoconsent/eu-cookie-law-popup.json +33 -0
  28. package/rules/autoconsent/fascicolosanitario-lombardia.json +14 -0
  29. package/rules/autoconsent/fundingchoices.json +12 -2
  30. package/rules/autoconsent/hyrabostad.json +21 -0
  31. package/rules/autoconsent/insided.json +15 -0
  32. package/rules/autoconsent/kartverket.json +46 -0
  33. package/rules/autoconsent/luxmed.json +33 -0
  34. package/rules/autoconsent/meta-cookie-dialog.json +37 -0
  35. package/rules/autoconsent/mittanbud.json +33 -0
  36. package/rules/autoconsent/poki.json +37 -0
  37. package/rules/autoconsent/polisen-se.json +26 -0
  38. package/rules/autoconsent/romeo.json +47 -0
  39. package/rules/autoconsent/stockholm-stad.json +42 -0
  40. package/rules/autoconsent/stright.json +19 -1
  41. package/rules/autoconsent/stripchat.com.json +26 -5
  42. package/rules/autoconsent/tvp.json +27 -0
  43. package/rules/autoconsent/urvaerket.json +33 -0
  44. package/rules/autoconsent/volvocars-com.json +23 -2
  45. package/rules/autoconsent/vue-cookie-accept-decline.json +42 -0
  46. package/rules/compact-rules.json +1 -1
  47. package/rules/rule-index.json +1 -1
  48. package/rules/rules.json +1 -1
  49. package/tests/appconsent-legacy.spec.ts +1 -1
  50. package/tests/beetle-tracking.spec.ts +3 -0
  51. package/tests/casier-judiciaire-justice-gouv-fr.spec.ts +3 -0
  52. package/tests/civilservicejobs-service-gov-uk.spec.ts +3 -0
  53. package/tests/cookiesinfo-closecookies.spec.ts +8 -0
  54. package/tests/dack365.spec.ts +3 -0
  55. package/tests/eu-cookie-law-popup.spec.ts +8 -0
  56. package/tests/fascicolosanitario-lombardia.spec.ts +3 -0
  57. package/tests/fundingchoices.spec.ts +7 -1
  58. package/tests/hyrabostad.spec.ts +3 -0
  59. package/tests/insided.spec.ts +9 -0
  60. package/tests/kartverket.spec.ts +3 -0
  61. package/tests/luxmed.spec.ts +3 -0
  62. package/tests/meta-cookie-dialog.spec.ts +14 -0
  63. package/tests/mittanbud.spec.ts +3 -0
  64. package/tests/poki.spec.ts +6 -0
  65. package/tests/polisen-se.spec.ts +3 -0
  66. package/tests/romeo.spec.ts +3 -0
  67. package/tests/stockholm-stad.spec.ts +7 -0
  68. package/tests/stright.spec.ts +11 -0
  69. package/tests/stripchat.com.spec.ts +4 -1
  70. package/tests/tvp.spec.ts +3 -0
  71. package/tests/urvaerket.spec.ts +13 -0
  72. package/tests/volvocars-com.spec.ts +1 -1
  73. package/tests/vue-cookie-accept-decline.spec.ts +8 -0
  74. package/tests-wtr/heuristics/heuristics-utils.test.ts +49 -0
@@ -346,7 +346,15 @@ var REJECT_PATTERNS_DANISH = [
346
346
  // "nej tak" (no thanks)
347
347
  /^nej(,?\s+tak)?$/is
348
348
  ];
349
- var REJECT_PATTERNS_CATALAN = [/(^|\s)rebutj/is, "no accepto", "no, gr\xE0cies"];
349
+ var REJECT_PATTERNS_CATALAN = [
350
+ /(^|\s)rebutj/is,
351
+ "no accepto",
352
+ "no, gr\xE0cies",
353
+ // accept/allow/use (only) necessary / essential / technical / functional
354
+ /^\s*(acceptar?|accepto|permetre|utilitzar|usar)?\s*(només|sols|únicament)?\s*(les\s+|els\s+)?(galetes\s+|cookies?\s+)?(estrictament\s+)?(necess[aà]ri\w*|essencial\w*|tècni\w*|funcional\w*|imprescindibles)\s*$/is,
355
+ // continue without accepting
356
+ /^continuar sense acceptar/is
357
+ ];
350
358
  var REJECT_PATTERNS_GALICIAN = [/(^|\s)rexeitar/is];
351
359
  var REJECT_PATTERNS_BASQUE = [/(^|\s)(baztertu|ukatu)/is];
352
360
  var REJECT_PATTERNS_PORTUGUESE = [/^aceitar apenas cookies essenciais\.$/];
@@ -504,6 +512,9 @@ var SETTINGS_PATTERNS = [
504
512
  "configura-les",
505
513
  "personalitza",
506
514
  "veure prefer\xE8ncies",
515
+ /^(configuració|personalitzar|preferències|més opcions)$/,
516
+ /^(configuració|preferències|opcions)( de( les)?)? (galetes|cookies?)$/is,
517
+ /^(gestiona|gestionar|configura|configurar|personalitza|personalitzar|veure|establir|administrar)( les)?( meves)? (preferències|galetes|cookies?|opcions)$/is,
507
518
  // Galician (GL)
508
519
  "xestionar preferencias",
509
520
  // Basque (EU)
@@ -777,6 +788,8 @@ var ACKNOWLEDGE_PATTERNS = [
777
788
  "seguir",
778
789
  "vale",
779
790
  "\xA1vamos!",
791
+ // Catalan (CA)
792
+ /^(ho )?(entenc|entès|entesos)[ !.]*$/s,
780
793
  // Polish (PL)
781
794
  "kontynuuj",
782
795
  "ok, zrozumia\u0142em",
@@ -307,7 +307,15 @@ var REJECT_PATTERNS_DANISH = [
307
307
  // "nej tak" (no thanks)
308
308
  /^nej(,?\s+tak)?$/is
309
309
  ];
310
- var REJECT_PATTERNS_CATALAN = [/(^|\s)rebutj/is, "no accepto", "no, gr\xE0cies"];
310
+ var REJECT_PATTERNS_CATALAN = [
311
+ /(^|\s)rebutj/is,
312
+ "no accepto",
313
+ "no, gr\xE0cies",
314
+ // accept/allow/use (only) necessary / essential / technical / functional
315
+ /^\s*(acceptar?|accepto|permetre|utilitzar|usar)?\s*(només|sols|únicament)?\s*(les\s+|els\s+)?(galetes\s+|cookies?\s+)?(estrictament\s+)?(necess[aà]ri\w*|essencial\w*|tècni\w*|funcional\w*|imprescindibles)\s*$/is,
316
+ // continue without accepting
317
+ /^continuar sense acceptar/is
318
+ ];
311
319
  var REJECT_PATTERNS_GALICIAN = [/(^|\s)rexeitar/is];
312
320
  var REJECT_PATTERNS_BASQUE = [/(^|\s)(baztertu|ukatu)/is];
313
321
  var REJECT_PATTERNS_PORTUGUESE = [/^aceitar apenas cookies essenciais\.$/];
@@ -465,6 +473,9 @@ var SETTINGS_PATTERNS = [
465
473
  "configura-les",
466
474
  "personalitza",
467
475
  "veure prefer\xE8ncies",
476
+ /^(configuració|personalitzar|preferències|més opcions)$/,
477
+ /^(configuració|preferències|opcions)( de( les)?)? (galetes|cookies?)$/is,
478
+ /^(gestiona|gestionar|configura|configurar|personalitza|personalitzar|veure|establir|administrar)( les)?( meves)? (preferències|galetes|cookies?|opcions)$/is,
468
479
  // Galician (GL)
469
480
  "xestionar preferencias",
470
481
  // Basque (EU)
@@ -738,6 +749,8 @@ var ACKNOWLEDGE_PATTERNS = [
738
749
  "seguir",
739
750
  "vale",
740
751
  "\xA1vamos!",
752
+ // Catalan (CA)
753
+ /^(ho )?(entenc|entès|entesos)[ !.]*$/s,
741
754
  // Polish (PL)
742
755
  "kontynuuj",
743
756
  "ok, zrozumia\u0142em",
@@ -373,7 +373,17 @@ const REJECT_PATTERNS_DANISH = [
373
373
  /^nej(,?\s+tak)?$/is,
374
374
  ];
375
375
 
376
- const REJECT_PATTERNS_CATALAN = [/(^|\s)rebutj/is, 'no accepto', 'no, gràcies'];
376
+ const REJECT_PATTERNS_CATALAN = [
377
+ /(^|\s)rebutj/is,
378
+ 'no accepto',
379
+ 'no, gràcies',
380
+
381
+ // accept/allow/use (only) necessary / essential / technical / functional
382
+ /^\s*(acceptar?|accepto|permetre|utilitzar|usar)?\s*(només|sols|únicament)?\s*(les\s+|els\s+)?(galetes\s+|cookies?\s+)?(estrictament\s+)?(necess[aà]ri\w*|essencial\w*|tècni\w*|funcional\w*|imprescindibles)\s*$/is,
383
+
384
+ // continue without accepting
385
+ /^continuar sense acceptar/is,
386
+ ];
377
387
 
378
388
  const REJECT_PATTERNS_GALICIAN = [/(^|\s)rexeitar/is];
379
389
 
@@ -561,6 +571,9 @@ export const SETTINGS_PATTERNS = [
561
571
  'configura-les',
562
572
  'personalitza',
563
573
  'veure preferències',
574
+ /^(configuració|personalitzar|preferències|més opcions)$/,
575
+ /^(configuració|preferències|opcions)( de( les)?)? (galetes|cookies?)$/is,
576
+ /^(gestiona|gestionar|configura|configurar|personalitza|personalitzar|veure|establir|administrar)( les)?( meves)? (preferències|galetes|cookies?|opcions)$/is,
564
577
 
565
578
  // Galician (GL)
566
579
  'xestionar preferencias',
@@ -873,6 +886,9 @@ export const ACKNOWLEDGE_PATTERNS = [
873
886
  'vale',
874
887
  '¡vamos!',
875
888
 
889
+ // Catalan (CA)
890
+ /^(ho )?(entenc|entès|entesos)[ !.]*$/s,
891
+
876
892
  // Polish (PL)
877
893
  'kontynuuj',
878
894
  'ok, zrozumiałem',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckduckgo/autoconsent",
3
- "version": "16.62.0",
3
+ "version": "16.63.0",
4
4
  "description": "",
5
5
  "types": "./dist/types/web.d.ts",
6
6
  "exports": {
@@ -73,7 +73,7 @@
73
73
  "markdown-it": "^15.0.2",
74
74
  "mocha": "^12.0.3",
75
75
  "prettier": "3.9.10",
76
- "randexp": "^0.5.3",
76
+ "randexp": "^0.6.1",
77
77
  "sinon": "^22.0.0",
78
78
  "tldts-experimental": "^7.4.3",
79
79
  "ts-json-schema-generator": "^2.3.0",
@@ -18,7 +18,28 @@
18
18
  ],
19
19
  "optOut": [
20
20
  {
21
- "waitForThenClick": ["iframe[srcdoc*='frame-root']", ".button__skip"]
21
+ "waitFor": ["iframe[srcdoc*='frame-root']", ".button__skip, .button__openPrivacyCenter"]
22
+ },
23
+ {
24
+ "if": {
25
+ "exists": ["iframe[srcdoc*='frame-root']", ".button__skip"]
26
+ },
27
+ "then": [
28
+ {
29
+ "click": ["iframe[srcdoc*='frame-root']", ".button__skip"]
30
+ }
31
+ ],
32
+ "else": [
33
+ {
34
+ "click": ["iframe[srcdoc*='frame-root']", ".button__openPrivacyCenter"]
35
+ },
36
+ {
37
+ "waitForThenClick": ["iframe[srcdoc*='frame-root']", ".button__refuseAll"]
38
+ },
39
+ {
40
+ "waitForThenClick": ["iframe[srcdoc*='frame-root']", ".button__save"]
41
+ }
42
+ ]
22
43
  }
23
44
  ],
24
45
  "test": [
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "beetle-tracking",
3
+ "vendorUrl": "https://beetle-tracking.com/",
4
+ "prehideSelectors": ["beetle-tracking-consent-modal"],
5
+ "detectCmp": [{ "exists": ["beetle-tracking-consent-modal", ".consent"] }],
6
+ "detectPopup": [{ "visible": ["beetle-tracking-consent-modal", ".consent__dialog-wrapper"] }],
7
+ "optIn": [
8
+ {
9
+ "waitForThenClick": ["beetle-tracking-consent-modal", ".consent__button-accept-all"],
10
+ "retry": 10,
11
+ "retryInterval": 500
12
+ }
13
+ ],
14
+ "optOut": [
15
+ {
16
+ "waitForThenClick": ["beetle-tracking-consent-modal", ".consent__button-decline-all"],
17
+ "retry": 10,
18
+ "retryInterval": 500
19
+ }
20
+ ],
21
+ "test": [{ "cookieContains": "\"bt_marketing\":false" }]
22
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "casier-judiciaire-justice-gouv-fr",
3
+ "vendorUrl": "https://casier-judiciaire.justice.gouv.fr/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://casier-judiciaire\\.justice\\.gouv\\.fr/"
6
+ },
7
+ "prehideSelectors": ["#cookie_banner #myModal"],
8
+ "detectCmp": [
9
+ {
10
+ "exists": "#cookie_banner #myModal #popupCross"
11
+ }
12
+ ],
13
+ "detectPopup": [
14
+ {
15
+ "visible": "#cookie_banner #myModal"
16
+ }
17
+ ],
18
+ "optIn": [
19
+ {
20
+ "waitForThenClick": "#myModal #popupCross"
21
+ }
22
+ ],
23
+ "optOut": [
24
+ {
25
+ "waitForThenClick": "#myModal #popupCross"
26
+ },
27
+ {
28
+ "waitForVisible": "#cookie_banner #myModal",
29
+ "check": "none",
30
+ "timeout": 2000,
31
+ "optional": true
32
+ }
33
+ ],
34
+ "test": [
35
+ {
36
+ "visible": "#cookie_banner #myModal",
37
+ "check": "none"
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "civilservicejobs-service-gov-uk",
3
+ "runContext": {
4
+ "urlPattern": "^https?://(\\w+\\.)?civilservicejobs\\.service\\.gov\\.uk/"
5
+ },
6
+ "prehideSelectors": ["#csr-cookie-message"],
7
+ "detectCmp": [
8
+ {
9
+ "exists": "#csr-cookie-message #accept_essential_cookies_button"
10
+ }
11
+ ],
12
+ "detectPopup": [
13
+ {
14
+ "visible": "#csr-cookie-message #accept_essential_cookies_button"
15
+ }
16
+ ],
17
+ "optIn": [
18
+ {
19
+ "waitForThenClick": "#csr-cookie-message #accept_all_cookies_button"
20
+ }
21
+ ],
22
+ "optOut": [
23
+ {
24
+ "waitForThenClick": "#csr-cookie-message #accept_essential_cookies_button"
25
+ },
26
+ {
27
+ "waitForVisible": "#csr-cookie-message",
28
+ "check": "none",
29
+ "timeout": 2000,
30
+ "optional": true
31
+ }
32
+ ],
33
+ "test": [
34
+ {
35
+ "cookieContains": "cookies_accepted=essential"
36
+ }
37
+ ]
38
+ }
@@ -4,7 +4,7 @@
4
4
  "prehideSelectors": [".cc-individual-cookie-settings"],
5
5
  "detectCmp": [
6
6
  {
7
- "exists": ".cc-individual-cookie-settings"
7
+ "exists": ".cc-individual-cookie-settings #cookie-settings-reject-all"
8
8
  }
9
9
  ],
10
10
  "detectPopup": [
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "cookiesinfo-closecookies",
3
+ "prehideSelectors": [],
4
+ "detectCmp": [{ "exists": "#cookiesInfo #closeCookies" }],
5
+ "detectPopup": [{ "visible": "#cookiesInfo #closeCookies" }],
6
+ "optIn": [{ "waitForThenClick": "#cookiesInfo #closeCookies" }],
7
+ "optOut": [{ "waitForThenClick": "#cookiesInfo #closeCookies" }],
8
+ "test": [{ "waitForVisible": "#cookiesInfo", "check": "none", "timeout": 2000 }]
9
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "dack365",
3
+ "vendorUrl": "https://www.dack365.se/",
4
+ "prehideSelectors": [".cookie-consent-banner:has(#FormCookieConsentAll)"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".cookie-consent-banner #FormCookieConsentAll"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": ".cookie-consent-banner .btn-cookie-consent-settings"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "waitForThenClick": ".cookie-consent-banner .btn-cookie-consent-allow-all"
18
+ }
19
+ ],
20
+ "optOut": [
21
+ {
22
+ "waitForThenClick": ".cookie-consent-banner .btn-cookie-consent-settings"
23
+ },
24
+ {
25
+ "waitForThenClick": ".modal-cookie-consent .btn-cookie-consent-modal-disallow-all"
26
+ }
27
+ ],
28
+ "test": [
29
+ {
30
+ "waitForVisible": ".cookie-consent-banner",
31
+ "check": "none",
32
+ "timeout": 5000
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "eu-cookie-law-popup",
3
+ "vendorUrl": "https://github.com/wimagguc/jquery-eu-cookie-law-popup",
4
+ "prehideSelectors": [".eupopup-container"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": ".eupopup-container > .eupopup-closebutton"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": ".eupopup-container > .eupopup-closebutton",
13
+ "check": "any"
14
+ }
15
+ ],
16
+ "optIn": [
17
+ {
18
+ "waitForThenClick": ".eupopup-container .eupopup-button_1"
19
+ }
20
+ ],
21
+ "optOut": [
22
+ {
23
+ "waitForThenClick": ".eupopup-container > .eupopup-closebutton"
24
+ }
25
+ ],
26
+ "test": [
27
+ {
28
+ "waitForVisible": ".eupopup-container > .eupopup-closebutton",
29
+ "check": "none",
30
+ "timeout": 2000
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "fascicolosanitario-lombardia",
3
+ "vendorUrl": "https://www.fascicolosanitario.regione.lombardia.it/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://(\\w+\\.)?fascicolosanitario\\.regione\\.lombardia\\.it/"
6
+ },
7
+ "cosmetic": false,
8
+ "prehideSelectors": ["#cookie-bar"],
9
+ "detectCmp": [{ "exists": "#cookie-bar #cookieBarClose" }],
10
+ "detectPopup": [{ "visible": "#cookie-bar[aria-hidden=\"false\"]" }],
11
+ "optIn": [{ "waitForThenClick": "#cookie-bar #cookieBarClose .cookie-bar-close" }],
12
+ "optOut": [{ "waitForThenClick": "#cookie-bar #cookieBarClose .cookie-bar-close" }],
13
+ "test": [{ "cookieContains": "FSE-COOKIEBAR=hide" }]
14
+ }
@@ -4,9 +4,19 @@
4
4
  "detectCmp": [{ "exists": ".fc-consent-root" }],
5
5
  "detectPopup": [{ "exists": ".fc-dialog-container" }],
6
6
  "optOut": [
7
- { "click": ".fc-cta-do-not-consent,.fc-cta-manage-options" },
7
+ {
8
+ "if": { "exists": ".fc-cta-do-not-consent,.fc-cta-manage-options" },
9
+ "then": [{ "click": ".fc-cta-do-not-consent,.fc-cta-manage-options" }],
10
+ "else": [{ "exists": ".fc-li-only-placeholder" }]
11
+ },
8
12
  { "click": ".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked", "all": true, "optional": true },
9
13
  { "click": ".fc-confirm-choices", "optional": true }
10
14
  ],
11
- "optIn": [{ "click": ".fc-cta-consent" }]
15
+ "optIn": [
16
+ {
17
+ "if": { "exists": ".fc-cta-consent" },
18
+ "then": [{ "click": ".fc-cta-consent" }],
19
+ "else": [{ "exists": ".fc-li-only-placeholder" }, { "click": ".fc-confirm-choices" }]
20
+ }
21
+ ]
12
22
  }
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "hyrabostad.se",
3
+ "vendorUrl": "https://www.hyrabostad.se/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://(www\\.)?hyrabostad\\.se/"
6
+ },
7
+ "prehideSelectors": ["#consent-container"],
8
+ "detectCmp": [{ "exists": "#consent-container #consent" }],
9
+ "detectPopup": [{ "visible": "#consent-container #consent" }],
10
+ "optIn": [{ "waitForThenClick": "#consent button[onclick*='saveCookieSettings(true)']" }],
11
+ "optOut": [
12
+ { "waitForThenClick": "#consent button[data-bs-target='#cookieSettings']" },
13
+ { "waitForVisible": "#cookieSettings .modal-footer" },
14
+ {
15
+ "if": { "exists": "#grantAdStorageCookies:checked" },
16
+ "then": [{ "click": "#grantAdStorageCookies:checked" }]
17
+ },
18
+ { "waitForThenClick": "#cookieSettings button[onclick*='saveCookieSettings(false)']", "retry": 3, "retryInterval": 400 }
19
+ ],
20
+ "test": [{ "visible": "#consent-container #consent,#cookieSettings", "check": "none" }]
21
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "insided",
3
+ "vendorUrl": "https://www.gainsight.com/customer-communities/",
4
+ "cosmetic": false,
5
+ "runContext": {
6
+ "main": true,
7
+ "frame": false
8
+ },
9
+ "prehideSelectors": ["[data-preact=\"cookie-banner/index\"] .js-cookiebar"],
10
+ "detectCmp": [{ "exists": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
11
+ "detectPopup": [{ "visible": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
12
+ "optIn": [{ "waitForThenClick": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-accept" }],
13
+ "optOut": [{ "waitForThenClick": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny" }],
14
+ "test": [{ "visible": "[data-preact=\"cookie-banner/index\"] .js-cookiebar .js-cookie-deny", "check": "none" }]
15
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "kartverket",
3
+ "vendorUrl": "https://eiendomsregisteret.kartverket.no/",
4
+ "cosmetic": false,
5
+ "runContext": {
6
+ "urlPattern": "^https?://([a-z0-9-]+\\.)?kartverket\\.no/"
7
+ },
8
+ "prehideSelectors": ["#root > .chakra-stack:has(> div > p > a[href=\"/cookies\"])"],
9
+ "detectCmp": [
10
+ {
11
+ "exists": "button[aria-label^=\"Tilpass informasjonskap\"]"
12
+ }
13
+ ],
14
+ "detectPopup": [
15
+ {
16
+ "visible": "button[aria-label^=\"Tilpass informasjonskap\"]"
17
+ }
18
+ ],
19
+ "optIn": [
20
+ {
21
+ "waitForThenClick": "button[aria-label^=\"Tilpass informasjonskap\"] + button"
22
+ }
23
+ ],
24
+ "optOut": [
25
+ {
26
+ "waitForThenClick": "button[aria-label^=\"Tilpass informasjonskap\"]"
27
+ },
28
+ {
29
+ "waitForVisible": "xpath///button[contains(., \"Lagre val\")]"
30
+ },
31
+ {
32
+ "click": ".kvib-switch__root[data-state=\"checked\"]",
33
+ "optional": true
34
+ },
35
+ {
36
+ "click": "xpath///button[contains(., \"Lagre val\")]"
37
+ }
38
+ ],
39
+ "test": [
40
+ {
41
+ "waitForVisible": "xpath///button[contains(., \"Lagre val\")]",
42
+ "check": "none",
43
+ "timeout": 1000
44
+ }
45
+ ]
46
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "luxmed",
3
+ "vendorUrl": "https://portalpacjenta.luxmed.pl/",
4
+ "runContext": {
5
+ "urlPattern": "^https?://([a-z0-9-]+\\.)?luxmed\\.pl/"
6
+ },
7
+ "prehideSelectors": [],
8
+ "detectCmp": [
9
+ {
10
+ "exists": "app-cookie-modal .top-info-cookie"
11
+ }
12
+ ],
13
+ "detectPopup": [
14
+ {
15
+ "visible": "app-cookie-modal .top-info-cookie"
16
+ }
17
+ ],
18
+ "optIn": [
19
+ {
20
+ "waitForThenClick": "app-cookie-modal .top-info-cookie .close-x"
21
+ }
22
+ ],
23
+ "optOut": [
24
+ {
25
+ "waitForThenClick": "app-cookie-modal .top-info-cookie .close-x"
26
+ }
27
+ ],
28
+ "test": [
29
+ {
30
+ "cookieContains": "PatientPortalCookieMonit=1"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "meta-cookie-dialog",
3
+ "vendorUrl": "https://www.meta.com/",
4
+ "prehideSelectors": ["[data-testid=\"cookie-policy-dialog\"]", "[data-testid=\"cookie-policy-manage-dialog\"]"],
5
+ "detectCmp": [
6
+ {
7
+ "exists": "[data-testid=\"cookie-policy-dialog\"] [data-cookiebanner=\"accept_only_essential_button\"], [data-testid=\"cookie-policy-manage-dialog\"] [data-cookiebanner=\"accept_only_essential_button\"]"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": "[data-testid=\"cookie-policy-dialog\"] [data-cookiebanner=\"accept_only_essential_button\"], [data-testid=\"cookie-policy-manage-dialog\"] [data-cookiebanner=\"accept_only_essential_button\"]"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "waitForThenClick": "[data-cookiebanner=\"accept_button\"]",
18
+ "retry": 3,
19
+ "retryInterval": 500
20
+ },
21
+ {
22
+ "waitForVisible": "[data-cookiebanner=\"accept_button\"]",
23
+ "check": "none"
24
+ }
25
+ ],
26
+ "optOut": [
27
+ {
28
+ "waitForThenClick": "[data-cookiebanner=\"accept_only_essential_button\"]",
29
+ "retry": 3,
30
+ "retryInterval": 500
31
+ },
32
+ {
33
+ "waitForVisible": "[data-cookiebanner=\"accept_only_essential_button\"]",
34
+ "check": "none"
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "mittanbud",
3
+ "cosmetic": false,
4
+ "prehideSelectors": [],
5
+ "detectCmp": [
6
+ {
7
+ "exists": "div[role=\"dialog\"]:has(button#necessary[role=\"switch\"]):has(button#marketing[role=\"switch\"]) [role=\"tablist\"]"
8
+ }
9
+ ],
10
+ "detectPopup": [
11
+ {
12
+ "visible": "div[role=\"dialog\"]:has(button#necessary[role=\"switch\"]):has(button#marketing[role=\"switch\"])"
13
+ }
14
+ ],
15
+ "optIn": [
16
+ {
17
+ "waitForThenClick": "div[role=\"dialog\"]:has(button#necessary[role=\"switch\"]) div:not([role=\"tablist\"]) > button:first-child:nth-last-child(3)"
18
+ }
19
+ ],
20
+ "optOut": [
21
+ {
22
+ "waitForThenClick": "div[role=\"dialog\"]:has(button#necessary[role=\"switch\"]) div:not([role=\"tablist\"]) > button:nth-child(3):last-child"
23
+ }
24
+ ],
25
+ "test": [
26
+ {
27
+ "cookieContains": "decided=true"
28
+ },
29
+ {
30
+ "cookieContains": "marketing=false"
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "poki",
3
+ "_metadata": {
4
+ "vendorUrl": "https://poki.com/"
5
+ },
6
+ "runContext": {
7
+ "urlPattern": "^https?://(\\w+\\.)?poki\\.com/"
8
+ },
9
+ "prehideSelectors": ["#notification-stack > div:has(> header > [style*='ui-icons-lock.svg'] ~ button)"],
10
+ "detectCmp": [
11
+ {
12
+ "exists": "#notification-stack header:has([style*='ui-icons-lock.svg']) button"
13
+ }
14
+ ],
15
+ "detectPopup": [
16
+ {
17
+ "visible": "#notification-stack header:has([style*='ui-icons-lock.svg']) button"
18
+ }
19
+ ],
20
+ "optIn": [
21
+ {
22
+ "waitForThenClick": "#notification-stack header:has([style*='ui-icons-lock.svg']) button"
23
+ }
24
+ ],
25
+ "optOut": [
26
+ {
27
+ "waitForThenClick": "#notification-stack header:has([style*='ui-icons-lock.svg']) button"
28
+ }
29
+ ],
30
+ "test": [
31
+ {
32
+ "waitForVisible": "#notification-stack header:has([style*='ui-icons-lock.svg'])",
33
+ "check": "none",
34
+ "timeout": 2000
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "polisen-se",
3
+ "vendorUrl": "https://polisen.se/",
4
+ "cosmetic": false,
5
+ "runContext": {
6
+ "main": true,
7
+ "frame": false
8
+ },
9
+ "prehideSelectors": ["#cookie-consent.c-cookie-banner"],
10
+ "detectCmp": [{ "exists": "#cookie-consent.c-cookie-banner .c-cookie-banner__quickform" }],
11
+ "detectPopup": [{ "visible": "#cookie-consent.c-cookie-banner" }],
12
+ "optIn": [
13
+ {
14
+ "waitForThenClick": "#cookie-consent .c-cookie-banner__quickform input[name='Purpose.Statistics'][value='True'] ~ input[type='submit']"
15
+ }
16
+ ],
17
+ "optOut": [
18
+ {
19
+ "waitForThenClick": "#cookie-consent .c-cookie-banner__quickform input[name='Purpose.Statistics'][value='False'] ~ input[type='submit']"
20
+ }
21
+ ],
22
+ "test": [
23
+ { "waitForVisible": "#cookie-consent.c-cookie-banner", "check": "none", "timeout": 3000, "optional": true },
24
+ { "cookieContains": "%22statistics%22%3Afalse" }
25
+ ]
26
+ }