{"_id":"@adv-re/vendor-by-consents-loader","_rev":"26-9d33eabed6d9e2b78beeb6ed0b2be0c9","name":"@adv-re/vendor-by-consents-loader","dist-tags":{"latest":"1.4.0"},"versions":{"1.3.0":{"name":"@adv-re/vendor-by-consents-loader","version":"1.3.0","keywords":[],"author":"","license":"ISC","_id":"@adv-re/vendor-by-consents-loader@1.3.0","maintainers":[{"name":"andresadv","email":"andres.alvarez@adevinta.com"},{"name":"adv-re-bot","email":"gp.es.dev.front.realestate.scmspain.com@adevinta.com"},{"name":"oscar_ramirez","email":"oscar.ramirez@adevinta.com"},{"name":"alfredo.narvaez","email":"alfredo.narvaez@adevinta.com"},{"name":"oriol.puig","email":"oriol.puig@adevinta.com"},{"name":"eric-darbra","email":"eric.darbra@adevinta.com"},{"name":"guillemgc3","email":"guillem.catala@adevinta.com"},{"name":"marc.benito","email":"marc.benito@adevinta.com"},{"name":"jenifer.lopez","email":"jenifer.lopez@adevinta.com"},{"name":"candymd","email":"candy.montero@adevinta.com"},{"name":"arturo.vicente","email":"arturo.vicente@adevinta.com"},{"name":"oriol.hilari","email":"oriol.hilari@adevinta.com"},{"name":"ignacio.rodriguez","email":"ignacio.rodriguez@adevinta.com"},{"name":"victor.perez.adevinta","email":"victor.perez@adevinta.com"},{"name":"alex.castells","email":"alex.castells@adevinta.com"},{"name":"pablo.rey-adevinta","email":"pablo.rey@adevinta.com"},{"name":"a.ferrer","email":"aleix.ferrer@adevinta.com"},{"name":"alverd004","email":"albert.font@adevinta.com"},{"name":"marian.lucaci","email":"marian.lucaci@adevinta.com"},{"name":"sergio.escano","email":"sergio.escano@adevinta.com"},{"name":"andresin87.adevinta","email":"andres.lucas@adevinta.com"},{"name":"oscar.gomez","email":"oscar.gomez@adevinta.com"},{"name":"david.nieto","email":"david.nieto@adevinta.com"},{"name":"florinz","email":"florin.zamfirescu.ext@adevinta.com"}],"dist":{"shasum":"b42cf83ea1576ab1af001d9138fa47f32799662d","tarball":"https://registry.npmjs.org/@adv-re/vendor-by-consents-loader/-/vendor-by-consents-loader-1.3.0.tgz","fileCount":13,"integrity":"sha512-cUa4/QmbqjM7r/hJlcCLH/AVfoxK/ttST1vTxzUgSu+Yk0B4PwuBOZfIQ6nCQhGTpk0eVGK7iJtPmRdYtJpY4w==","signatures":[{"sig":"MEUCIAnGhqpsxNpe8HKcZVHqCdLqDIAl3Xrnxh6d+aZYeBHmAiEAvRJKzvaNbaj8ToVAuT4iAFsmP7VckpVuBQOK5LvuU9Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18696},"main":"lib/index.js","babel":{"presets":["sui"]},"config":{"sui-mono":{"access":"public"}},"gitHead":"7c2f3bbcafd4058f918cd3c1b07f1c81d2bd509c","scripts":{"ci":"npm ci","co":"sui-mono commit","lib":"npx rimraf ./lib && npx mkdirp ./lib && sui-js-compiler","umd":"sui-bundler lib src-umd/index.js -o umd/ -p --root","lint":"sui-lint js","test":"echo \"Error: no test specified\"","fixlock":"npm install --package-lock-only","phoenix":"rm -rf node_modules package-lock.json && npm install","prepare":"npm run lib && npm run umd","updatelock":"npm update --package-lock-only"},"_npmUser":{"name":"adv-re-bot","email":"gp.es.dev.front.realestate.scmspain.com@adevinta.com"},"prettier":"./node_modules/@s-ui/lint/.prettierrc.js","stylelint":{"extends":"./node_modules/@s-ui/lint/stylelint.config.js"},"repository":{"url":"git@github.mpi-internal.com:adevinta-realestate/frontend-common--vendor-by-consents-loader.git","type":"git"},"_npmVersion":"10.2.3","description":"Load vendors according to the allowed user's consents","directories":{},"sideEffects":false,"_nodeVersion":"20.10.0","dependencies":{"@s-ui/js":"2"},"eslintConfig":{"extends":["./node_modules/@s-ui/lint/eslintrc.js"]},"_hasShrinkwrap":false,"devDependencies":{"@babel/cli":"7","@s-ui/lint":"4","@s-ui/mono":"2","@s-ui/test":"6","@s-ui/bundler":"9","babel-preset-sui":"3","@s-ui/js-compiler":"1"},"_npmOperationalInternal":{"tmp":"tmp/vendor-by-consents-loader_1.3.0_1739974345356_0.9383283654412482","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@adv-re/vendor-by-consents-loader","version":"1.4.0","keywords":[],"author":"","license":"ISC","_id":"@adv-re/vendor-by-consents-loader@1.4.0","maintainers":[{"name":"andresadv","email":"andres.alvarez@adevinta.com"},{"name":"adv-re-bot","email":"gp.es.dev.front.realestate.scmspain.com@adevinta.com"},{"name":"oscar_ramirez","email":"oscar.ramirez@adevinta.com"},{"name":"alfredo.narvaez","email":"alfredo.narvaez@adevinta.com"},{"name":"oriol.puig","email":"oriol.puig@adevinta.com"},{"name":"eric-darbra","email":"eric.darbra@adevinta.com"},{"name":"guillemgc3","email":"guillem.catala@adevinta.com"},{"name":"marc.benito","email":"marc.benito@adevinta.com"},{"name":"jenifer.lopez","email":"jenifer.lopez@adevinta.com"},{"name":"candymd","email":"candy.montero@adevinta.com"},{"name":"arturo.vicente","email":"arturo.vicente@adevinta.com"},{"name":"oriol.hilari","email":"oriol.hilari@adevinta.com"},{"name":"ignacio.rodriguez","email":"ignacio.rodriguez@adevinta.com"},{"name":"victor.perez.adevinta","email":"victor.perez@adevinta.com"},{"name":"alex.castells","email":"alex.castells@adevinta.com"},{"name":"pablo.rey-adevinta","email":"pablo.rey@adevinta.com"},{"name":"a.ferrer","email":"aleix.ferrer@adevinta.com"},{"name":"alverd004","email":"albert.font@adevinta.com"},{"name":"marian.lucaci","email":"marian.lucaci@adevinta.com"},{"name":"sergio.escano","email":"sergio.escano@adevinta.com"},{"name":"andresin87.adevinta","email":"andres.lucas@adevinta.com"},{"name":"oscar.gomez","email":"oscar.gomez@adevinta.com"},{"name":"david.nieto","email":"david.nieto@adevinta.com"},{"name":"florinz","email":"florin.zamfirescu.ext@adevinta.com"},{"name":"turo-lopez","email":"arturo.lopez@adevinta.com"},{"name":"adria.velardos","email":"adria.velardos@adevinta.com"},{"name":"carlos.gonzalezl","email":"carlos.gonzalezl@adevinta.com"},{"name":"zecafernandez","email":"josecarlos.fernandez@adevinta.com"},{"name":"ruben-martin","email":"ruben.martin@adevinta.com"},{"name":"rusabe","email":"joseruben.saez@adevinta.com"},{"name":"aitor.rodriguez","email":"aitor.rodriguez@adevinta.com"}],"dist":{"shasum":"4d0202b5cf2510c41b003855338ad7737f5e4967","tarball":"https://registry.npmjs.org/@adv-re/vendor-by-consents-loader/-/vendor-by-consents-loader-1.4.0.tgz","fileCount":13,"integrity":"sha512-0tJ5Q9fFvIEtaxuIuWzkNQ0E+W/RkLE9a6WTjuW3d7Ujr+oewSKHG6Ct5Hfw6aKKVwwpvNYVDinINzXrwpkGdA==","signatures":[{"sig":"MEQCIFFitEQyN8m4qOMjn/+BcHDi2/sFDzSeGWLtPdYGulj2AiBlLzukFBJIpLiiih3MnTOhKTpwDngy0DuTDgv1XUfjrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18936},"main":"lib/index.js","babel":{"presets":["sui"]},"config":{"sui-mono":{"access":"public"}},"gitHead":"6849e87ff52c2b453c254b25de947b6dd9c08db0","scripts":{"ci":"npm ci","co":"sui-mono commit","lib":"npx rimraf ./lib && npx mkdirp ./lib && sui-js-compiler","umd":"sui-bundler lib src-umd/index.js -o umd/ -p --root","lint":"sui-lint js","test":"echo \"Error: no test specified\"","fixlock":"npm install --package-lock-only","phoenix":"rm -rf node_modules package-lock.json && npm install","prepare":"npm run lib && npm run umd","updatelock":"npm update --package-lock-only"},"_npmUser":{"name":"adv-re-bot","email":"gp.es.dev.front.realestate.scmspain.com@adevinta.com"},"prettier":"./node_modules/@s-ui/lint/.prettierrc.js","stylelint":{"extends":"./node_modules/@s-ui/lint/stylelint.config.js"},"repository":{"url":"git@github.mpi-internal.com:adevinta-realestate/frontend-common--vendor-by-consents-loader.git","type":"git"},"_npmVersion":"10.2.3","description":"Load vendors according to the allowed user's consents","directories":{},"sideEffects":false,"_nodeVersion":"20.10.0","dependencies":{"@s-ui/js":"2"},"eslintConfig":{"extends":["./node_modules/@s-ui/lint/eslintrc.js"]},"_hasShrinkwrap":false,"devDependencies":{"@babel/cli":"7","@s-ui/lint":"4","@s-ui/mono":"2","@s-ui/test":"6","@s-ui/bundler":"9","babel-preset-sui":"3","@s-ui/js-compiler":"1"},"_npmOperationalInternal":{"tmp":"tmp/vendor-by-consents-loader_1.4.0_1756816700701_0.5976722992863899","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-02-19T14:12:25.291Z","modified":"2026-09-30T12:18:14.902Z","1.3.0":"2025-02-19T14:12:25.542Z","1.4.0":"2025-09-02T12:38:20.872Z"},"license":"ISC","keywords":[],"repository":{"url":"git@github.mpi-internal.com:adevinta-realestate/frontend-common--vendor-by-consents-loader.git","type":"git"},"description":"Load vendors according to the allowed user's consents","maintainers":[{"email":"oscar.raig@adevinta.com","name":"oscar-raig-adevinta"},{"email":"miquel.rossello@adevinta.com","name":"miquelrossello.fcgroup"},{"email":"alex.graupera@fotocasa.es","name":"alex.graupera"},{"email":"claudia.demedio@adevinta.com","name":"claudia.demedio"},{"email":"raul.herranz@adevinta.com","name":"raul.herranz"},{"email":"joan.lafulla@adevinta.com","name":"joanlafulla"},{"email":"andres.alvarez@adevinta.com","name":"andresadv"},{"email":"alejandro.munoz@adevinta.com","name":"alejandro-munoz"},{"email":"sarai.risueno@adevinta.com","name":"sarai.rm"},{"email":"tharakiamaya.panabokke.ext@adevinta.com","name":"tharaki_adevinta"},{"email":"oriol.soler@adevinta.com","name":"osoler"},{"email":"german.gonzalez.ext@adevinta.com","name":"german.gonzalez.ext"},{"email":"anna.marrodan@adevinta.com","name":"anna.marrodan"},{"email":"gp.es.dev.front.realestate.scmspain.com@adevinta.com","name":"adv-re-bot"},{"email":"alexandru.simonescu@adevinta.com","name":"alxsimo_adv"},{"email":"oscar.ramirez@adevinta.com","name":"oscar_ramirez"},{"email":"alfredo.narvaez@adevinta.com","name":"alfredo.narvaez"},{"email":"oriol.puig@adevinta.com","name":"oriol.puig"},{"email":"eric.darbra@adevinta.com","name":"eric-darbra"},{"email":"guillem.catala@adevinta.com","name":"guillemgc3"},{"email":"marc.benito@adevinta.com","name":"marc.benito"},{"email":"jenifer.lopez@adevinta.com","name":"jenifer.lopez"},{"email":"candy.montero@adevinta.com","name":"candymd"},{"email":"arturo.vicente@adevinta.com","name":"arturo.vicente"},{"email":"oriol.hilari@adevinta.com","name":"oriol.hilari"},{"email":"ignacio.rodriguez@adevinta.com","name":"ignacio.rodriguez"},{"email":"victor.perez@adevinta.com","name":"victor.perez.adevinta"},{"email":"alex.castells@adevinta.com","name":"alex.castells"},{"email":"pablo.rey@adevinta.com","name":"pablo.rey-adevinta"},{"email":"aleix.ferrer@adevinta.com","name":"a.ferrer"},{"email":"marc.pou@fotocasa.es","name":"marc.pou"},{"email":"albert.font@adevinta.com","name":"alverd004"},{"email":"fernando.coca@adevinta.com","name":"fernando.coca"},{"email":"fernando.aparicio@adevinta.com","name":"fernando.aparicio.advnta"},{"email":"marian.lucaci@adevinta.com","name":"marian.lucaci"},{"email":"sergio.escano@adevinta.com","name":"sergio.escano"},{"email":"andres.lucas@adevinta.com","name":"andresin87.adevinta"},{"email":"oscar.gomez@adevinta.com","name":"oscar.gomez"},{"email":"david.nieto@adevinta.com","name":"david.nieto"},{"email":"florin.zamfirescu.ext@adevinta.com","name":"florinz"},{"email":"arturo.lopez@adevinta.com","name":"turo-lopez"},{"email":"adria.velardos@adevinta.com","name":"adria.velardos"},{"email":"carlos.gonzalezl@adevinta.com","name":"carlos.gonzalezl"},{"email":"josecarlos.fernandez@adevinta.com","name":"zecafernandez"},{"email":"ruben.martin@adevinta.com","name":"ruben-martin"},{"email":"joseruben.saez@adevinta.com","name":"rusabe"},{"email":"aitor.rodriguez@adevinta.com","name":"aitor.rodriguez"},{"email":"mircea.sima.ext@adevinta.com","name":"mirceasima-adv"},{"email":"bianca.mateiu.ext@adevinta.com","name":"biancamateiu-adv"}],"readme":"# Vendor by Consents Loader\n\nSet of utilities to load vendors scripts according to user consents.\n\nYou only need to define `purposes` and `specialFeatureOptins` as they're the only configurable consents on the `tfc`.\n\n**🔴 IMPORTANT:** Before following the README, be sure you're loading the [Stub from Boros TCF](https://github.mpi-internal.com/scmspain/frontend-adit--uilib-boros-tcf/blob/master/components/stub/core/SCRIPT.md) as it's required.\n\n## Loading list of vendors\n\n```js\nimport {\n  initVendorConsentsLoader,\n  addVendorLoadedEventListener\n} from '@adv-re/vendor-by-consents-loader'\n\nconst OPTIMIZELY_KEY = 'optimizely'\n\ninitVendorConsentsLoader({\n  vendors: {\n    tealium: {\n      script: 'https://frtassets.fotocasa.es/external-scripts/utag-pro.js',\n      consents: {\n        purposes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n        specialFeatureOptins: [1]\n      }\n    },\n    [OPTIMIZELY_KEY]: {\n      script: 'https://frtassets.fotocasa.es/external-scripts/optimizely.js',\n      consents: {\n        purposes: [1, 2]\n      }\n    }\n  }\n})\n\naddVendorLoadedEventListener(({vendor}) => {\n  vendor === OPTIMIZELY_KEY && console.log('Optimizely has been loaded')\n})\n```\n\n## Loading a single vendor\n\nIn some cases you might want to load a single vendor later in your code:\n\n```js\nimport {\n  loadSingleVendorByConsent,\n  addVendorLoadedEventListener\n} from '@adv-re/vendor-by-consents-loader'\n\nconst GOOGLE_ADSENSE_KEY = 'google_adsense'\n\nloadSingleVendorByConsent({\n  name: GOOGLE_ADSENSE_KEY,\n  script: 'https://google.com/ads.js',\n  consents: {\n    purposes: [5, 6]\n  }\n})\n\naddVendorLoadedEventListener(({vendor}) => {\n  vendor === GOOGLE_ADSENSE_KEY && console.log('Google has been loaded')\n})\n```\n\nYou can also set a vendor configuration without an specific `script` in case the vendor doesn't require it to work:\n\n```js\nimport {\n  loadSingleVendorByConsent,\n  addVendorLoadedEventListener\n} from '@adv-re/vendor-by-consents-loader'\n\nconst RTB_HOUSE_KEY = 'rtb_house'\n\nloadSingleVendorByConsent({\n  name: RTB_HOUSE_KEY,\n  consents: {\n    purposes: [2, 6]\n  }\n})\n\naddVendorLoadedEventListener(({vendor}) => {\n  vendor === RTB_HOUSE_KEY && console.log('RTB House is ready')\n})\n```\n\n## Loading specific vendors\n\nSome vendors are used across all Adevinta Spain products and, for sake of convenience, they've their own script to load them.\n\n### Comscore\n\n```js\nimport {\n  addVendorLoadedEventListener,\n  loadComscore\n} from '@adv-re/vendor-by-consents-loader'\n\nloadComscore({comscoreClientId: '7109919'})\n\naddVendorLoadedEventListener(({vendor}) => {\n  vendor === 'comscore' && console.log('Comscore has been loaded')\n})\n```\n\n## Using it in Monolithic apps\n\n```html\n// First load the UMD module.\n<script src=\"https://unpkg.com/@adv-re/vendor-by-consents-loader/umd/index.js\"></script>\n<script>\n  // load comscore\n  window.sui.vendors.loadComscore({comscoreClientId: '7109919'})\n  // init vendors loader by consents\n  window.sui.vendors.initVendorConsentsLoader({\n    vendors: {\n      tealium: {\n        script: 'https://frtassets.fotocasa.es/external-scripts/utag-pro.js',\n        consents: {\n          purposes: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n          specialFeatureOptins: [1]\n        }\n      }\n    }\n  })\n  // load a single vendor by consents\n  window.sui.vendors.loadSingleVendorByConsent({\n    name: 'google_adsense',\n    script: 'https://google.com/ads.js',\n    consents: {\n      purposes: [5, 6]\n    }\n  })\n  // add evento for listening comscore load\n  window.sui.vendors.addVendorLoadedEventListener(({vendor}) => {\n    vendor === 'comscore' && console.log('Comscore has been loaded')\n    vendor === 'tealium' && window._utag.init()\n    vendor === 'google_adsense' && window.gads.startAds()\n  })\n  //\n</script>\n```\n\n## List of Purposes\n\n**Purposes**:\n\n- 1 - Store and/or access information on a device\n- 2 - Select basic ads\n- 3 - Create a personalised ads profile\n- 4 - Select personalised ads\n- 5 - Create a personalised content profile\n- 6 - Select personalised content\n- 7 - Measure ad performance\n- 8 - Measure content performance\n- 9 - Apply market research to generate audience insights\n- 10 - Develop and improve products\n\n**Special Purposes**\n\n- SP1 - Ensure security, prevent fraud, and debug\n- SP2 - Technically deliver ads or content\n\n**Features**\n\n- F1 - Match and combine offline data sources\n- F2 - Link different devices\n- F3 - Receive and use automatically-sent device characteristics for identification\n\n**Special Features**\n\n- SF1 - Use precise geolocation data\n- SF2 - Actively scan device characteristics for identification\n","readmeFilename":"README.md"}