@tantainnovative/ndpr-toolkit
Version:
Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023
1 lines • 3.69 kB
JavaScript
;var C=[{name:"_ga",category:"analytics",provider:"Google Analytics",purpose:"Distinguishes users"},{name:"_ga_",prefix:true,category:"analytics",provider:"Google Analytics (GA4)",purpose:"Persists session state"},{name:"_gid",category:"analytics",provider:"Google Analytics",purpose:"Distinguishes users"},{name:"_gat",prefix:true,category:"analytics",provider:"Google Analytics",purpose:"Throttles request rate"},{name:"_dc_gtm_",prefix:true,category:"analytics",provider:"Google Tag Manager",purpose:"Throttles request rate"},{name:"_gcl_",prefix:true,category:"marketing",provider:"Google Ads",purpose:"Conversion tracking"},{name:"IDE",category:"marketing",provider:"Google DoubleClick",purpose:"Ad targeting"},{name:"test_cookie",category:"marketing",provider:"Google DoubleClick",purpose:"Checks cookie support"},{name:"_fbp",category:"marketing",provider:"Meta (Facebook)",purpose:"Ad delivery and measurement"},{name:"_fbc",category:"marketing",provider:"Meta (Facebook)",purpose:"Click attribution"},{name:"fr",category:"marketing",provider:"Meta (Facebook)",purpose:"Ad delivery and measurement"},{name:"_clck",category:"analytics",provider:"Microsoft Clarity",purpose:"Session analytics"},{name:"_clsk",category:"analytics",provider:"Microsoft Clarity",purpose:"Session analytics"},{name:"_hj",prefix:true,category:"analytics",provider:"Hotjar",purpose:"Behaviour analytics"},{name:"bcookie",category:"marketing",provider:"LinkedIn",purpose:"Browser identification"},{name:"lidc",category:"marketing",provider:"LinkedIn",purpose:"Routing / ad delivery"},{name:"li_",prefix:true,category:"marketing",provider:"LinkedIn",purpose:"Ad delivery"},{name:"_ttp",category:"marketing",provider:"TikTok",purpose:"Ad measurement"},{name:"personalization_id",category:"marketing",provider:"X (Twitter)",purpose:"Ad personalisation"},{name:"guest_id",category:"marketing",provider:"X (Twitter)",purpose:"Identifies the browser"},{name:"hubspotutk",category:"marketing",provider:"HubSpot",purpose:"Visitor identification"},{name:"__hs",prefix:true,category:"analytics",provider:"HubSpot",purpose:"Analytics / session"},{name:"__stripe_mid",category:"necessary",provider:"Stripe",purpose:"Fraud prevention"},{name:"__stripe_sid",category:"necessary",provider:"Stripe",purpose:"Fraud prevention"},{name:"intercom-",prefix:true,category:"functional",provider:"Intercom",purpose:"Live chat / messaging"},{name:"ndpr_consent",category:"necessary",provider:"NDPR Toolkit",purpose:"Stores the consent decision"}];function f(t,r){return r.name instanceof RegExp?r.name.test(t):r.prefix?t.startsWith(r.name):t===r.name}function h(t){return t.split(";").map(r=>{let i=r.trim(),a=i.indexOf("=");return (a===-1?i:i.slice(0,a)).trim()}).filter(r=>r.length>0)}function S(t=[],r={}){var g,u,l,y,m,k;let i=(g=r.cookieString)!=null?g:typeof document!="undefined"?document.cookie:"",a=(u=r.asOf)!=null?u:Date.now(),v=((l=r.useKnownRegistry)!=null?l:true)?[...(y=r.knownCookies)!=null?y:[],...C]:[],n=h(i).map(e=>{let o=t.find(p=>f(e,p));if(o)return {name:e,category:o.category,matchedBy:"declared",provider:o.provider,purpose:o.purpose};let c=v.find(p=>f(e,p));return c?{name:e,category:c.category,matchedBy:"known",provider:c.provider,purpose:c.purpose}:{name:e,category:null,matchedBy:"none"}}),s={};for(let e of n){let o=(m=e.category)!=null?m:"uncategorized";((k=s[o])!=null?k:s[o]=[]).push(e);}let d=n.filter(e=>e.matchedBy!=="declared");return {scannedAt:a,total:n.length,cookies:n,declared:n.filter(e=>e.matchedBy==="declared"),undeclared:d,identified:n.filter(e=>e.matchedBy==="known"),unknown:n.filter(e=>e.matchedBy==="none"),byCategory:s,complete:d.length===0}}exports.a=C;exports.b=S;