@duckduckgo/autoconsent 16.38.0 → 16.40.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 (55) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/addon-firefox/compact-rules.json +1 -1
  3. package/dist/addon-firefox/content.bundle.js +1 -63
  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 +1 -63
  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 +1 -63
  13. package/dist/autoconsent.esm.js +1 -63
  14. package/dist/autoconsent.playwright.js +1 -63
  15. package/dist/autoconsent.standalone.js +2 -64
  16. package/dist/types/cmps/all.d.ts +1 -2
  17. package/lib/cmps/all.ts +0 -2
  18. package/lib/heuristic-patterns.ts +1 -1
  19. package/package.json +1 -1
  20. package/rules/autoconsent/epidemicsound-com.json +19 -0
  21. package/rules/autoconsent/godaddy-privacy-widget.json +9 -0
  22. package/rules/autoconsent/hometogo.json +18 -0
  23. package/rules/autoconsent/lendable.json +39 -0
  24. package/rules/autoconsent/massgeneralbrigham.json +35 -0
  25. package/rules/autoconsent/maticrobots-com.json +17 -0
  26. package/rules/autoconsent/pandectes.json +4 -2
  27. package/rules/autoconsent/rdc-concents.json +9 -0
  28. package/rules/autoconsent/readly.json +26 -17
  29. package/rules/autoconsent/rspb.json +42 -0
  30. package/rules/autoconsent/rug-nl.json +33 -0
  31. package/rules/autoconsent/scmp.json +11 -3
  32. package/rules/autoconsent/tumblr-com.json +31 -0
  33. package/rules/autoconsent/tumblr-custom-domain-gdpr-banner.json +32 -0
  34. package/rules/autoconsent/venngage.json +38 -0
  35. package/rules/autoconsent/vmock.json +41 -0
  36. package/rules/compact-rules.json +1 -1
  37. package/rules/rule-index.json +1 -1
  38. package/rules/rules.json +1 -1
  39. package/tests/epidemicsound-com.spec.ts +3 -0
  40. package/tests/godaddy-privacy-widget.spec.ts +8 -0
  41. package/tests/hometogo.spec.ts +8 -0
  42. package/tests/lendable.spec.ts +3 -0
  43. package/tests/massgeneralbrigham.spec.ts +3 -0
  44. package/tests/maticrobots-com.spec.ts +3 -0
  45. package/tests/pandectes.spec.ts +6 -1
  46. package/tests/rdc-concents.spec.ts +10 -0
  47. package/tests/readly.spec.ts +1 -1
  48. package/tests/rspb.spec.ts +3 -0
  49. package/tests/rug-nl.spec.ts +3 -0
  50. package/tests/tumblr-custom-domain-gdpr-banner.spec.ts +7 -0
  51. package/tests/venngage.spec.ts +3 -0
  52. package/tests/vmock.spec.ts +3 -0
  53. package/tests-wtr/heuristics/heuristics-utils.test.ts +7 -0
  54. package/dist/types/cmps/tumblr-com.d.ts +0 -15
  55. package/lib/cmps/tumblr-com.ts +0 -70
@@ -669,7 +669,7 @@ var REJECT_PATTERNS_GERMAN = [
669
669
  // essential/necessary/functional-only variants (accepting only necessary → reject)
670
670
  /^\s*(nur|ausschließlich|lediglich|weiter\s+mit|mit|akzeptiere?n?|unbedingt|es\s+werden\s+nur)?\s*(technisch\s+)?(notwendige?[nrs]?|essenzielle?[nrs]?|essentielle?[nrs]?|erforderliche?[nrs]?|funktionale?[nrs]?|funktionelle?[nrs]?|wesentliche?[nrs]?)\s*(cookies?|technologien|funktionscookies|dienste)?\s*(akzeptieren|erlauben|zulassen|verwenden|annehmen|setzen|speichern|zustimmen|auswählen)?\.?\s*$/is,
671
671
  // continue without consent
672
- /(^|\s)(ohne\s+(einwilligung|zustimmung|einverständnis|annahme)|(weiter|fortfahren)\s+ohne)/is,
672
+ /(^|\s)(ohne\s+(zu\s+)?(einwilligung|zustimmung|einverständnis|annahme|annehmen|akzeptanz|akzeptieren)|(weiter|fortfahren)\s+ohne)/is,
673
673
  // negations / refusals not covered by the regexes above
674
674
  "nein, danke",
675
675
  "nein, bitte nicht",
@@ -2482,67 +2482,6 @@ var Tiktok = class extends AutoConsentCMPBase {
2482
2482
  }
2483
2483
  };
2484
2484
 
