@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.
- package/CHANGELOG.md +41 -0
- package/dist/addon-firefox/compact-rules.json +1 -1
- package/dist/addon-firefox/content.bundle.js +1 -63
- package/dist/addon-firefox/manifest.json +1 -1
- package/dist/addon-firefox/rule-index.json +1 -1
- package/dist/addon-firefox/rules.json +1 -1
- package/dist/addon-mv3/compact-rules.json +1 -1
- package/dist/addon-mv3/content.bundle.js +1 -63
- package/dist/addon-mv3/manifest.json +1 -1
- package/dist/addon-mv3/rule-index.json +1 -1
- package/dist/addon-mv3/rules.json +1 -1
- package/dist/autoconsent.cjs.js +1 -63
- package/dist/autoconsent.esm.js +1 -63
- package/dist/autoconsent.playwright.js +1 -63
- package/dist/autoconsent.standalone.js +2 -64
- package/dist/types/cmps/all.d.ts +1 -2
- package/lib/cmps/all.ts +0 -2
- package/lib/heuristic-patterns.ts +1 -1
- package/package.json +1 -1
- package/rules/autoconsent/epidemicsound-com.json +19 -0
- package/rules/autoconsent/godaddy-privacy-widget.json +9 -0
- package/rules/autoconsent/hometogo.json +18 -0
- package/rules/autoconsent/lendable.json +39 -0
- package/rules/autoconsent/massgeneralbrigham.json +35 -0
- package/rules/autoconsent/maticrobots-com.json +17 -0
- package/rules/autoconsent/pandectes.json +4 -2
- package/rules/autoconsent/rdc-concents.json +9 -0
- package/rules/autoconsent/readly.json +26 -17
- package/rules/autoconsent/rspb.json +42 -0
- package/rules/autoconsent/rug-nl.json +33 -0
- package/rules/autoconsent/scmp.json +11 -3
- package/rules/autoconsent/tumblr-com.json +31 -0
- package/rules/autoconsent/tumblr-custom-domain-gdpr-banner.json +32 -0
- package/rules/autoconsent/venngage.json +38 -0
- package/rules/autoconsent/vmock.json +41 -0
- package/rules/compact-rules.json +1 -1
- package/rules/rule-index.json +1 -1
- package/rules/rules.json +1 -1
- package/tests/epidemicsound-com.spec.ts +3 -0
- package/tests/godaddy-privacy-widget.spec.ts +8 -0
- package/tests/hometogo.spec.ts +8 -0
- package/tests/lendable.spec.ts +3 -0
- package/tests/massgeneralbrigham.spec.ts +3 -0
- package/tests/maticrobots-com.spec.ts +3 -0
- package/tests/pandectes.spec.ts +6 -1
- package/tests/rdc-concents.spec.ts +10 -0
- package/tests/readly.spec.ts +1 -1
- package/tests/rspb.spec.ts +3 -0
- package/tests/rug-nl.spec.ts +3 -0
- package/tests/tumblr-custom-domain-gdpr-banner.spec.ts +7 -0
- package/tests/venngage.spec.ts +3 -0
- package/tests/vmock.spec.ts +3 -0
- package/tests-wtr/heuristics/heuristics-utils.test.ts +7 -0
- package/dist/types/cmps/tumblr-com.d.ts +0 -15
- package/lib/cmps/tumblr-com.ts +0 -70
package/dist/autoconsent.cjs.js
CHANGED
|
@@ -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
|
|
package/dist/autoconsent.esm.js
CHANGED
|
@@ -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
|
|