{"_id":"@usercentrics/cmp-web-sdk","_rev":"78-b73dae8c53ba4e5254d6ad9b6ae47dd1","name":"@usercentrics/cmp-web-sdk","dist-tags":{"latest":"1.0.0-beta.1"},"versions":{"1.0.0-alpha.0":{"name":"@usercentrics/cmp-web-sdk","version":"1.0.0-alpha.0","keywords":["usercentrics","cmp","consent","privacy","gdpr","tcf","ccpa","web","browser","sdk"],"author":{"name":"Usercentrics GmbH"},"license":"SEE LICENSE IN LICENSE.md","_id":"@usercentrics/cmp-web-sdk@1.0.0-alpha.0","maintainers":[{"name":"katya-ignatuk","email":"katsiaryna.ihnatsiuk@usercentrics-ext.com"},{"name":"andrei_mashko","email":"andrei.mashko@usercentrics.com"},{"name":"ucps","email":"ps@usercentrics.com"},{"name":"pzwikirsch","email":"pascal.zwikirsch@usercentrics.com"},{"name":"franciscocunhauc","email":"francisco.cunha@usercentrics.com"},{"name":"arturw","email":"artur.wachelka@usercentrics.com"},{"name":"bsambil-uc","email":"boris.sambil@usercentrics.com"},{"name":"kinjinzzz","email":"vojander@gmail.com"},{"name":"horacio-escoto","email":"horacio.escoto@usercentrics.com"},{"name":"uladzimir.aleshka.usercentrics","email":"uladzimir.aleshka@usercentrics-ext.com"},{"name":"siarhei.usercentrics","email":"siarhei.pakhmurny@usercentrics-ext.com"},{"name":"nataly.salivonchyk.usercentrics","email":"natallia.salivonchyk@usercentrics-ext.com"},{"name":"uc-icaro","email":"icaro.ponce@usercentrics.com"},{"name":"maksimzinovik","email":"maksim.zinovik@usercentrics-ext.com"},{"name":"mma-usercentrics","email":"michael.martinsen@usercentrics.com"},{"name":"joaomaga","email":"joao.magalhaes@usercentrics.com"},{"name":"mikkelhartung-uc","email":"mikkel.hartung@usercentrics.com"},{"name":"molayash","email":"molay.ash@usercentrics.com"},{"name":"dajoh","email":"daniel.johansen@usercentrics.com"},{"name":"eriskhan","email":"eriskhan.geshaev@usercentrics.com"},{"name":"runelillevang","email":"rune.lillevang@usercentrics-ext.com"},{"name":"zhelcentrics","email":"mykyta.zhelnov@usercentrics.com"},{"name":"bandersen","email":"brian.andersen@usercentrics.com"},{"name":"leo.briotto","email":"leonardo.briotto@usercentrics.com"},{"name":"ag_uc","email":"aydar.gazizullin@usercentrics.com"},{"name":"james_uc","email":"james.oneill@usercentrics.com"},{"name":"kristinaiakovleva","email":"kristina.iakovleva@usercentrics.com"},{"name":"steffenkromann","email":"steffen.kromann@usercentrics.com"},{"name":"ivomirrauc","email":"ivo.mirra@usercentrics.com"},{"name":"vedsmand","email":"daniel.vedsmand@usercentrics.com"},{"name":"brian-usercentrics","email":"brian.hansen@usercentrics.com"},{"name":"bjarkes_usercentrics","email":"bjarke.skjoelstrup@usercentrics.com"},{"name":"bni_usercentrics","email":"bjarke.skelskov@usercentrics.com"},{"name":"falker","email":"frederik.alkaersig@usercentrics.com"},{"name":"lpgoncalo","email":"luis.goncalo@usercentrics.com"},{"name":"jestersunborn","email":"jestersunborn@gmail.com"},{"name":"michel_gammelgaard","email":"michel.gammelgaard@usercentrics.com"},{"name":"babaisinka","email":"anatolii.kliuiev@usercentrics-ext.com"},{"name":"usercentrics_martin","email":"martin.nielsen@usercentrics.com"},{"name":"aleckrafzik","email":"alec.krafzik@usercentrics.com"},{"name":"fabriciosilva","email":"fabricio.silva@usercentrics.com"},{"name":"yashndave","email":"yash.dave@usercentrics.com"},{"name":"victorcarrcentrics","email":"victor.carrillo@usercentrics-ext.com"},{"name":"orlando.pereira","email":"orlando.pereira@usercentrics.com"},{"name":"matheus.goncalves","email":"matheus.goncalves@usercentrics.com"},{"name":"tatiane.fukuda","email":"Tatiane.Fukuda@usercentrics.com"}],"homepage":"https://usercentrics.com/docs/web/implementation/sdk/","dist":{"shasum":"2717f608bc26b208422f9fe094ab63c6d5419dfb","tarball":"https://registry.npmjs.org/@usercentrics/cmp-web-sdk/-/cmp-web-sdk-1.0.0-alpha.0.tgz","fileCount":14,"integrity":"sha512-q1jQM5HqvVeTFkUUtsGniYHyszlBr+77IMM3596m6PqkjUt0ciYYK0yXPKzHbpmSMMJ4tFkN47RTrgnf4yEXYQ==","signatures":[{"sig":"MEQCIGlrS9rnCK43tdapJ7p+SoJG5Wle038DxNejwnfOB9LGAiApzQOWjHxwg9MQ1iTaHonjaUn2hgW2w8ExBqv/qE2vxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":890506},"main":"dist/main.js","_from":"file:packages/sdk/dist/sdk.tgz","types":"dist/types.d.ts","module":"dist/module.js","source":"src/WebSdk.lib.ts","scripts":{"ci":"yarn ci:test && yarn build","lint":"eslint 'src/**/*.ts' --max-warnings 0 --fix","test":"jest","build":"rimraf -rf dist && yarn build:sdk","check":"tsc --noEmit","watch":"parcel watch","analyze":"parcel build --detailed-report --reporter @parcel/reporter-bundle-analyzer","ci:test":"yarn lint && yarn check && yarn test","version":"echo $npm_package_version","compress":"ts-node scripts/buildSdkPackage.ts && yarn pack --out dist/sdk.tgz","build:sdk":"SDK_VERSION=$npm_package_version yarn parcel:clear && parcel build --no-source-maps"},"_npmUser":{"name":"arturw","email":"artur.wachelka@usercentrics.com"},"_resolved":"/opt/atlassian/pipelines/agent/build/packages/sdk/dist/sdk.tgz","_integrity":"sha512-q1jQM5HqvVeTFkUUtsGniYHyszlBr+77IMM3596m6PqkjUt0ciYYK0yXPKzHbpmSMMJ4tFkN47RTrgnf4yEXYQ==","_npmVersion":"10.1.0","description":"Please visit our official [https://usercentrics.com/docs/web/implementation/sdk/][docs] (alpha version, not to be used in production).","directories":{},"sideEffects":["index.ts"],"_nodeVersion":"20.8.0","dependencies":{"uuid":"^10.0.0","crypto-js":"^4.2.0","@iabgpp/cmpapi":"file:deps/iab.gpp.cmpapi.tgz","@iabtechlabtcf/core":"file:deps/iab.tcf.core.tgz","@iabtechlabtcf/cmpapi":"file:iab.tcf.cmpapi.tgz","@usercentrics/cmp-web-shared":"file:deps/shared.tgz","@usercentrics/cmp-web-api-cmp-server":"file:deps/api.cmp.lib.tgz"},"installConfig":{"hoistingLimits":"none"},"_hasShrinkwrap":false,"devDependencies":{"lodash":"^4.17.21","mockdate":"^3.0.5","@types/node":"^20.17.6","@types/uuid":"^10.0.0","@types/lodash":"^4.17.13","@types/crypto-js":"^4.2.2","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3"},"_npmOperationalInternal":{"tmp":"tmp/cmp-web-sdk_1.0.0-alpha.0_1737464576989_0.05138182975682226","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.1":{"name":"@usercentrics/cmp-web-sdk","version":"1.0.0-beta.1","keywords":["usercentrics","cmp","consent","privacy","gdpr","tcf","ccpa","web","browser","sdk"],"author":{"url":"https://usercentrics.com","name":"Usercentrics GmbH"},"license":"SEE LICENSE IN LICENSE.md","_id":"@usercentrics/cmp-web-sdk@1.0.0-beta.1","maintainers":[{"name":"katya-ignatuk","email":"katsiaryna.ihnatsiuk@usercentrics-ext.com"},{"name":"andrei_mashko","email":"andrei.mashko@usercentrics.com"},{"name":"ucps","email":"ps@usercentrics.com"},{"name":"pzwikirsch","email":"pascal.zwikirsch@usercentrics.com"},{"name":"franciscocunhauc","email":"francisco.cunha@usercentrics.com"},{"name":"bsambil-uc","email":"boris.sambil@usercentrics.com"},{"name":"kinjinzzz","email":"vojander@gmail.com"},{"name":"horacio-escoto","email":"horacio.escoto@usercentrics.com"},{"name":"uladzimir.aleshka.usercentrics","email":"uladzimir.aleshka@usercentrics-ext.com"},{"name":"siarhei.usercentrics","email":"siarhei.pakhmurny@usercentrics-ext.com"},{"name":"nataly.salivonchyk.usercentrics","email":"natallia.salivonchyk@usercentrics-ext.com"},{"name":"christiansousa","email":"christian.sousa@usercentrics.com"},{"name":"uc-icaro","email":"icaro.ponce@usercentrics.com"},{"name":"maksimzinovik","email":"maksim.zinovik@usercentrics-ext.com"},{"name":"mma-usercentrics","email":"michael.martinsen@usercentrics.com"},{"name":"joaomaga","email":"joao.magalhaes@usercentrics.com"},{"name":"mikkelhartung-uc","email":"mikkel.hartung@usercentrics.com"},{"name":"molayash","email":"molay.ash@usercentrics.com"},{"name":"eriskhan","email":"eriskhan.geshaev@usercentrics.com"},{"name":"runelillevang","email":"rune.lillevang@usercentrics-ext.com"},{"name":"zhelcentrics","email":"mykyta.zhelnov@usercentrics.com"},{"name":"bandersen","email":"brian.andersen@usercentrics.com"},{"name":"ag_uc","email":"aydar.gazizullin@usercentrics.com"},{"name":"james_uc","email":"james.oneill@usercentrics.com"},{"name":"kristinaiakovleva","email":"kristina.iakovleva@usercentrics.com"},{"name":"steffenkromann","email":"steffen.kromann@usercentrics.com"},{"name":"ivomirrauc","email":"ivo.mirra@usercentrics.com"},{"name":"vedsmand","email":"daniel.vedsmand@usercentrics.com"},{"name":"brian-usercentrics","email":"brian.hansen@usercentrics.com"},{"name":"bjarkes_usercentrics","email":"bjarke.skjoelstrup@usercentrics.com"},{"name":"bni_usercentrics","email":"bjarke.skelskov@usercentrics.com"},{"name":"falker","email":"frederik.alkaersig@usercentrics.com"},{"name":"lpgoncalo","email":"luis.goncalo@usercentrics.com"},{"name":"jestersunborn","email":"jestersunborn@gmail.com"},{"name":"babaisinka","email":"anatolii.kliuiev@usercentrics-ext.com"},{"name":"usercentrics_martin","email":"martin.nielsen@usercentrics.com"},{"name":"aleckrafzik","email":"alec.krafzik@usercentrics.com"},{"name":"fabriciosilva","email":"fabricio.silva@usercentrics.com"},{"name":"yashndave","email":"yash.dave@usercentrics.com"},{"name":"victorcarrcentrics","email":"victor.carrillo@usercentrics-ext.com"},{"name":"matheus.goncalves","email":"matheus.goncalves@usercentrics.com"},{"name":"tatiane.fukuda","email":"Tatiane.Fukuda@usercentrics.com"},{"name":"jensjustesen","email":"jens.justesen@usercentrics.com"},{"name":"lucas.abreu","email":"lucas.abreu@usercentrics-ext.com"},{"name":"joao-borges","email":"joao.borges@usercentrics-ext.com"},{"name":"joice_queiroz","email":"joice.silva@usercentrics.com"},{"name":"paulo.portes.usercentrics","email":"paulo.portes@usercentrics.com"},{"name":"mathalbuquerque","email":"matheus.albuquerque@usercentrics-ext.com"},{"name":"ivo.rocha","email":"Ivo.Rocha@usercentrics.com"},{"name":"v.sousa","email":"vicente.sousa@usercentrics-ext.com"},{"name":"smeskini","email":"sonia.meskini@usercentrics.com"},{"name":"mmenegat-uc","email":"marcelo.menegat@usercentrics-ext.com"},{"name":"ammar.esber","email":"ammar.esber@usercentrics.com"},{"name":"karl.usercentrics","email":"karl.oliveira@usercentrics.com"},{"name":"juansoares-uc","email":"juan.soares@usercentrics-ext.com"},{"name":"pedro.teixeira","email":"pedro.teixeira@usercentrics.com"},{"name":"uc-npm-bot","email":"devops@usercentrics.com"},{"name":"dromana","email":"Diogo.Romana@usercentrics-ext.com"},{"name":"ucbrunosilva","email":"bruno.silva@usercentrics-ext.com"},{"name":"uc-brunosouza","email":"bruno.souza@usercentrics-ext.com"},{"name":"rodrigo.leal.usercentrics","email":"rodrigo.leal@usercentrics.com"},{"name":"marcelo.cavalcante2","email":"marcelo.cavalcante@usercentrics-ext.com"},{"name":"rune1337","email":"rune.lillevang@usercentrics.com"},{"name":"sorengravesen-uc","email":"soeren.gravesen@usercentrics.com"},{"name":"rui.reis","email":"rui.reis@usercentrics.com"},{"name":"helen_tver","email":"Olena.Tverdokhlib@usercentrics-ext.com"},{"name":"fabiangeneral.usercentrics","email":"fabian.general@usercentrics-ext.com"},{"name":"apinto-uc","email":"antonio.pinto@usercentrics-ext.com"},{"name":"lucas-antonio-uc","email":"lucas.santos@usercentrics-ext.com"},{"name":"joaorossasuc","email":"joao.rossas@usercentrics.com"},{"name":"pelle-brandes-uc","email":"pelle.brandes@usercentrics-ext.com"},{"name":"mads.mosumgaard","email":"mads.mosumgaard@usercentrics-ext.com"},{"name":"gabriel.rocha","email":"gabriel.rocha@usercentrics.com"},{"name":"perrutte_usercentrics","email":"raffael.perutte@usercentrics-ext.com"},{"name":"artur_sheikh","email":"artur.sheikh@usercentrics-ext.com"},{"name":"nmehrubonov","email":"nozim.mehrubonov@usercentrics-ext.com"},{"name":"yavarouski_v","email":"uladzislau.yavarouski@usercentrics-ext.com"},{"name":"atiq-uc","email":"atiq.rehman@usercentrics-ext.com"},{"name":"andrey.sm","email":"andrey.smirennikov@usercentrics-ext.com"},{"name":"bvinicius_uc","email":"vinicius.bazanella@usercentrics-ext.com"},{"name":"islameldesoky","email":"islam.eldesoky@usercentrics-ext.com"},{"name":"aminul_usercentrics","email":"aminul.islam@usercentrics-ext.com"},{"name":"bibekrimal.uc","email":"bibek.rimal@usercentrics-ext.com"}],"dist":{"shasum":"7c20f7805a1749fdea6facfe7bf7dc0754562ad0","tarball":"https://registry.npmjs.org/@usercentrics/cmp-web-sdk/-/cmp-web-sdk-1.0.0-beta.1.tgz","fileCount":5,"integrity":"sha512-zdqPNcZQTR65aG4ce05z8inKExzhSm1yuBJPANOdfT811n5E/TlHYRBZgW2ryAJtXt518lizXGsM8Copo2l16g==","signatures":[{"sig":"MEYCIQCpaHH3l5Y7QevcyC27jSJN9NRvLhFASPiRx9lt2CLZSwIhALbwqRH6sfwPeLWSp2pUXl2QH47nafSuvk2ItQNxXOAv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":960435},"main":"browser.js","types":"types.d.ts","module":"browser.js","browser":"browser.js","exports":{".":{"types":"./types.d.ts","import":"./browser.js","browser":"./browser.js","require":"./browser.js"}},"gitHead":"2430a285808cdb3b9f1f9872f99a862ad63746f9","_npmUser":{"name":"christiansousa","email":"christian.sousa@usercentrics.com"},"_npmVersion":"10.1.0","description":"Usercentrics CMP Browser V3 SDK","directories":{},"sideEffects":false,"_nodeVersion":"20.8.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cmp-web-sdk_1.0.0-beta.1_1762429838876_0.4765903159867031","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-01-21T13:02:56.988Z","modified":"2026-09-21T12:46:14.785Z","1.0.0-alpha.0":"2025-01-21T13:02:57.255Z","1.0.0-beta.1":"2025-11-06T11:50:39.096Z"},"author":{"url":"https://usercentrics.com","name":"Usercentrics GmbH"},"license":"SEE LICENSE IN LICENSE.md","keywords":["usercentrics","cmp","consent","privacy","gdpr","tcf","ccpa","web","browser","sdk"],"description":"Usercentrics CMP Browser V3 SDK","maintainers":[{"email":"katsiaryna.ihnatsiuk@usercentrics-ext.com","name":"katya-ignatuk"},{"email":"andrei.mashko@usercentrics.com","name":"andrei_mashko"},{"email":"ps@usercentrics.com","name":"ucps"},{"email":"pascal.zwikirsch@usercentrics.com","name":"pzwikirsch"},{"email":"francisco.cunha@usercentrics.com","name":"franciscocunhauc"},{"email":"boris.sambil@usercentrics.com","name":"bsambil-uc"},{"email":"andrii.voitsekhivskyi@usercentrics-ext.com","name":"kinjinzzz"},{"email":"horacio.escoto@usercentrics.com","name":"horacio-escoto"},{"email":"uladzimir.aleshka@usercentrics-ext.com","name":"uladzimir.aleshka.usercentrics"},{"email":"mariana.clemente@usercentrics.com","name":"marianaclemente"},{"email":"siarhei.pakhmurny@usercentrics-ext.com","name":"siarhei.usercentrics"},{"email":"natallia.salivonchyk@usercentrics-ext.com","name":"nataly.salivonchyk.usercentrics"},{"email":"christian.sousa@usercentrics.com","name":"christiansousa"},{"email":"icaro.ponce@usercentrics.com","name":"uc-icaro"},{"email":"maksim.zinovik@usercentrics-ext.com","name":"maksimzinovik"},{"email":"michael.martinsen@usercentrics.com","name":"mma-usercentrics"},{"email":"joao.magalhaes@usercentrics.com","name":"joaomaga"},{"email":"mikkel.hartung@usercentrics.com","name":"mikkelhartung-uc"},{"email":"molay.ash@usercentrics.com","name":"molayash"},{"email":"eriskhan.geshaev@usercentrics.com","name":"eriskhan"},{"email":"rune.lillevang@usercentrics-ext.com","name":"runelillevang"},{"email":"mykyta.zhelnov@usercentrics.com","name":"zhelcentrics"},{"email":"brian.andersen@usercentrics.com","name":"bandersen"},{"email":"aydar.gazizullin@usercentrics.com","name":"ag_uc"},{"email":"james.oneill@usercentrics.com","name":"james_uc"},{"email":"kristina.iakovleva@usercentrics.com","name":"kristinaiakovleva"},{"email":"ivo.mirra@usercentrics.com","name":"ivomirrauc"},{"email":"daniel.vedsmand@usercentrics.com","name":"vedsmand"},{"email":"brian.hansen@usercentrics.com","name":"brian-usercentrics"},{"email":"bjarke.skjoelstrup@usercentrics.com","name":"bjarkes_usercentrics"},{"email":"bjarke.skelskov@usercentrics.com","name":"bni_usercentrics"},{"email":"asad.raza@usercentrics-ext.com","name":"asadraza-usercentrics"},{"email":"icaro.rezende@usercentrics-ext.com","name":"icarorez"},{"email":"frederik.alkaersig@usercentrics.com","name":"falker"},{"email":"luis.goncalo@usercentrics.com","name":"lpgoncalo"},{"email":"jestersunborn@gmail.com","name":"jestersunborn"},{"email":"anatolii.kliuiev@usercentrics-ext.com","name":"babaisinka"},{"email":"mathieu.mestre@usercentrics.com","name":"mathieumestre"},{"email":"martin.nielsen@usercentrics.com","name":"usercentrics_martin"},{"email":"fabricio.silva@usercentrics.com","name":"fabriciosilva"},{"email":"yash.dave@usercentrics.com","name":"yashndave"},{"email":"daniel.hvolgaard@usercentrics.com","name":"danielhvolgaard"},{"email":"victor.carrillo@usercentrics-ext.com","name":"victorcarrcentrics"},{"email":"liat.malka@usercentrics.com","name":"liatma.us"},{"email":"malik.shahbaz@usercentrics-ext.com","name":"nayyershahbaz"},{"email":"phillip.danielsen@usercentrics.com","name":"phillip_danielsen"},{"email":"rasmus.lindquist@usercentrics.com","name":"rl_uc"},{"email":"mads.Mosumgaard@usercentrics-ext.com","name":"madsmosu"},{"email":"rita.curado@usercentrics.com","name":"rcurado"},{"email":"fabian.general@usercentrics.com","name":"fabiangeneral.uc"},{"email":"oleksandr.oliynyk@usercentrics-ext.com","name":"alex-usercentrics-ext"},{"email":"daniel.johansen@usercentrics.com","name":"dajoh"},{"email":"matheus.goncalves@usercentrics.com","name":"matheus.goncalves"},{"email":"Tatiane.Fukuda@usercentrics.com","name":"tatiane.fukuda"},{"email":"jens.justesen@usercentrics.com","name":"jensjustesen"},{"email":"oleksii.kvasov@usercentrics-ext.com","name":"alexkvasov"},{"email":"michel.gammelgaard@usercentrics.com","name":"michel_gammelgaard_uc"},{"email":"lucas.abreu@usercentrics-ext.com","name":"lucas.abreu"},{"email":"joao.borges@usercentrics-ext.com","name":"joao-borges"},{"email":"joice.silva@usercentrics.com","name":"joice_queiroz"},{"email":"paulo.portes@usercentrics.com","name":"paulo.portes.usercentrics"},{"email":"matheus.albuquerque@usercentrics-ext.com","name":"mathalbuquerque"},{"email":"Ivo.Rocha@usercentrics.com","name":"ivo.rocha"},{"email":"vicente.sousa@usercentrics-ext.com","name":"v.sousa"},{"email":"sonia.meskini@usercentrics.com","name":"smeskini"},{"email":"marcelo.menegat@usercentrics-ext.com","name":"mmenegat-uc"},{"email":"ammar.esber@usercentrics.com","name":"ammar.esber"},{"email":"karl.oliveira@usercentrics.com","name":"karl.usercentrics"},{"email":"pedro.teixeira@usercentrics.com","name":"pedro.teixeira"},{"email":"devops@usercentrics.com","name":"uc-npm-bot"},{"email":"Diogo.Romana@usercentrics-ext.com","name":"dromana"},{"email":"bruno.silva@usercentrics-ext.com","name":"ucbrunosilva"},{"email":"bruno.souza@usercentrics-ext.com","name":"uc-brunosouza"},{"email":"rodrigo.leal@usercentrics.com","name":"rodrigo.leal.usercentrics"},{"email":"marcelo.cavalcante@usercentrics-ext.com","name":"marcelo.cavalcante2"},{"email":"rune.lillevang@usercentrics.com","name":"rune1337"},{"email":"soeren.gravesen@usercentrics.com","name":"sorengravesen-uc"},{"email":"Olena.Tverdokhlib@usercentrics-ext.com","name":"helen_tver"},{"email":"fabian.general@usercentrics-ext.com","name":"fabiangeneral.usercentrics"},{"email":"antonio.pinto@usercentrics-ext.com","name":"apinto-uc"},{"email":"lucas.santos@usercentrics-ext.com","name":"lucas-antonio-uc"},{"email":"joao.rossas@usercentrics.com","name":"joaorossasuc"},{"email":"pelle.brandes@usercentrics-ext.com","name":"pelle-brandes-uc"},{"email":"mads.mosumgaard@usercentrics-ext.com","name":"mads.mosumgaard"},{"email":"gabriel.rocha@usercentrics.com","name":"gabriel.rocha"},{"email":"raffael.perutte@usercentrics-ext.com","name":"perrutte_usercentrics"},{"email":"artur.sheikh@usercentrics-ext.com","name":"artur_sheikh"},{"email":"uladzislau.yavarouski@usercentrics-ext.com","name":"yavarouski_v"},{"email":"atiq.rehman@usercentrics-ext.com","name":"atiq-uc"},{"email":"vinicius.bazanella@usercentrics-ext.com","name":"bvinicius_uc"},{"email":"islam.eldesoky@usercentrics-ext.com","name":"islameldesoky"},{"email":"bibek.rimal@usercentrics-ext.com","name":"bibekrimal.uc"}],"readme":"<div align=\"center\">\n   <a href=\"https://usercentrics.com\"><img src=\"https://usercentrics.com/wp-content/uploads/2024/09/UC_Web_Black.svg\" style=\"max-width: 250px\" alt=\"Usercentrics\" /></a>\n</div>\n\n<h1 align=\"center\">Browser SDK V3</h1>\n<blockquote align=\"center\">\nA lightweight, framework-agnostic SDK for building custom consent management solutions.\n</blockquote>\n\n<p align=\"center\">\n    <a href=\"https://usercentrics.com/\"><b>Website</b></a> •\n    <a href=\"https://usercentrics.com/docs\"><b>Documentation (Coming Soon)</b></a>\n</p>\n\n<div align=\"center\">\n\n[![npm version](https://img.shields.io/npm/v/@usercentrics/cmp-web-sdk.svg?style=flat-square)](https://www.npmjs.com/package/@usercentrics/cmp-web-sdk)\n[![install size](https://img.shields.io/badge/dynamic/json?url=https://packagephobia.com/v2/api.json?p=@usercentrics/cmp-web-sdk&query=$.install.pretty&label=install%20size&style=flat-square)](https://packagephobia.now.sh/result?p=@usercentrics/cmp-web-sdk)\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@usercentrics/cmp-web-sdk?style=flat-square)](https://bundlephobia.com/package/@usercentrics/cmp-web-sdk@latest)\n[![npm downloads](https://img.shields.io/npm/dm/@usercentrics/cmp-web-sdk.svg?style=flat-square)](https://npm-stat.com/charts.html?package=@usercentrics/cmp-web-sdk)\n\n</div>\n\n## Overview\n\nBrowser SDK V3 is a lightweight headless library which you can integrate with your own custom user interface for consent management\n\n> 💡 The SDK includes full TypeScript definitions for all exported classes and methods.\n\n## Table of Contents\n\n  - [Installing](#installing)\n    - [Package manager](#package-manager)\n  - [Example](#example)\n  - [Usercentrics API](#usercentrics-api)\n    - [Applying Consent](#applying-consent)\n      - [acceptAllConsents](#acceptallconsents)\n      - [denyAllConsents](#denyallconsents)\n      - [updateServiceConsent](#updateserviceconsent)\n      - [updateServicesConsents](#updateservicesconsents)\n      - [updateCategoryConsent](#updatecategoryconsent)\n      - [updateCategoriesConsents](#updatecategoriesconsents)\n      - [saveConsents](#saveconsents)\n    - [Data](#data)\n      - [getServices](#getservices)\n      - [getServicesBaseInfo](#getservicesbaseinfo)\n      - [getCategories](#getcategories)\n      - [getLanguages](#getlanguages)\n    - [Other methods](#other-methods)\n      - [changeLanguage](#changelanguage)\n      - [areAllConsentsAccepted](#areallconsentsaccepted)\n      - [areAllConsentsDenied](#areallconsentsdenied)\n      - [getIsConsentRequired](#getisconsentrequired)\n  - [Implementation Examples](#implementation-examples)\n  - [Building your custom TCF UI](#considerations-for-building-your-custom-tcf-ui)\n  - [License](#license)\n\n## Installing\n\n### Package manager\n\nUsing npm:\n\n```bash\n$ npm install @usercentrics/cmp-web-sdk\n```\n\nUsing yarn:\n\n```bash\n$ yarn add @usercentrics/cmp-web-sdk\n```\n\nOnce the package is installed, you can import the library using `import` or `require` approach:\n\n```js\nimport WebSdk, {GdprWebSdk} from '@usercentrics/cmp-web-sdk'\n```\n\nYou can also use the default export, for a more generic approach:\n\n```js\nimport WebSdk from '@usercentrics/cmp-web-sdk';\n````\n\nIf you use `require` for importing, **only default export is available**:\n\n```js\nconst WebSdk = require('@usercentrics/cmp-web-sdk');\n```\n\nFor some bundlers and some ES6 linters you may need to do the following:\n\n```js\nimport { default as WebSdk } from '@usercentrics/cmp-web-sdk';\n```\n\n## Example\n\nInitializing the generic SDK\n```js\nimport WebSdk from '@usercentrics/cmp-web-sdk';\n\n(async () => {\n    // Create the SDK instance\n    const webSdk = new WebSdk();\n    const cmpController = await webSdk.initBySetting('YOUR_SETTINGS_ID'); // Initialize the SDK with your SettingsId\n})();\n```\n\nInitializing the GDPR-specific SDK\n```js\nimport { GdprWebSdk } from '@usercentrics/cmp-web-sdk';\n\n(async () => {\n    // Create the SDK instance\n    const webSdk = new GdprWebSdk();\n    // Initialize the SDK with your SettingsId\n    const cmpController = await webSdk.initBySetting('YOUR_SETTINGS_ID'); \n})();\n```\n\nInitializing the TCF-specific SDK\n```js\nimport { TcfWebSdk } from '@usercentrics/cmp-web-sdk';\n\n(async () => {\n    // Create the SDK instance\n    const webSdk = new TcfWebSdk();\n    // Initialize the SDK with your SettingsId\n    const cmpController = await webSdk.initBySetting('YOUR_SETTINGS_ID'); \n})();\n```\n\nInitializing the US-specific SDK\n```js\nimport { UsWebSdk } from '@usercentrics/cmp-web-sdk';\n\n(async () => {\n    // Create the SDK instance\n    const webSdk = new UsWebSdk();\n    // Initialize the SDK with your SettingsId\n    const cmpController = await webSdk.initBySetting('YOUR_SETTINGS_ID');\n})();\n```\n\n## Usercentrics API\n\n### Applying Consent\n\n##### acceptAllConsents\n\n```js\nawait webSdk.acceptAllConsents();\n```\n\n##### denyAllConsents\n\n```js\nawait webSdk.denyAllConsents();\n```\n\n##### updateServiceConsent\n\nUpdate a single service consent\n\n```js\nawait webSdk.updateServiceConsent({\n    id: 'SERVICE_ID',\n    consent: true, // or false\n});\n```\n\n##### updateServicesConsents\n\nUpdate multiple services consents\n\n```js\nawait webSdk.updateServicesConsents([\n  {\n    id: 'SERVICE_ID_1',\n    consent: true, // or false\n  },\n  {\n    id: 'SERVICE_ID_2',\n    consent: false, // or true\n  }\n]);\n```\n\n##### updateCategoryConsent\n\nUpdate a Category consent\n\n```js\nawait webSdk.updateCategoryConsent({\n  id: 'CATEGORY_ID',\n  consent: true, // or false\n});\n```\n\n##### updateCategoriesConsents\n\nUpdate multiple categories consents\n\n```js\nawait webSdk.updateCategoriesConsents([\n  {\n    id: 'CATEGORY_ID_1',\n    consent: true, // or false\n  },\n  {\n    id: 'CATEGORY_ID_2',\n    consent: false, // or true\n  },\n]);\n```\n\n#### saveConsents\n\n> **Note**: Consent usage\n> All of the above methods just change the consent state internally\n> to persist the user decision (e.g. after a save consent button click by the user) you need to persist/save the consents\n\n```js\nawait webSdk.saveConsents();\n```\n\n### Data\n\n#### getServices\n```js\nawait webSdk.getServices();\n```\n\n#### getServicesBaseInfo\n```js\nawait webSdk.getServicesBaseInfo();\n```\n\n#### getCategories\n```js\nawait webSdk.getCategories();\n```\n\n#### getLanguages\n```js\nawait webSdk.getLanguages();\n```\n\n### Other methods\n\n#### changeLanguage\nChange the language to a supported language\nFor the list of supported languages, please refer to [getLanguages](#getLanguages)\n```js\nawait webSdk.changeLanguage('en');\n```\n\n#### areAllConsentsAccepted\nReturns `true` if all the consents are accepted\n```js\nconst allConsentsAccepted = await webSdk.areAllConsentsAccepted();\n```\n\n#### areAllConsentsDenied\nReturns `true` if all the consents are denied\n```js\nconst allConsentsDenied = await webSdk.areAllConsentsDenied();\n```\n\n#### getIsConsentRequired\nReturns `true` if a user decision is needed\n```js\nconst isConsentRequired = await webSdk.getIsConsentRequired();\n```\n\n## Implementation Examples\n\n### GDPR\n\n```js\n// import GDPR optimized GdprWebSdk\nimport { GdprWebSdk, GdprCmpController, UiView } from '@usercentrics/cmp-web-sdk';\n\n// Vanilla JS view\nclass CmpView {\n  private cmpController: GdprCmpController;\n  private cmpElement: HTMLDivElement;\n\n  constructor(cmpController: GdprCmpController) {\n    this.cmpController = cmpController;\n  }\n\n  public async init() {\n    // create and attach the ui view\n      \n    const cmpElement = document.createElement('div');\n    cmpElement.id = 'cmp';\n\n    if (typeof cmpElement.attachShadow === 'function') {\n      // optional: attach shadow\n      cmpElement.attachShadow({ mode: 'open' });\n    }\n\n    this.cmpElement = (cmpElement.shadowRoot as HTMLDivElement) || cmpElement;\n    this.setView(this.cmpController.ui.initialView || 'none');\n\n    return new Promise((resolve) => {\n      if (document.body) {\n        document.body.appendChild(cmpElement);\n        resolve();\n      }\n\n      document.addEventListener('DOMContentLoaded', () => {\n        document.body.append(cmpElement);\n        resolve();\n      });\n    });\n  }\n\n  public setView(view: UiView) {\n    const consents = JSON.stringify(this.cmpController.dps.getServicesConsents()); // data example\n\n    switch (view) {\n      case 'none':\n        // do not show the cmp, do not show a cmp button/trigger\n        this.cmpElement.innerHTML = '';\n        break;\n      case 'button':\n        // do not show the cmp, show a cmp button/trigger\n        this.cmpElement.innerHTML = 'custom button view';\n        break;\n      case 'first':\n        // the cmp needs to be shown\n        this.cmpElement.innerHTML = `custom first layer view: ${consents}`;\n        break;\n      case 'second':\n        //  the optional custom secondary layer (never an initial view)\n        this.cmpElement.innerHTML = `custom second layer view ${consents}`;\n        break;\n    }\n  }\n}\n\n(async () => {\n  const gdprWebSdk = new GdprWebSdk();\n  const gdprCmpController = await gdprWebSdk.initBySetting('YOUR_GDPR_SETTINGS_ID');\n\n  const cmpView = new CmpView(gdprCmpController);\n  await cmpView.init();\n})();\n```\n\n## Considerations for building your custom TCF UI\n\n> Note: This does NOT apply if you use the unaltered Usercentrics UI together with this SDK\n\nIf you plan to build your own custom UI for TCF, Usercentrics cannot be liable that your custom UI conforms to all the IAB rules and guidelines. In this case, you can still use this SDK, but you need to register your solution at the IAB yourself. You can then enter your cmp-id (provided by the IAB) and cmp-version through the Usercentrics Admin Interface.\n\nIn the case that you build your own TCF UI it is **NOT** allowed to use the default Usercentrics cmp-id and cmp-version.\n\n## License\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)","readmeFilename":"README.md"}