2485
- // lib/cmps/tumblr-com.ts
2486
- var Tumblr = class extends AutoConsentCMPBase {
2487
- constructor() {
2488
- super(...arguments);
2489
- this.name = "tumblr-com";
2490
- this.runContext = {
2491
- urlPattern: "^https://(www\\.)?tumblr\\.com/"
2492
- };
2493
- }
2494
- get hasSelfTest() {
2495
- return false;
2496
- }
2497
- get isIntermediate() {
2498
- return false;
2499
- }
2500
- get isCosmetic() {
2501
- return false;
2502
- }
2503
- get prehideSelectors() {
2504
- return ["#cmp-app-container"];
2505
- }
2506
- async detectCmp() {
2507
- return this.elementExists("#cmp-app-container");
2508
- }
2509
- async detectPopup() {
2510
- return this.elementVisible("#cmp-app-container", "any");
2511
- }
2512
- async optOut() {
2513
- let iframe = document.querySelector("#cmp-app-container iframe");
2514
- let settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2515
- if (!settingsButton) {
2516
- return false;
2517
- }
2518
- settingsButton.click();
2519
- await waitFor(
2520
- () => {
2521
- const iframe2 = document.querySelector("#cmp-app-container iframe");
2522
- return !!iframe2?.contentDocument?.querySelector(".cmp__dialog input");
2523
- },
2524
- 5,
2525
- 500
2526
- );
2527
- iframe = document.querySelector("#cmp-app-container iframe");
2528
- settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2529
- if (!settingsButton) {
2530
- return false;
2531
- }
2532
- settingsButton.click();
2533
- return true;
2534
- }
2535
- async optIn() {
2536
- const iframe = document.querySelector("#cmp-app-container iframe");
2537
- const acceptButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-primary");
2538
- if (acceptButton) {
2539
- acceptButton.click();
2540
- return true;
2541
- }
2542
- return false;
2543
- }
2544
- };
2545
-
2546
2485
  // lib/cmps/admiral.ts
