{"_id":"@actuate-media/plugin-consent","_rev":"6-9713bd2c0b2c298ade97e008466950a8","name":"@actuate-media/plugin-consent","dist-tags":{"latest":"0.3.3"},"versions":{"0.2.0":{"name":"@actuate-media/plugin-consent","version":"0.2.0","_id":"@actuate-media/plugin-consent@0.2.0","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"homepage":"https://github.com/actuatecms/actuatecms#readme","bugs":{"url":"https://github.com/actuatecms/actuatecms/issues"},"dist":{"shasum":"5c040d29775fc14a5122a72a13b714307e6510b8","tarball":"https://registry.npmjs.org/@actuate-media/plugin-consent/-/plugin-consent-0.2.0.tgz","fileCount":40,"integrity":"sha512-w6eGm12ORO7PHIH1moFGEQ06Evt+65Rko/t9DOOzZuZicpHlqlG4z138pDnM7Cki2LsEwyyFAvWa9ca5YcWfiw==","signatures":[{"sig":"MEQCICfla6vqyFky3I/Hf5bGKWIFwYjwDuQBkTdag/KtZnsgAiBXmsLMgV+d2x6zypX4Hgattd67NWOFMDPaWd1dvAsfxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34787},"main":"./dist/index.js","type":"module","_from":"file:actuate-media-plugin-consent-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --project tsconfig.json","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"actuate_media","email":"strategize@actuatemedia.com"},"_resolved":"/tmp/6372373f68c9ec946396596f00f2f2e2/actuate-media-plugin-consent-0.2.0.tgz","_integrity":"sha512-w6eGm12ORO7PHIH1moFGEQ06Evt+65Rko/t9DOOzZuZicpHlqlG4z138pDnM7Cki2LsEwyyFAvWa9ca5YcWfiw==","repository":{"url":"git+https://github.com/actuatecms/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"_npmVersion":"10.9.8","description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","vitest":"^4.1.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@actuate-media/cms-core":"0.83.0"},"peerDependencies":{"react":"^18.0.0 || ^19.2.0","react-dom":"^18.0.0 || ^19.2.0","@actuate-media/cms-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-consent_0.2.0_1782963485986_0.43039744331058705","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @prenta/plugin-consent — see https://github.com/actuate-media/prenta"},"0.3.0":{"name":"@actuate-media/plugin-consent","version":"0.3.0","_id":"@actuate-media/plugin-consent@0.3.0","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"homepage":"https://github.com/actuatecms/actuatecms#readme","bugs":{"url":"https://github.com/actuatecms/actuatecms/issues"},"dist":{"shasum":"bcb70b1ab9ad34699d0f1894ff4756ae3280b76d","tarball":"https://registry.npmjs.org/@actuate-media/plugin-consent/-/plugin-consent-0.3.0.tgz","fileCount":40,"integrity":"sha512-/oqcDbjgnsu5k8CzrDHGYB3nWPvv7DhQtb81wB57rIuCcsZPLTnjmpQNKFdhFhXYJdvgikYyLVrIXENy/imdrg==","signatures":[{"sig":"MEUCIBZXL1S5oTW3WoBpoHzNZYGZ8obFk86NgJhYpjc3ykBqAiEA0Ucm3V164TuuoRKOeQ9y9p+mfJw+wO/0KMr34TuvYzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56215},"main":"./dist/index.js","type":"module","_from":"file:actuate-media-plugin-consent-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --project tsconfig.json","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"actuate_media","email":"strategize@actuatemedia.com"},"_resolved":"/tmp/d8370d8d0e1b1b266590def19320c70e/actuate-media-plugin-consent-0.3.0.tgz","_integrity":"sha512-/oqcDbjgnsu5k8CzrDHGYB3nWPvv7DhQtb81wB57rIuCcsZPLTnjmpQNKFdhFhXYJdvgikYyLVrIXENy/imdrg==","repository":{"url":"git+https://github.com/actuatecms/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"_npmVersion":"10.9.8","description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","vitest":"^4.1.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@actuate-media/cms-core":"0.89.0"},"peerDependencies":{"react":"^18.0.0 || ^19.2.0","react-dom":"^18.0.0 || ^19.2.0","@actuate-media/cms-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-consent_0.3.0_1783052766156_0.060651410538437034","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @prenta/plugin-consent — see https://github.com/actuate-media/prenta"},"0.3.1":{"name":"@actuate-media/plugin-consent","version":"0.3.1","license":"MIT","_id":"@actuate-media/plugin-consent@0.3.1","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"homepage":"https://github.com/actuate-media/actuatecms#readme","bugs":{"url":"https://github.com/actuate-media/actuatecms/issues"},"dist":{"shasum":"12eb55e62f25a68b0d5bfdf573060dc696ca0d03","tarball":"https://registry.npmjs.org/@actuate-media/plugin-consent/-/plugin-consent-0.3.1.tgz","fileCount":40,"integrity":"sha512-Z1hatUXBa7uAbc8jYMgt1wq5wRanz+vpICwQyPa6n9BtDNDcQOJ0PmqeqDdVy19ACXIgeGVl+mdZKnXAGIaycg==","signatures":[{"sig":"MEQCIFOLUgwKxEUG1upRX8sdV8bBxdvaQFXGukX++T1dnOcMAiA98n3XZtbjw4jhJOc+mlpjMBV74rrF7pqEOJ/41Iv1ig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56462},"main":"./dist/index.js","type":"module","_from":"file:actuate-media-plugin-consent-0.3.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --project tsconfig.json","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"actuate_media","email":"strategize@actuatemedia.com"},"_resolved":"/tmp/7f04b655af97e7713745b267ea9b7c96/actuate-media-plugin-consent-0.3.1.tgz","_integrity":"sha512-Z1hatUXBa7uAbc8jYMgt1wq5wRanz+vpICwQyPa6n9BtDNDcQOJ0PmqeqDdVy19ACXIgeGVl+mdZKnXAGIaycg==","repository":{"url":"git+https://github.com/actuate-media/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"_npmVersion":"10.9.8","description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","vitest":"^4.1.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@actuate-media/cms-core":"0.91.0"},"peerDependencies":{"react":"^18.0.0 || ^19.2.0","react-dom":"^18.0.0 || ^19.2.0","@actuate-media/cms-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-consent_0.3.1_1783301975141_0.0875524335745439","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @prenta/plugin-consent — see https://github.com/actuate-media/prenta"},"0.3.2":{"name":"@actuate-media/plugin-consent","version":"0.3.2","license":"MIT","_id":"@actuate-media/plugin-consent@0.3.2","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"homepage":"https://github.com/actuate-media/actuatecms#readme","bugs":{"url":"https://github.com/actuate-media/actuatecms/issues"},"dist":{"shasum":"934c49aeb5cec4e7be4b0229be7bbdf5d9d57441","tarball":"https://registry.npmjs.org/@actuate-media/plugin-consent/-/plugin-consent-0.3.2.tgz","fileCount":40,"integrity":"sha512-OEQnm+hbnJ3ryvJxoLvAMFKXvtoqcbK5JL8LC7st1emUbj4B4LjMZzYUfQNzxW+N+hjxmxowV7KhjOPVYda5Bw==","signatures":[{"sig":"MEYCIQDSWAKtXRUpeeC0OD6J1qQRXMGu3vxReoGqGxHEv3QgwAIhAMyVneWdaVukIdgaVvtX68vJH+h78gXVeowGXFoP9UeB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57840},"main":"./dist/index.js","type":"module","_from":"file:actuate-media-plugin-consent-0.3.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --project tsconfig.json","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"actuate_media","email":"strategize@actuatemedia.com"},"_resolved":"/tmp/0013f27da863015526f61515eb91a38f/actuate-media-plugin-consent-0.3.2.tgz","_integrity":"sha512-OEQnm+hbnJ3ryvJxoLvAMFKXvtoqcbK5JL8LC7st1emUbj4B4LjMZzYUfQNzxW+N+hjxmxowV7KhjOPVYda5Bw==","repository":{"url":"git+https://github.com/actuate-media/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"_npmVersion":"10.9.8","description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","vitest":"^4.1.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@actuate-media/cms-core":"0.93.0"},"peerDependencies":{"react":"^18.0.0 || ^19.2.0","react-dom":"^18.0.0 || ^19.2.0","@actuate-media/cms-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-consent_0.3.2_1783381907151_0.802643917556652","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @prenta/plugin-consent — see https://github.com/actuate-media/prenta"},"0.3.3":{"name":"@actuate-media/plugin-consent","version":"0.3.3","license":"MIT","_id":"@actuate-media/plugin-consent@0.3.3","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"homepage":"https://github.com/actuate-media/actuatecms#readme","bugs":{"url":"https://github.com/actuate-media/actuatecms/issues"},"dist":{"shasum":"1047562273ccbf525edc5b154ad5062457ec803c","tarball":"https://registry.npmjs.org/@actuate-media/plugin-consent/-/plugin-consent-0.3.3.tgz","fileCount":40,"integrity":"sha512-tmwIWFNVZdmQk2zZOXWUcNZq+ZgVAYJCwkjPioOSVS8i/BCaKH6WFRahYJSniUNT3zOU475+6OmoqdQXkqmf0Q==","signatures":[{"sig":"MEUCIQCzpta+f2c0la2UTole2dce0Jcx+RpDHrRdpRV1ayY6GQIgY5K3t+yXmhgu/nRI/FnGB2bkeRwgompzKUi6BVHd/Dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58398},"main":"./dist/index.js","type":"module","_from":"file:actuate-media-plugin-consent-0.3.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc --project tsconfig.json","clean":"rm -rf dist .turbo","type-check":"tsc --noEmit"},"_npmUser":{"name":"actuate_media","email":"strategize@actuatemedia.com"},"_resolved":"/tmp/2a1e82de8d008aa27d3ec4ec6fee4838/actuate-media-plugin-consent-0.3.3.tgz","_integrity":"sha512-tmwIWFNVZdmQk2zZOXWUcNZq+ZgVAYJCwkjPioOSVS8i/BCaKH6WFRahYJSniUNT3zOU475+6OmoqdQXkqmf0Q==","repository":{"url":"git+https://github.com/actuate-media/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"_npmVersion":"10.9.8","description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","vitest":"^4.1.0","react-dom":"^19.2.0","typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@actuate-media/cms-core":"0.93.4"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@actuate-media/cms-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/plugin-consent_0.3.3_1783485692850_0.9289772898312769","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @prenta/plugin-consent — see https://github.com/actuate-media/prenta"}},"time":{"created":"2026-07-02T03:38:05.743Z","modified":"2026-07-30T20:44:28.158Z","0.2.0":"2026-07-02T03:38:06.130Z","0.3.0":"2026-07-03T04:26:06.292Z","0.3.1":"2026-07-06T01:39:35.284Z","0.3.2":"2026-07-06T23:51:47.276Z","0.3.3":"2026-07-08T04:41:32.991Z"},"bugs":{"url":"https://github.com/actuate-media/actuatecms/issues"},"license":"MIT","homepage":"https://github.com/actuate-media/actuatecms#readme","repository":{"url":"git+https://github.com/actuate-media/actuatecms.git","type":"git","directory":"packages/plugin-consent"},"description":"Cookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.","maintainers":[{"name":"actuate_media","email":"strategize@actuatemedia.com"}],"readme":"# @actuate-media/plugin-consent\n\nCookie consent banner, `am_cookie_consent` storage, and `am-consent` events for Actuate CMS public sites. Gates GA4, Google Ads, and Meta Pixel until the visitor chooses **Accept all**.\n\n## Quick start\n\n```tsx\n// app/(site)/layout.tsx\nimport { ConsentRoot } from '@actuate-media/plugin-consent'\nimport { consentAnalyticsConfig, consentLinks } from '@/src/consent/config'\n\nexport default function SiteLayout({ children }) {\n  return (\n    <html lang=\"en\">\n      <body>\n        {children}\n        <ConsentRoot analytics={consentAnalyticsConfig} {...consentLinks} />\n      </body>\n    </html>\n  )\n}\n```\n\n```typescript\n// src/consent/config.ts\nimport type { ConsentAnalyticsConfig } from '@actuate-media/plugin-consent'\n\nexport const consentAnalyticsConfig: ConsentAnalyticsConfig = {\n  ga4MeasurementId: process.env.NEXT_PUBLIC_GA4_MEASUREMENT_ID,\n  googleAdsId: process.env.NEXT_PUBLIC_GOOGLE_ADS_ID,\n  metaPixelId: process.env.NEXT_PUBLIC_META_PIXEL_ID,\n}\n\nexport const consentLinks = {\n  privacyUrl: '/privacy-policy',\n  termsUrl: '/terms',\n}\n```\n\nScaffold with `--plugins consent` (or select **Consent** in the CLI) to generate the config file and layout wiring automatically.\n\n## Sticky CTA / custom widgets\n\n```tsx\n'use client'\nimport { useConsent, waitForConsent } from '@actuate-media/plugin-consent'\n\nexport function StickyCta() {\n  const { allowsAnalytics, ready } = useConsent()\n  if (!ready || !allowsAnalytics) return null\n  return <button type=\"button\">Track me</button>\n}\n\n// Or await before firing a pixel manually:\nawait waitForConsent()\n```\n\n## API\n\n| Export                              | Purpose                                |\n| ----------------------------------- | -------------------------------------- |\n| `ConsentRoot`                       | Banner + analytics loader (mount once) |\n| `ConsentBanner`                     | Banner only                            |\n| `useConsent()`                      | React hook for gated UI                |\n| `onConsent(fn)`                     | Subscribe to `am-consent`              |\n| `waitForConsent()`                  | Promise when user has chosen           |\n| `setConsent('all' \\| 'essential')`  | Save + dispatch event                  |\n| `readConsent()`                     | Read `localStorage` value              |\n| `loadConsentGatedAnalytics(config)` | Inject tags when `'all'`               |\n\nStorage key: `am_cookie_consent`. Event: `am-consent` with `{ detail: { level } }`.\n","readmeFilename":"README.md"}