{"_id":"@consenttheater/playbill","_rev":"11-aff1070a65850a74bd7317545b0b1888","name":"@consenttheater/playbill","dist-tags":{"latest":"0.8.0"},"versions":{"0.1.0":{"name":"@consenttheater/playbill","version":"0.1.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.1.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"59c320c6f99c46dcc231c66c999a91d6abd2a91f","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.1.0.tgz","fileCount":26,"integrity":"sha512-8c2gP+syPc+5N62yhAiYe5V1XueZKQ3bemiCAkxVlywZJLnaOIjoRRSHf0p7w1BDC/LpBxB7C+J62wEWBkP8+Q==","signatures":[{"sig":"MEQCIBRDf3b5cTPrPRIbex7TCdQ/jhP4bTkcMCuygOJvFzqIAiB/0r13pkS6Hefj3YDu+9R43pWakg1A0Jt4o7t+S6VVnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2197240},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./scorer":{"types":"./dist/scorer.d.ts","import":"./dist/scorer.js"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"1450648c43a490603d9204e21ae3ecee2252e9ba","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching and risk-scoring utilities. Standalone library for privacy auditors, compliance scanners, consent platforms, browser extensions, ","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.4","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.1.0_1776781450849_0.5141489273178288","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@consenttheater/playbill","version":"0.1.1","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.1.1","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"cdbf1dc7cd6bd0993623b7a0864280cc7a35e039","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.1.1.tgz","fileCount":26,"integrity":"sha512-AD5gtz3e1fprN/rCykpGeeoCl3ba1hWNJa99PfIYFIVHFxP4R3ZJ3/LpLH4qjfZle3eG7ATCXEtolFoSowreyA==","signatures":[{"sig":"MEYCIQDnqz6rzmkKzi6bpHHKeNUxX67PCVs466es7XtjzTTU7AIhAIW1Huy7mlfPiRPq/J/wYPHrepJOJCtaU/zvzZ1JJlUJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2198297},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./scorer":{"types":"./dist/scorer.d.ts","import":"./dist/scorer.js"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"decb84bfe79f011db26bb714ba76508ab153cc32","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching and risk-scoring utilities. Standalone library for privacy auditors, compliance scanners, consent platforms, browser extensions, ","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.4","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.1.1_1776906077425_0.8874117894147391","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@consenttheater/playbill","version":"0.1.2","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.1.2","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"bba94e9fc4e09eea363028742421bab5e8a86298","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.1.2.tgz","fileCount":26,"integrity":"sha512-GrToxPG8qM7XahCtgrY+hev6utO473igXs+Z1XRYN5FnCpuSTH/bBBXAzhJ6bjMf6iYLVVK4yyJTsCSFTcuI+w==","signatures":[{"sig":"MEYCIQC8lZvMTgOD5/qC3pS0y3/GES3c9A80zaODjYsYfw9/AwIhAIfjC/yjc1nZ4iRHVDKCLGuIw3/mbgcgS9fNC9KFb5qR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2201267},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./scorer":{"types":"./dist/scorer.d.ts","import":"./dist/scorer.js"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"dbdcf2290f078c1452d2dac9614f0cc912fcb2e9","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching and risk-scoring utilities. Standalone library for privacy auditors, compliance scanners, consent platforms, browser extensions, ","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.4","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.1.2_1776934651307_0.2879607408117446","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@consenttheater/playbill","version":"0.2.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.2.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"9603ee12cf3f3581018774481adf0f64d5e18ab4","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.2.0.tgz","fileCount":23,"integrity":"sha512-nmrBsnhGUcueyPsaNHPW/7H3AtB3bkRvoDv/+SQXkdENixbHcuQf+iYD7NjB+XoUptmFYI4eqF7obFOv8Bp8xA==","signatures":[{"sig":"MEQCIEs/97JrGFMQZdQRYmfiEffyoJYWK/5dMmIzfk5n9jJ4AiAeJV3XIQyK3OP34qGMeCcdRDPtptVVn04s4X18yp9i6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2287188},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"ed7b73e785156434d8c1bce1136bc2f67ad1ee88","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.2.0_1777110698848_0.11726043599059022","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@consenttheater/playbill","version":"0.3.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.3.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"704373cdbe20a53fd72e138cc8317deb61f0bbd4","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.3.0.tgz","fileCount":23,"integrity":"sha512-SrmJjtV8ZNEhupCnSDqq/rRZ9dkgK9VQP1KCelyMn50k3ZBkYfeAv55XXkQuxsgRi+hoU1U7lb+R+fia4+zOsQ==","signatures":[{"sig":"MEQCIHwgbWQgy3xGnK0eSI/9UzZipFCMFGIrxAWvZRoIemN+AiBXbrvB/k3e1HQNDN3wO1OBJwX/f29ge9QimIgNV45uHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2304778},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"602b3190250df8ad34cb5ceb64e625039bdf9afb","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.3.0_1777665080846_0.8092920396437051","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@consenttheater/playbill","version":"0.4.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.4.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://github.com/consenttheater/playbill","bugs":{"url":"https://github.com/consenttheater/playbill/issues"},"dist":{"shasum":"a3cb3dfded646bc25e9abbeb7b49e76ff200faa8","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.4.0.tgz","fileCount":23,"integrity":"sha512-cnuVfCCm/YeQsgZHCtq3XGaOpckthPYS6SQrKHxlrDjxID0U5paXBH5X5cwmX98Y7d+022XpCl2Z3cdCFJ4GBg==","signatures":[{"sig":"MEUCIQDbsg+RPx7UHu5q9+8HFWhG6UyolqOjfJLY52sycuKccwIgZtlJVFthozLYhSBpMT8JR6WkITZmTrG6QYlrOx8iYXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2912066},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"f0aa01adb2422afb38fb5b0499652fb17c53acbc","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://github.com/consenttheater/playbill.git","type":"git"},"_npmVersion":"10.9.7","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.4.0_1778284729936_0.45766365692917077","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@consenttheater/playbill","version":"0.5.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.5.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://codeberg.org/ConsentTheater/playbill","dist":{"shasum":"599209a45d9c0ec7bb97bead62474ff7c485f0d8","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.5.0.tgz","fileCount":23,"integrity":"sha512-58+rF1oGCx7JrFUzgvgHVlbsUcJoJfqfrOWm5B8sWxuQtAF8RESqpc8ioTazh1LFI48UFT4C0Z7eByac/sGAMg==","signatures":[{"sig":"MEQCIDPM3f1AslVTgAVJo4z2MRRET+CJtrfHuQ6bw5dAA+X7AiB4UA6iFs1wth1WJ+lPJmGR5Z3GBdB05LBrlIIS8Lt8IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2926234},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"5ca2381503367ffb26d1d2e9cfe5c77d6c8f1bb9","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"git+https://codeberg.org/ConsentTheater/playbill.git","type":"git"},"_npmVersion":"11.6.2","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.5.0_1780791350436_0.023480014116731063","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@consenttheater/playbill","version":"0.6.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.6.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"}],"homepage":"https://consenttheater.org","dist":{"shasum":"a05f50338279bf1faae2c5f3a31ef8990b507580","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.6.0.tgz","fileCount":23,"integrity":"sha512-iuT3EBWUY4/NIBn9aCc6mEtYawCe5Fg4qbjFlM1kWerHVlpMVt2i7muOwk8ikVMJ/fB6z5Lq0PBtY8+d5/Pt4Q==","signatures":[{"sig":"MEUCICjERZEnGfV031FzcPmD0gbsIY4sjjUdEhSxDj0aggusAiEAhoFEvcNNskOmisjTIFNH7mvqA72yy20N0qgMfCXC6Yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2942153},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"e9bad4d2e20e54bce0df888cdf687c2e9f136870","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"consenttheater-bot","email":"consenttheater@proton.me"},"repository":{"url":"https://codeberg.org/ConsentTheater/playbill","type":"git"},"_npmVersion":"11.6.2","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.6.0_1783222827136_0.1594303819831071","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@consenttheater/playbill","version":"0.7.0","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","_id":"@consenttheater/playbill@0.7.0","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"},{"name":"reatlat","email":"alex@zappa.dev"}],"homepage":"https://consenttheater.org","dist":{"shasum":"cca2083bd4169738ce626a95d06117ba4d094ad8","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.7.0.tgz","fileCount":23,"integrity":"sha512-ZVVshpxwnTQwd5WrLHldkjknRy2O87pBmmVakWjA0By83H3UWe5z73SacUVC3OIrSGc6/QFVZt2mrpW/kNPZSg==","signatures":[{"sig":"MEQCIGe1e1kQqTt34H2ky5lBuaXK0OydqXAAa2jQrmtGpGLeAiBKnDWv+XdPhDYZKlKQZwVXAxhfSnj/HzEmnkTh/3sUiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2943410},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"88533f599ec4ffb0212fa021a89d624e2b00d8fe","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"reatlat","email":"alex@zappa.dev"},"repository":{"url":"https://codeberg.org/ConsentTheater/playbill","type":"git"},"_npmVersion":"10.9.8","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/playbill_0.7.0_1788644388016_0.41085159651528724","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"_id":"@consenttheater/playbill@0.8.0","dist":{"shasum":"2d877df8ddd9e170a4b69d7bc2552fb212a91dc6","tarball":"https://registry.npmjs.org/@consenttheater/playbill/-/playbill-0.8.0.tgz","fileCount":23,"integrity":"sha512-N+SOHOiT5f6lqMVHncaY2NgnMSmOIfsJ19JwIoHQ/V4/mV0Yrr1UmSWgZnIbYQjGVwevxmYs90cb/d9z1oTE5w==","signatures":[{"sig":"MEQCID3aEFEN8OhhioL2AZDtGrSser3aRzCHFR9Hh3NXk8uQAiAmI2VQE2or4viqBI3Tp09cm4f036UPBx5IIVC74oLA7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICrCkGBlmPT3poq3l53dtQ5IlakT6tbWH6smCNtgNYWMAiEA9w7yNk8x8bFmu0sh3LaWysIY+PRXIGO9l4T5PRftlFU="}],"unpackedSize":2956889},"main":"./dist/index.js","name":"@consenttheater/playbill","type":"module","types":"./dist/index.d.ts","author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./types":{"types":"./dist/types.d.ts"},"./matcher":{"types":"./dist/matcher.d.ts","import":"./dist/matcher.js"},"./actors/social":{"import":"./dist/actors/social.json"},"./actors/consent":{"import":"./dist/actors/consent.json"},"./actors/security":{"import":"./dist/actors/security.json"},"./actors/analytics":{"import":"./dist/actors/analytics.json"},"./actors/data-leak":{"import":"./dist/actors/data_leak.json"},"./actors/marketing":{"import":"./dist/actors/marketing.json"},"./actors/functional":{"import":"./dist/actors/functional.json"},"./actors/advertising":{"import":"./dist/actors/advertising.json"},"./actors/tag-manager":{"import":"./dist/actors/tag_manager.json"},"./actors/fingerprinting":{"import":"./dist/actors/fingerprinting.json"},"./actors/session-recording":{"import":"./dist/actors/session_recording.json"}},"gitHead":"100b81ae5e6f20b8c276120265da87f4e97a5eb1","license":"AGPL-3.0-or-later","scripts":{"test":"vitest run","build":"tsc","normalize":"node scripts/normalize.js","prepublishOnly":"npm run build"},"version":"0.8.0","_npmUser":{"name":"reatlat","email":"alex@zappa.dev"},"homepage":"https://consenttheater.org","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"repository":{"url":"https://codeberg.org/ConsentTheater/playbill","type":"git"},"_npmVersion":"10.9.8","description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","directories":{},"maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"},{"name":"reatlat","email":"alex@zappa.dev"}],"_nodeVersion":"22.22.3","_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^6.0.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/playbill_0.8.0_1789779797328_0.7248235455550445"}}},"time":{"created":"2026-04-21T14:24:10.748Z","modified":"2026-09-19T01:03:17.631Z","0.1.0":"2026-04-21T14:24:11.011Z","0.1.1":"2026-04-23T01:01:17.632Z","0.1.2":"2026-04-23T08:57:31.493Z","0.2.0":"2026-04-25T09:51:39.083Z","0.3.0":"2026-05-01T19:51:21.058Z","0.4.0":"2026-05-08T23:58:50.131Z","0.5.0":"2026-06-07T00:15:50.629Z","0.6.0":"2026-07-05T03:40:27.291Z","0.7.0":"2026-09-05T21:39:48.157Z","0.8.0":"2026-09-19T01:03:17.446Z"},"author":{"url":"https://consenttheater.org","name":"ConsentTheater","email":"developer@consenttheater.org"},"license":"AGPL-3.0-or-later","homepage":"https://consenttheater.org","keywords":["gdpr","privacy","cookies","trackers","consent","compliance","tracking-database","cookie-database","adtech","browser-fingerprinting","data-protection"],"repository":{"url":"https://codeberg.org/ConsentTheater/playbill","type":"git"},"description":"An open-source, tiered knowledge base of GDPR-relevant web trackers (cookies, domains, companies) with pure-function matching helpers. Each entry is tagged with the consent burden it creates under EU/GDPR rules — no verdicts, no risk scores. Standalone li","maintainers":[{"name":"consenttheater-bot","email":"consenttheater@proton.me"},{"name":"reatlat","email":"alex@zappa.dev"}],"readme":"# @consenttheater/playbill\n\n[![npm version](https://img.shields.io/npm/v/@consenttheater/playbill.svg)](https://www.npmjs.com/package/@consenttheater/playbill)\n[![npm downloads](https://img.shields.io/npm/dm/@consenttheater/playbill.svg)](https://www.npmjs.com/package/@consenttheater/playbill)\n[![License: AGPL-3.0-or-later](https://img.shields.io/badge/License-AGPL--3.0--or--later-blue.svg)](LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-types%20included-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Node](https://img.shields.io/node/v/@consenttheater/playbill.svg)](package.json)\n\n> [!IMPORTANT]\n> **Active development lives on [Codeberg](https://codeberg.org/ConsentTheater/playbill).**\n> The GitHub copy is a public mirror and isn't monitored for contributions.\n>\n> Please open issues, pull requests, questions and proposals on\n> [Codeberg](https://codeberg.org/ConsentTheater/playbill/issues).\n> Anything filed on the GitHub mirror is closed automatically.\n\n**The Playbill** — an open-source, tiered knowledge base of GDPR-relevant web trackers, with pure-function matching helpers. Each entry is tagged with the **consent burden** it creates under EU/GDPR rules. No verdicts, no risk scores — just facts you can build on.\n\nA theater playbill lists every actor and their role on stage. This package does the same for the web: every tracking cookie, every tracking domain, every company behind them — identified, categorised, and labelled with how much consent work each one creates.\n\nA standalone library — no browser dependencies, no runtime side effects, no lock-in. Useful for anyone building privacy tooling:\n\n- Cookie banner auditors and Consent Management Platforms (CMPs)\n- Browser extensions and user-agent privacy features\n- CI/CD compliance scanners (catch GDPR regressions before they ship)\n- Web crawlers, site-grading services, accessibility and privacy dashboards\n- Academic research, regulatory studies, journalism projects\n- Your own privacy tools, commercial or otherwise (subject to the AGPL — see License)\n\n## Why no scoring?\n\nEarlier releases (v0.1.x) shipped a `computeScore()` helper that produced a 0–100 compliance score and \"compliant / violating\" risk bands for whole sites. We removed it in v0.2.0.\n\nWhether a site complies with GDPR is the work of supervisory authorities and courts. We are an evidence library, not a regulator. Downstream consumers — extensions, scanners, dashboards — can compute whatever ranking they want from the raw `consent_burden` and `category` fields. Keeping the judgement layer out of this package is the cleanest way to stay neutral.\n\n## What's in the Playbill\n\n- **Cookie signatures** — name, owning company, service, purpose, consent burden, lifetime, docs link\n- **Domain signatures** — hostname, owning company, service, category, consent burden\n- **3,000 companies** — from Google and Meta to regional EU ad networks and niche SaaS tools\n- **10,000+ entries** across 11 categories — one of the largest AGPL-licensed tracker databases available\n- **Matching utilities** — exact + pattern (trailing `*`) cookie matching, exact + subdomain hostname matching\n\nCounts live in the [changelog](CHANGELOG.md) and in each release's stats —\n`loadPlaybill('full').stats` computes them from the data at runtime, so\nthey're always current in your code.\n\n## Tiers\n\nChoose what you need — everything is **computed at runtime** from a single set of source files, no pre-built tier bundles to drift out of sync:\n\n| Tier | Selection | Use case |\n|------|-----------|----------|\n| `mini` | Top 50 companies; `required_strict` + `required` only | Lightweight widgets, top-50 company quick checks |\n| `core` | All consent-requiring entries (`required_strict`, `required`, `contested`) | CI/CD scanners, most compliance tools |\n| `full` | Everything, including `minimal`-burden entries | Complete audits, regional/niche coverage |\n\n## Usage\n\n```ts\nimport { loadPlaybill, matchCookie, matchDomain } from '@consenttheater/playbill';\n\n// Load the tier you need\nconst playbill = loadPlaybill('core');\n\n// Identify a cookie\nconst cookie = matchCookie(playbill, '_ga');\n// → {\n//     name: '_ga',\n//     company: 'Google',\n//     service: 'Google Analytics',\n//     category: 'analytics',\n//     consent_burden: 'required',\n//     description: 'Distinguishes unique users...',\n//     lifetime: '2 years',\n//     docs_url: 'https://developers.google.com/...'\n//   }\n\n// Identify a domain (exact or subdomain match)\nconst domain = matchDomain(playbill, 'connect.facebook.net');\n// → { hostname: 'connect.facebook.net', company: 'Meta',\n//     service: 'Meta Pixel', category: 'advertising', consent_burden: 'required_strict' }\n```\n\n### Loading individual categories\n\nFor tools that only care about a subset (e.g. an analytics-opt-out helper doesn't need ad trackers):\n\n```ts\nimport { loadActors } from '@consenttheater/playbill';\n\nconst playbill = loadActors(['advertising', 'analytics']);\n```\n\n### Direct category imports (tree-shakeable)\n\nEach of the 11 categories is available as its own subpath export. Useful when your bundler can tree-shake and you want to skip categories entirely:\n\n```ts\nimport advertising from '@consenttheater/playbill/actors/advertising';\nimport analytics from '@consenttheater/playbill/actors/analytics';\nimport dataLeak from '@consenttheater/playbill/actors/data-leak';\n// Also: marketing, functional, social, session-recording, security,\n//       consent, fingerprinting, tag-manager\n```\n\n### Matcher-only\n\nIf you only need matching (and want to skip importing the bundled actor JSON):\n\n```ts\nimport { matchCookie, matchDomain } from '@consenttheater/playbill/matcher';\nimport type { Playbill, CookieActor } from '@consenttheater/playbill/types';\n```\n\n## Categories\n\n| Category | Description |\n|----------|-------------|\n| `advertising` | Ad targeting, retargeting, DSPs, SSPs, conversion tracking, programmatic |\n| `analytics` | Usage measurement, audience insights, A/B testing, CDP, attribution |\n| `marketing` | Email, SMS, push, CRM tracking, marketing automation, lead capture |\n| `functional` | Chat widgets, forms, payments, CMS features, loyalty, accessibility |\n| `social` | Social media embeds, sharing widgets, social login |\n| `session_recording` | Heatmaps, session replays, screen recording, click/scroll tracking |\n| `data_leak` | Third-party resources that expose visitor IP — fonts, embeds, CDNs, maps |\n| `security` | Bot detection, CAPTCHA, CSRF protection, fraud prevention |\n| `consent` | Consent Management Platforms (CMPs), banners, preference management |\n| `fingerprinting` | Browser fingerprinting, device identification, cross-device tracking |\n| `tag_manager` | Tag management systems — container scripts that load other trackers |\n\n### The `data_leak` category is special\n\nEntries categorised as `data_leak` (Google Fonts, Typekit, YouTube embeds, Google Maps, etc.) are noteworthy **even after consent**. Rationale: the Austrian DPA ruling (2022) and LG München judgments hold that IP exfiltration to third parties is a separate concern from cookie consent, because the request fires before any dialog can mediate. We tag the entries; how you treat them in your UI is your call.\n\n## Consent burden\n\nEvery entry carries a `consent_burden` value describing how much explicit consent the tracker needs under GDPR / ePrivacy.\n\n| Value | Meaning | Examples |\n|-------|---------|----------|\n| `required_strict` | Cross-site profiling, ad-tech retargeting, fingerprinting, session recording. Always needs prior, informed, freely-given consent. | DoubleClick, Meta Pixel, Hotjar, FingerprintJS |\n| `required` | Standard analytics and marketing tracking. Consent required in nearly all interpretations. | Google Analytics, Mixpanel, HubSpot tracking |\n| `contested` | Tracking-adjacent or jurisdiction-dependent. Some authorities allow under legitimate interest, others require consent. Treat as consent-required by default. | Some session storage IDs, certain CDP cookies |\n| `minimal` | Functional, security, or strictly-necessary in most interpretations. Often exempt from consent requirements. | CSRF tokens, language preferences, opt-out flags |\n\nThese labels describe **what kind of GDPR work the tracker creates**, not whether any particular site is compliant. Two trackers in the same category can carry different burdens depending on the operator's role and how they're used.\n\n## Pattern cookies\n\nCookie entries marked `\"pattern\": true` use **prefix matching with a trailing `*`**:\n\n```json\n\"_ga_*\": { \"pattern\": true, \"company\": \"Google\", ... }\n```\n\nThis matches `_ga_ABC123`, `_ga_XYZ789`, etc. Wildcards in the middle of a key are not supported — only trailing `*`.\n\n## Types\n\nAll types are exported:\n\n```ts\nimport type {\n  Playbill, Tier,\n  CookieActor, DomainActor,\n  CookieMatch, DomainMatch,\n  ConsentBurden, Category\n} from '@consenttheater/playbill';\n```\n\n## License\n\n**AGPL-3.0-or-later** — free to use, including commercially, but modifications and derivative works must remain open source under a compatible license. This applies even when the software is offered as a hosted service (SaaS). See [LICENSE](./LICENSE).\n\nThe AGPL is a deliberate choice: the tracker knowledge encoded here represents substantial community research, and we want forks, hosted scanners, and downstream tools to stay open so the ecosystem as a whole improves.\n\n## Contributing\n\nFound a tracker we're missing? Want to correct a `consent_burden` value or update a lifetime? PRs welcome.\n\nEach entry needs:\n- Cookie name or domain\n- Owning company and service name\n- Category and `consent_burden`\n- One-sentence description\n- Cookie lifetime (for cookies)\n- Link to official documentation\n\nAfter editing any file under `src/actors/`, run:\n\n```sh\nnpm run normalize   # sorts keys, reformats, flags duplicates, updates stats\n```\n\n## Migrating from v0.1.x\n\nv0.2.0 is a breaking change. See [CHANGELOG.md](./CHANGELOG.md) for the full migration guide. In short:\n\n- `severity` field renamed to `consent_burden` with descriptive labels:\n  - `critical` → `required_strict`\n  - `high` → `required`\n  - `medium` → `contested`\n  - `low` → `minimal`\n- The whole `scorer` module (`computeScore`, `bandForScore`, `SEVERITY_WEIGHTS`, `BANDS`, `Violation`, `ScoreResult`, `Band`, `BandKey`) was removed. Compute presentation hierarchies in your own UI layer.\n","readmeFilename":"README.md"}