2547
2486
  var Admiral = class extends AutoConsentCMPBase {
2548
2487
  constructor() {
@@ -2621,7 +2560,6 @@ var dynamicCMPs = [
2621
2560
  Uniconsent,
2622
2561
  Conversant,
2623
2562
  Tiktok,
2624
- Tumblr,
2625
2563
  Admiral
2626
2564
  ];
2627
2565
 
@@ -639,7 +639,7 @@ var REJECT_PATTERNS_GERMAN = [
639
639
  // essential/necessary/functional-only variants (accepting only necessary → reject)
640
640
  /^\s*(nur|ausschließlich|lediglich|weiter\s+mit|mit|akzeptiere?n?|unbedingt|es\s+werden\s+nur)?\s*(technisch\s+)?(notwendige?[nrs]?|essenzielle?[nrs]?|essentielle?[nrs]?|erforderliche?[nrs]?|funktionale?[nrs]?|funktionelle?[nrs]?|wesentliche?[nrs]?)\s*(cookies?|technologien|funktionscookies|dienste)?\s*(akzeptieren|erlauben|zulassen|verwenden|annehmen|setzen|speichern|zustimmen|auswählen)?\.?\s*$/is,
641
641
  // continue without consent
642
- /(^|\s)(ohne\s+(einwilligung|zustimmung|einverständnis|annahme)|(weiter|fortfahren)\s+ohne)/is,
642
+ /(^|\s)(ohne\s+(zu\s+)?(einwilligung|zustimmung|einverständnis|annahme|annehmen|akzeptanz|akzeptieren)|(weiter|fortfahren)\s+ohne)/is,
643
643
  // negations / refusals not covered by the regexes above
644
644
  "nein, danke",
645
645
  "nein, bitte nicht",
@@ -2452,67 +2452,6 @@ var Tiktok = class extends AutoConsentCMPBase {
2452
2452
  }
2453
2453
  };
2454
2454
 
2455
- // lib/cmps/tumblr-com.ts
2456
- var Tumblr = class extends AutoConsentCMPBase {
2457
- constructor() {
2458
- super(...arguments);
2459
- this.name = "tumblr-com";
2460
- this.runContext = {
2461
- urlPattern: "^https://(www\\.)?tumblr\\.com/"
2462
- };
2463
- }
2464
- get hasSelfTest() {
2465
- return false;
2466
- }
2467
- get isIntermediate() {
2468
- return false;
2469
- }
2470
- get isCosmetic() {
2471
- return false;
2472
- }
2473
- get prehideSelectors() {
2474
- return ["#cmp-app-container"];
2475
- }
2476
- async detectCmp() {
2477
- return this.elementExists("#cmp-app-container");
2478
- }
2479
- async detectPopup() {
2480
- return this.elementVisible("#cmp-app-container", "any");
2481
- }
2482
- async optOut() {
2483
- let iframe = document.querySelector("#cmp-app-container iframe");
2484
- let settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2485
- if (!settingsButton) {
2486
- return false;
2487
- }
2488
- settingsButton.click();
2489
- await waitFor(
2490
- () => {
2491
- const iframe2 = document.querySelector("#cmp-app-container iframe");
2492
- return !!iframe2?.contentDocument?.querySelector(".cmp__dialog input");
2493
- },
2494
- 5,
2495
- 500
2496
- );
2497
- iframe = document.querySelector("#cmp-app-container iframe");
2498
- settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2499
- if (!settingsButton) {
2500
- return false;
2501
- }
2502
- settingsButton.click();
2503
- return true;
2504
- }
2505
- async optIn() {
2506
- const iframe = document.querySelector("#cmp-app-container iframe");
2507
- const acceptButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-primary");
2508
- if (acceptButton) {
2509
- acceptButton.click();
2510
- return true;
2511
- }
2512
- return false;
2513
- }
2514
- };
2515
-
2516
2455
  // lib/cmps/admiral.ts
2517
2456
  var Admiral = class extends AutoConsentCMPBase {
2518
2457
  constructor() {
@@ -2591,7 +2530,6 @@ var dynamicCMPs = [
2591
2530
  Uniconsent,
2592
2531
  Conversant,
2593
2532
  Tiktok,
2594
- Tumblr,
2595
2533
  Admiral
2596
2534
  ];
2597
2535
 
@@ -641,7 +641,7 @@
641
641
  // essential/necessary/functional-only variants (accepting only necessary → reject)
642
642
  /^\s*(nur|ausschließlich|lediglich|weiter\s+mit|mit|akzeptiere?n?|unbedingt|es\s+werden\s+nur)?\s*(technisch\s+)?(notwendige?[nrs]?|essenzielle?[nrs]?|essentielle?[nrs]?|erforderliche?[nrs]?|funktionale?[nrs]?|funktionelle?[nrs]?|wesentliche?[nrs]?)\s*(cookies?|technologien|funktionscookies|dienste)?\s*(akzeptieren|erlauben|zulassen|verwenden|annehmen|setzen|speichern|zustimmen|auswählen)?\.?\s*$/is,
643
643
  // continue without consent
644
- /(^|\s)(ohne\s+(einwilligung|zustimmung|einverständnis|annahme)|(weiter|fortfahren)\s+ohne)/is,
644
+ /(^|\s)(ohne\s+(zu\s+)?(einwilligung|zustimmung|einverständnis|annahme|annehmen|akzeptanz|akzeptieren)|(weiter|fortfahren)\s+ohne)/is,
645
645
  // negations / refusals not covered by the regexes above
646
646
  "nein, danke",
647
647
  "nein, bitte nicht",
@@ -2454,67 +2454,6 @@
2454
2454
  }
2455
2455
  };
2456
2456
 
2457
- // lib/cmps/tumblr-com.ts
2458
- var Tumblr = class extends AutoConsentCMPBase {
2459
- constructor() {
2460
- super(...arguments);
2461
- this.name = "tumblr-com";
2462
- this.runContext = {
2463
- urlPattern: "^https://(www\\.)?tumblr\\.com/"
2464
- };
2465
- }
2466
- get hasSelfTest() {
2467
- return false;
2468
- }
2469
- get isIntermediate() {
2470
- return false;
2471
- }
2472
- get isCosmetic() {
2473
- return false;
2474
- }
2475
- get prehideSelectors() {
2476
- return ["#cmp-app-container"];
2477
- }
2478
- async detectCmp() {
2479
- return this.elementExists("#cmp-app-container");
2480
- }
2481
- async detectPopup() {
2482
- return this.elementVisible("#cmp-app-container", "any");
2483
- }
2484
- async optOut() {
2485
- let iframe = document.querySelector("#cmp-app-container iframe");
2486
- let settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2487
- if (!settingsButton) {
2488
- return false;
2489
- }
2490
- settingsButton.click();
2491
- await waitFor(
2492
- () => {
2493
- const iframe2 = document.querySelector("#cmp-app-container iframe");
2494
- return !!iframe2?.contentDocument?.querySelector(".cmp__dialog input");
2495
- },
2496
- 5,
2497
- 500
2498
- );
2499
- iframe = document.querySelector("#cmp-app-container iframe");
2500
- settingsButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-secondary");
2501
- if (!settingsButton) {
2502
- return false;
2503
- }
2504
- settingsButton.click();
2505
- return true;
2506
- }
2507
- async optIn() {
2508
- const iframe = document.querySelector("#cmp-app-container iframe");
2509
- const acceptButton = iframe?.contentDocument?.querySelector(".cmp-components-button.is-primary");
2510
- if (acceptButton) {
2511
- acceptButton.click();
2512
- return true;
2513
- }
2514
- return false;
2515
- }
2516
- };
2517
-
2518
2457
  // lib/cmps/admiral.ts
2519
2458
  var Admiral = class extends AutoConsentCMPBase {
2520
2459
  constructor() {
@@ -2593,7 +2532,6 @@
2593
2532
  Uniconsent,
2594
2533
  Conversant,
2595
2534
  Tiktok,
2596
- Tumblr,
2597
2535
  Admiral
2598
2536
  ];
2599
2537