{"_id":"@adv-jobs/ij-vendor-by-consents-loader","_rev":"18-c5d8fb8354bbb421eacf061fb45047d9","name":"@adv-jobs/ij-vendor-by-consents-loader","dist-tags":{"latest":"1.8.0"},"versions":{"1.6.0":{"name":"@adv-jobs/ij-vendor-by-consents-loader","version":"1.6.0","keywords":[],"author":"","license":"ISC","_id":"@adv-jobs/ij-vendor-by-consents-loader@1.6.0","maintainers":[{"name":"joanleon-adv","email":"joan.leon@adevinta.com"},{"name":"azahara","email":"azahara.martinez@adevinta.com"},{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},{"name":"ferran.simon","email":"ferran.simon@adevinta.com"},{"name":"alejandro.ferrante","email":"alejandro.ferrante@adevinta.com"},{"name":"javiermiguel","email":"manuel.miguel@adevinta.com"},{"name":"pablogs","email":"pablo.gonzalez@adevinta.com"},{"name":"sebastian.badea.adevinta","email":"sebastian.badea@adevinta.com"},{"name":"luz_adv","email":"luz.marina.ext@adevinta.com"},{"name":"beatrizip","email":"beatriz.iglesias@adevinta.com"},{"name":"pablo.rey-adevinta","email":"pablo.rey@adevinta.com"},{"name":"isabelgomez87","email":"isabel.gomez@adevinta.com"},{"name":"alisa_bayanova","email":"alisa.bayanova@adevinta.com"},{"name":"izeller","email":"irene.zeller@adevinta.com"},{"name":"atilioscolaroadv","email":"atilio.scolaro.ext@adevinta.com"},{"name":"victor.perez.adevinta","email":"victor.perez@adevinta.com"},{"name":"alex.castells","email":"alex.castells@adevinta.com"},{"name":"andresin87.adevinta","email":"andres.lucas@adevinta.com"}],"dist":{"shasum":"c28c780fb5f31497ab773b021ee7dd4c8931e2cc","tarball":"https://registry.npmjs.org/@adv-jobs/ij-vendor-by-consents-loader/-/ij-vendor-by-consents-loader-1.6.0.tgz","fileCount":12,"integrity":"sha512-3RX0a8kecnxXsJ7OnkO79N2i+8lgv9srIH1T8nU1uMjpvlXqHMF2rmzkh/qG8Jw7ReCqPrRsJajqVfeDD6Icsw==","signatures":[{"sig":"MEUCIHDryf4mcwoTGb2d5EBkMmFO2Qp+U0iefsrxFYRoFK8hAiEA5GGIg1PBMf6mOzbTF3/nX/BI1hcwm5lYEcwkHJXWp/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29557},"main":"lib/index.js","babel":{"presets":["sui"]},"config":{"sui-mono":{"access":"public"}},"gitHead":"1e3137c99683ac19b58c538e79a37053f557578a","scripts":{"co":"sui-mono commit","lib":"npx rimraf ./lib && npx mkdirp ./lib && babel --presets sui ./src --out-dir ./lib","umd":"sui-bundler lib src-umd/index.js -o umd/ -p --root","lint":"sui-lint js","test":"echo \"Error: no test specified\"","phoenix":"rm -rf node_modules package-lock.json && npm install --legacy-peer-deps","prepublishOnly":"npm run lib && npm run umd"},"_npmUser":{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},"stylelint":{"extends":"./node_modules/@s-ui/lint/stylelint.config.js"},"_npmVersion":"9.6.7","description":"Load vendors according to the allowed user's consents","directories":{},"sideEffects":false,"_nodeVersion":"18.17.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.71.0","babel-preset-sui":"3"},"_npmOperationalInternal":{"tmp":"tmp/ij-vendor-by-consents-loader_1.6.0_1741611543123_0.9463940147466854","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@adv-jobs/ij-vendor-by-consents-loader","version":"1.7.0","keywords":[],"author":"","license":"ISC","_id":"@adv-jobs/ij-vendor-by-consents-loader@1.7.0","maintainers":[{"name":"joanleon-adv","email":"joan.leon@adevinta.com"},{"name":"azahara","email":"azahara.martinez@adevinta.com"},{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},{"name":"ferran.simon","email":"ferran.simon@adevinta.com"},{"name":"alejandro.ferrante","email":"alejandro.ferrante@adevinta.com"},{"name":"javiermiguel","email":"manuel.miguel@adevinta.com"},{"name":"pablogs","email":"pablo.gonzalez@adevinta.com"},{"name":"sebastian.badea.adevinta","email":"sebastian.badea@adevinta.com"},{"name":"luz_adv","email":"luz.marina.ext@adevinta.com"},{"name":"beatrizip","email":"beatriz.iglesias@adevinta.com"},{"name":"pablo.rey-adevinta","email":"pablo.rey@adevinta.com"},{"name":"isabelgomez87","email":"isabel.gomez@adevinta.com"},{"name":"alisa_bayanova","email":"alisa.bayanova@adevinta.com"},{"name":"izeller","email":"irene.zeller@adevinta.com"},{"name":"atilioscolaroadv","email":"atilio.scolaro.ext@adevinta.com"},{"name":"victor.perez.adevinta","email":"victor.perez@adevinta.com"},{"name":"alex.castells","email":"alex.castells@adevinta.com"},{"name":"andresin87.adevinta","email":"andres.lucas@adevinta.com"},{"name":"david.nieto","email":"david.nieto@adevinta.com"},{"name":"miquel.ferran","email":"miquel.ferran@adevinta.com"}],"dist":{"shasum":"386f00a21db25dca2e36f1379281dd975ca1e9e7","tarball":"https://registry.npmjs.org/@adv-jobs/ij-vendor-by-consents-loader/-/ij-vendor-by-consents-loader-1.7.0.tgz","fileCount":12,"integrity":"sha512-+VF/Sfal2LhCIE2+5792GrObgeR+5oKLfKyo4D+X/b5qwS4YCPtoPsUzaLLHpk6gnzQNhtdKOWdLmtY+3VZSSA==","signatures":[{"sig":"MEUCIE5zyHCyzVuGoqferFGDawYmtJzLEs5WtEC7ls4cZkHaAiEApXmgYYxrpk+M8RQHtkueVGmGNCg9ahTuCWkUZhPXUb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30000},"main":"lib/index.js","babel":{"presets":["sui"]},"config":{"sui-mono":{"access":"public"}},"gitHead":"eb89e19fac963e194675cd9f2744b042d378fb5c","scripts":{"co":"sui-mono commit","lib":"npx rimraf ./lib && npx mkdirp ./lib && babel --presets sui ./src --out-dir ./lib","umd":"sui-bundler lib src-umd/index.js -o umd/ -p --root","lint":"sui-lint js","test":"echo \"Error: no test specified\"","phoenix":"rm -rf node_modules package-lock.json && npm install --legacy-peer-deps","prepublishOnly":"npm run lib && npm run umd"},"_npmUser":{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},"stylelint":{"extends":"./node_modules/@s-ui/lint/stylelint.config.js"},"_npmVersion":"10.9.2","description":"Load vendors according to the allowed user's consents","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","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":"8.42.0","@s-ui/bundler":"9.71.0","babel-preset-sui":"3"},"_npmOperationalInternal":{"tmp":"tmp/ij-vendor-by-consents-loader_1.7.0_1762357921841_0.29974054465170274","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@adv-jobs/ij-vendor-by-consents-loader","version":"1.8.0","keywords":[],"author":"","license":"ISC","_id":"@adv-jobs/ij-vendor-by-consents-loader@1.8.0","maintainers":[{"name":"joanleon-adv","email":"joan.leon@adevinta.com"},{"name":"daniela.aguilera","email":"daniela.aguilera@adevinta.com"},{"name":"azahara","email":"azahara.martinez@adevinta.com"},{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},{"name":"ferran.simon","email":"ferran.simon@adevinta.com"},{"name":"alejandro.ferrante","email":"alejandro.ferrante@adevinta.com"},{"name":"javiermiguel","email":"manuel.miguel@adevinta.com"},{"name":"pablogs","email":"pablo.gonzalez@adevinta.com"},{"name":"sebastian.badea.adevinta","email":"sebastian.badea@adevinta.com"},{"name":"luz_adv","email":"luz.marina.ext@adevinta.com"},{"name":"beatrizip","email":"beatriz.iglesias@adevinta.com"},{"name":"pablo.rey-adevinta","email":"pablo.rey@adevinta.com"},{"name":"isabelgomez87","email":"isabel.gomez@adevinta.com"},{"name":"alisa_bayanova","email":"alisa.bayanova@adevinta.com"},{"name":"izeller","email":"irene.zeller@adevinta.com"},{"name":"atilioscolaroadv","email":"atilio.scolaro.ext@adevinta.com"},{"name":"victor.perez.adevinta","email":"victor.perez@adevinta.com"},{"name":"alex.castells","email":"alex.castells@adevinta.com"},{"name":"andresin87.adevinta","email":"andres.lucas@adevinta.com"},{"name":"david.nieto","email":"david.nieto@adevinta.com"},{"name":"miquel.ferran","email":"miquel.ferran@adevinta.com"}],"dist":{"shasum":"9a56114efb442d60fb99621e97ea31d590777952","tarball":"https://registry.npmjs.org/@adv-jobs/ij-vendor-by-consents-loader/-/ij-vendor-by-consents-loader-1.8.0.tgz","fileCount":12,"integrity":"sha512-4HDWnadYt58ifcUTYv+3Wq45+d7mrLg9knAG2fWNV+XtI2GjFc8/GrB1S7UgbDjFTxfHSKUe/IiHlnjiUm2+kg==","signatures":[{"sig":"MEUCIQCGmcagf8bNnja/xO7GUQiYUucht+VDvhrrpVl2wTC5MQIgBVwI04wTCOpG61ngZ5XfhtPEABfgHyCOl5Ghwb/H0as=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30206},"main":"lib/index.js","babel":{"presets":["sui"]},"config":{"sui-mono":{"access":"public"}},"gitHead":"5f6f2db272f6910d5361bc6fb2c70d8463b5d1db","scripts":{"co":"sui-mono commit","lib":"npx rimraf ./lib && npx mkdirp ./lib && babel --presets sui ./src --out-dir ./lib","umd":"sui-bundler lib src-umd/index.js -o umd/ -p --root","lint":"sui-lint js","test":"echo \"Error: no test specified\"","phoenix":"rm -rf node_modules package-lock.json && npm install --legacy-peer-deps","prepublishOnly":"npm run lib && npm run umd"},"_npmUser":{"name":"frontend-jobs","email":"gp.es.int.frontend-jobs@adevinta.com"},"stylelint":{"extends":"./node_modules/@s-ui/lint/stylelint.config.js"},"_npmVersion":"10.9.2","description":"Load vendors according to the allowed user's consents","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","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":"8.42.0","@s-ui/bundler":"9.71.0","babel-preset-sui":"3"},"_npmOperationalInternal":{"tmp":"tmp/ij-vendor-by-consents-loader_1.8.0_1764086156509_0.9593633981581708","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-03-10T12:59:02.999Z","modified":"2026-09-30T13:14:43.763Z","1.6.0":"2025-03-10T12:59:03.322Z","1.7.0":"2025-11-05T15:52:02.024Z","1.8.0":"2025-11-25T15:55:56.705Z"},"license":"ISC","keywords":[],"description":"Load vendors according to the allowed user's consents","maintainers":[{"email":"toni.navarro@adevinta.com","name":"toninavarro"},{"email":"marcel.gimeno@adevinta.com","name":"marcelgimenoroman"},{"email":"cristina.vilchez@adevinta.com","name":"crisvido"},{"email":"ionut.bostan@adevinta.com","name":"ionut.bostan"},{"email":"javier.chicharro@adevinta.com","name":"javich"},{"email":"daniela.aguilera@adevinta.com","name":"daniela.aguilera"},{"email":"josep.delval.ext@adevinta.com","name":"josep.delval.ext"},{"email":"ioxe.barinaga@adevinta.com","name":"ioxe"},{"email":"marc.sarroca@adevinta.com","name":"marc.sarroca.adevinta"},{"email":"azahara.martinez@adevinta.com","name":"azahara"},{"email":"donato.pestana.ext@adevinta.com","name":"donato.pestana.adv"},{"email":"gp.es.int.frontend-jobs@adevinta.com","name":"frontend-jobs"},{"email":"jaume.jane@adevinta.com","name":"jaumejane"},{"email":"oscar.raig@adevinta.com","name":"oscar-raig-adevinta"},{"email":"alfredo.arronte@infojobs.net","name":"alfredo.arronte-infojobs"},{"email":"ferran.simon@adevinta.com","name":"ferran.simon"},{"email":"alejandro.ferrante@adevinta.com","name":"alejandro.ferrante"},{"email":"manuel.miguel@adevinta.com","name":"javiermiguel"},{"email":"pablo.gonzalez@adevinta.com","name":"pablogs"},{"email":"sebastian.badea@adevinta.com","name":"sebastian.badea.adevinta"},{"email":"luz.marina.ext@adevinta.com","name":"luz_adv"},{"email":"beatriz.iglesias@adevinta.com","name":"beatrizip"},{"email":"pablo.rey@adevinta.com","name":"pablo.rey-adevinta"},{"email":"isabel.gomez@adevinta.com","name":"isabelgomez87"},{"email":"alisa.bayanova@adevinta.com","name":"alisa_bayanova"},{"email":"irene.zeller@adevinta.com","name":"izeller"},{"email":"atilio.scolaro.ext@adevinta.com","name":"atilioscolaroadv"},{"email":"victor.perez@adevinta.com","name":"victor.perez.adevinta"},{"email":"alex.castells@adevinta.com","name":"alex.castells"},{"email":"andres.lucas@adevinta.com","name":"andresin87.adevinta"},{"email":"david.nieto@adevinta.com","name":"david.nieto"},{"email":"miquel.ferran@adevinta.com","name":"miquel.ferran"}],"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-jobs/ij-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-jobs/ij-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-jobs/ij-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-jobs/ij-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-jobs/ij-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"}