{"_id":"@sanity/personalisation-plugin","_rev":"83-07465424ce1727890d500d369de0f0f1","name":"@sanity/personalisation-plugin","dist-tags":{"growthbook":"1.2.0-growthbook.1","latest":"1.1.1"},"versions":{"1.0.0":{"name":"@sanity/personalisation-plugin","version":"1.0.0","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.0.0","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"bd7bfc7c609e01bd17d6d495a1e945c2abf2254b","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.0.0.tgz","fileCount":22,"integrity":"sha512-oGjITLkDN6TYsLMVtaNk2K4MZ1D9Md+Mk+hSvZq67dN0D5kb6fTH/lDC1b/2j5Jcw0DbKLco0MhEr/J0kFHlSw==","signatures":[{"sig":"MEUCIQDtMdM0XaIGbTyNFSNDlEaDoNWNjnjXJfpTbbjztPty2wIgTQfRZjRN0MetkyWqTkZl0/WNxq3Z7/7NVpwXQYSMnjw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1090595},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"74f9a2c58c2d585d99901d48dcdf9c30d4210f04","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.0","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"@sanity/ui":"^2.8.19","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/incompatible-plugin":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.64.0","prettier":"^3.3.3","react-dom":"^18.3.1","typescript":"^5.6.3","lint-staged":"^15.2.10","@types/react":"^18.3.11","@commitlint/cli":"^19.5.0","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.11.9","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.1","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.9.0","eslint-plugin-react-hooks":"^5.0.0","prettier-plugin-packagejson":"^2.5.3","@commitlint/config-conventional":"^19.5.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.9.0"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.0.0_1732546943586_0.46069467329221814","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@sanity/personalisation-plugin","version":"1.0.3","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.0.3","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"2cca97a749d267ba3d1ea010de02bf37ce3bd206","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.0.3.tgz","fileCount":22,"integrity":"sha512-emvJPytot8b8TqMKh2/pKZ35RXOnBb14brWvJyPvDVpjL6G/ezhfrHXUD3Dwaf5JyiRPhLGh4st9cCzjd5erMw==","signatures":[{"sig":"MEQCIDgMof4IBfpyn+UmVdtxiwgxg8luhF+DLWYN398gqJAcAiADlyh7ZHumd81pgfm6VMeWcIxCpOswm4vW5EHmyQApYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity%2fpersonalisation-plugin@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1090731},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f1baf6b16c089a7652579b8ee8e6c50066bd2712","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.0","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"@sanity/ui":"^2.8.19","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/incompatible-plugin":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.64.3","prettier":"^3.4.0","react-dom":"^18.3.1","typescript":"^5.6.3","lint-staged":"^15.2.10","@types/react":"^18.3.12","@commitlint/cli":"^19.6.0","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.11.12","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.2","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.16.0","eslint-plugin-react-hooks":"^5.0.0","prettier-plugin-packagejson":"^2.5.6","@commitlint/config-conventional":"^19.6.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.16.0"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.0.3_1732621688055_0.33598782109714076","host":"s3://npm-registry-packages"}},"1.1.0-growthbook.1":{"name":"@sanity/personalisation-plugin","version":"1.1.0-growthbook.1","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.1.0-growthbook.1","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"3a117e3401776d8a41d3193b7f404d51054a7952","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.1.0-growthbook.1.tgz","fileCount":25,"integrity":"sha512-Eqfd5Viz3ja5Bhkgj+djBBTTZHc1wFZIPGTW2oTRbHobfE2Yz2MCY6557jQwxVnS0LrxZQj7VnGMuymKpYbx2A==","signatures":[{"sig":"MEQCIFqcf4HhytnGosJ6gbCN2j4Iirln3ZGsI0ioHPLZrZdxAiAxBih0RRuhDEbqE4ZUY06nL1FUrJJTLvDHHpTtsrm3nQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity%2fpersonalisation-plugin@1.1.0-growthbook.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1117822},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8d059d93432307a3326d804c38c15183329f82cb","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.0","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"@sanity/ui":"^2.8.19","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/studio-secrets":"^3.0.0","@sanity/incompatible-plugin":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.64.3","prettier":"^3.4.0","react-dom":"^18.3.1","typescript":"^5.6.3","lint-staged":"^15.2.10","@types/react":"^18.3.12","@commitlint/cli":"^19.6.0","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.11.12","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.2","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.16.0","eslint-plugin-react-hooks":"^5.0.0","prettier-plugin-packagejson":"^2.5.6","@commitlint/config-conventional":"^19.6.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.16.0"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.1.0-growthbook.1_1732879991366_0.3309438600006198","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@sanity/personalisation-plugin","version":"1.1.0","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.1.0","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"},{"name":"chrislarocquesanity","email":"chris.larocque@sanity.io"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"4ea4774f2a4067c565672ffad2b4305360146cac","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.1.0.tgz","fileCount":22,"integrity":"sha512-n3Zd10E+MrPZ+bCX4vgVIwzupKh2PnQYpq4vE7iL0jt4qAlImTJBspSCNVbvsE2rRsAhjYUYIEIX5sKkinSGLg==","signatures":[{"sig":"MEQCICQd+T4VYxfx2Ps4cG9O7iPnaqvkLmlu6fCJOK+TN3P+AiB1M7iPTvxIVnGX9LH4pb3tF7FgHVQAZjj+mQ/16O2CdA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity%2fpersonalisation-plugin@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1089511},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"6525aa1286418ae27938405399ef26bfd245b156","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.0","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"@sanity/ui":"^2.8.19","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/incompatible-plugin":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.64.3","prettier":"^3.4.0","react-dom":"^18.3.1","typescript":"^5.6.3","lint-staged":"^15.2.10","@types/react":"^18.3.12","@commitlint/cli":"^19.6.0","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.11.12","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.2","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.16.0","eslint-plugin-react-hooks":"^5.0.0","prettier-plugin-packagejson":"^2.5.6","@commitlint/config-conventional":"^19.6.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.16.0"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.1.0_1733765225880_0.30212305436292186","host":"s3://npm-registry-packages-npm-production"}},"1.2.0-growthbook.1":{"name":"@sanity/personalisation-plugin","version":"1.2.0-growthbook.1","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.2.0-growthbook.1","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"},{"name":"chrislarocquesanity","email":"chris.larocque@sanity.io"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"bbe2cfcea3b4327f02323ed28af8e1a8f5499573","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.2.0-growthbook.1.tgz","fileCount":25,"integrity":"sha512-FVzIc+E4ErDfn6BUFeXdAqefEDZgNFLBJE8SCc0NmEKrpAdggOjQKO8EeUti2gf9CbxRlvBCQMlBNISrLnV4cg==","signatures":[{"sig":"MEQCICE1AQYmX8SJ0dwB4GxRJaXzus8OL6otGsJ2LPS0QpPgAiBzN+TMwyLbo9jnyQQg86ThijrtlYsImAzvIRHhpfo8kQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity%2fpersonalisation-plugin@1.2.0-growthbook.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1124147},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"e0cc75f679e285711c692f991dce33cfbd1e478d","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.0","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"@sanity/ui":"^2.8.19","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/studio-secrets":"^3.0.0","@sanity/incompatible-plugin":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.64.3","prettier":"^3.4.0","react-dom":"^18.3.1","typescript":"^5.6.3","lint-staged":"^15.2.10","@types/react":"^18.3.12","@commitlint/cli":"^19.6.0","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.11.12","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.2","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.16.0","eslint-plugin-react-hooks":"^5.0.0","prettier-plugin-packagejson":"^2.5.6","@commitlint/config-conventional":"^19.6.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.16.0"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.2.0-growthbook.1_1734621266100_0.7119641150100131","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@sanity/personalisation-plugin","version":"1.1.1","keywords":["sanity","sanity-plugin"],"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","_id":"@sanity/personalisation-plugin@1.1.1","maintainers":[{"name":"kmelve","email":"knut.melvaer@gmail.com"},{"name":"bjoerge","email":"bjoerge@gmail.com"},{"name":"rexxars","email":"espen@hovlandsdal.com"},{"name":"skogsmaskin","email":"per.kristian.nordnes@gmail.com"},{"name":"tonina","email":"zhelyazkova.tonina@gmail.com"},{"name":"mattcraig","email":"matt@sanity.io"},{"name":"joneidejohnsen","email":"jon@sanity.io"},{"name":"rubioz","email":"jarubc@gmail.com"},{"name":"robinpyon","email":"robin@robinpyon.com"},{"name":"mariuslundgard","email":"studio@mariuslundgard.com"},{"name":"sanity-io","email":"developers@sanity.io"},{"name":"evenw","email":"even@sanity.io"},{"name":"radhe_sanity","email":"radhe@sanity.io"},{"name":"rbotten","email":"rbotten@gmail.com"},{"name":"danielsgroves","email":"hello@danielgroves.net"},{"name":"judofyr","email":"judofyr@gmail.com"},{"name":"ryanblock","email":"rblock+npm@gmail.com"},{"name":"obliadp","email":"orjan@sanity.io"},{"name":"dcilke","email":"dain.cilke@gmail.com"},{"name":"madken","email":"kenneth.madsen@sanity.io"},{"name":"fredcarlsen","email":"fred@superbig.co"},{"name":"hermanw","email":"herman@sanity.io"},{"name":"tambet","email":"tambet.masik@gmail.com"},{"name":"sgulseth","email":"sgulseth@gmail.com"},{"name":"atombender","email":"npm@purefiction.net"},{"name":"simeonsanity","email":"simeon@sanity.io"},{"name":"stipsan","email":"stipsan@gmail.com"},{"name":"snorreeb","email":"snorre.e.brekke@gmail.com"},{"name":"rankers","email":"richardankers@gmail.com"},{"name":"rdunk","email":"rupert@rupertdunk.com"},{"name":"michael-sanity","email":"michael@sanity.io"},{"name":"vincentquigley","email":"vincent@sanity.io"},{"name":"ritasdias","email":"anarita151@gmail.com"},{"name":"kenjonespizza","email":"ken@sanity.io"},{"name":"rneatherway-sanity","email":"robin.neatherway@sanity.io"},{"name":"josh_sanity_io","email":"josh@sanity.io"},{"name":"cngonzalez-sanity","email":"carolina@sanity.io"},{"name":"jjburbridge","email":"jonathan.burbridge@sanity.io"},{"name":"tdfka_rick","email":"joshua.ellis18@gmail.com"},{"name":"svirs","email":"shur@sanity.io"},{"name":"ryanbonial-sanity","email":"ryan.bonial@sanity.io"},{"name":"indrek.karner","email":"indrek.karner@sanity.io"},{"name":"ash","email":"ashley@juice49.com"},{"name":"sergeisarviro","email":"sergei@sanity.io"},{"name":"refiito","email":"margus@sanity.io"},{"name":"drewsanity","email":"drew.lyton@sanity.io"},{"name":"kaspar.lippmaa.sanity","email":"kaspar.lippmaa@sanity.io"},{"name":"dam","email":"kristoferjoseph@gmail.com"},{"name":"simen.svale","email":"simen@sanity.io"},{"name":"tbeseda","email":"tbeseda@gmail.com"},{"name":"daniel.malmer","email":"daniel.malmer@sanity.io"},{"name":"jordanl17","email":"jordanl17@me.com"},{"name":"colepeters","email":"cole@colepeters.com"},{"name":"armandocerna","email":"armando@cerna.ca"},{"name":"joan_miralles_paez","email":"joan.miralles@sanity.io"},{"name":"christianhg","email":"services@groengaard.dk"},{"name":"pedro-sanity","email":"pedro@sanity.io"},{"name":"jwoods-sanity","email":"james.woods@sanity.io"},{"name":"ricokahler","email":"ricokahler@me.com"},{"name":"tiit.kass.saity","email":"tiit.kass@sanity.io"},{"name":"binoy14","email":"me@binoy.io"},{"name":"pauloborgesf","email":"paulo@sanity.io"},{"name":"ausha","email":"ausha@sanity.io"},{"name":"nuurtamo","email":"esa.nuurtamo@gmail.com"},{"name":"chrislarocquesanity","email":"chris.larocque@sanity.io"}],"homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"dist":{"shasum":"a3828f9dddcd31243e311fd1c08600b475039457","tarball":"https://registry.npmjs.org/@sanity/personalisation-plugin/-/personalisation-plugin-1.1.1.tgz","fileCount":22,"integrity":"sha512-xNsLXlAmKNvsxDjG6HNr/Ycq5a4khMgq0y4iSg7RkUriHi5fk2SATHqVPoWMOZryj8h+owe79uVtUc2QA/hWHg==","signatures":[{"sig":"MEUCIQD6cCN73G0zslE84b0S4PqXo5JjVLCS/k1Wb6LEogdPIwIgdCMe3sLN922DSSnmK5obVpoBC6eyqC1GailqKlD+Gh8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@sanity%2fpersonalisation-plugin@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2366054},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/index.mjs","source":"./src/index.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8feac833f79719e59271f060f9b50c806b0562d1","scripts":{"lint":"eslint . --fix","build":"plugin-kit verify-package --silent && pkg-utils build --strict --check --clean","watch":"pkg-utils watch --strict","format":"prettier --write --cache --ignore-unknown .","prepare":"husky","link-watch":"plugin-kit link-watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"sanity-io","email":"developers@sanity.io"},"deprecated":"Plugin has been renamed @sanity/personalization-plugin","repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"_npmVersion":"10.9.2","description":"Plugin to help with personalisation, a/b testing when using Sanity","directories":{},"resolutions":{"conventional-changelog-conventionalcommits":">= 8.0.0"},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"@sanity/ui":"^2.8.19","react-icons":"^5.4.0","@sanity/uuid":"^3.0.2","suspend-react":"^0.1.3","fast-deep-equal":"^3.1.3","@sanity/incompatible-plugin":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","react":"^18.3.1","eslint":"^8.57.1","sanity":"^3.67.1","prettier":"^3.4.2","react-dom":"^18.3.1","typescript":"^5.7.2","lint-staged":"^15.2.10","@types/react":"^18.3.17","@commitlint/cli":"^19.6.1","semantic-release":"^24.2.0","@sanity/pkg-utils":"^6.12.0","styled-components":"^6.1.13","@sanity/plugin-kit":"^4.0.18","eslint-plugin-react":"^7.37.2","eslint-config-sanity":"^7.1.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.18.1","eslint-plugin-react-hooks":"^5.1.0","prettier-plugin-packagejson":"^2.5.6","@commitlint/config-conventional":"^19.6.0","@sanity/semantic-release-preset":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.18.1"},"peerDependencies":{"react":"^18","sanity":"^3"},"_npmOperationalInternal":{"tmp":"tmp/personalisation-plugin_1.1.1_1735835360664_0.10735804103635194","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2024-11-25T15:02:23.585Z","modified":"2026-04-08T15:22:21.868Z","1.0.0":"2024-11-25T15:02:23.937Z","1.0.3":"2024-11-26T11:48:08.311Z","1.1.0-growthbook.1":"2024-11-29T11:33:11.595Z","1.1.0":"2024-12-09T17:27:06.110Z","1.2.0-growthbook.1":"2024-12-19T15:14:26.317Z","1.1.1":"2025-01-02T16:29:20.879Z"},"bugs":{"url":"https://github.com/sanity-io/sanity-plugin-personalisation/issues"},"author":{"name":"Sanity","email":"hello@sanity.io"},"license":"MIT","homepage":"https://github.com/sanity-io/sanity-plugin-personalisation#readme","keywords":["sanity","sanity-plugin"],"repository":{"url":"git+ssh://git@github.com/sanity-io/sanity-plugin-personalisation.git","type":"git"},"description":"Plugin to help with personalisation, a/b testing when using Sanity","maintainers":[{"email":"svc.npm@sanity.io","name":"sanity-svc.npm"},{"email":"developers@sanity.io","name":"sanity-io"}],"readme":"# @sanity/personalisation-plugin\n\n> This is a **Sanity Studio v3** plugin.\n\nThis plugin allows users to add a/b/n testing experiments to individual fields.\n\n![image](./overview.gif)\n\nFor this plugin you need to defined the experiments you are running and the variations those experiments have. Each experiment needs to have an id, a label, and an array of variants that have an id and a label. You can either pass an array of experiments in the plugin config, or you can use and async function to retrieve the experiments and variants from an external service like growthbook, Amplitude, LaunchDarkly... You could even store the experiments in your sanity dataset.\n\nOnce configured you can query the values using the ids of the experiment and variant\n\n- [@sanity/personalisation-plugin](#@sanity/personalisation-plugin)\n  - [Installation](#installation)\n  - [Usage](#usage)\n  - [Loading Experiments](#loading-experiments)\n  - [Using complex field configurations](#using-complex-field-configurations)\n  - [Validation of individual array items](#validation-of-individual-array-items)\n  - [Shape of stored data](#shape-of-stored-data)\n  - [Querying data](#querying-data)\n  - [License](#license)\n  - [Develop \\& test](#develop--test)\n    - [Release new version](#release-new-version)\n  - [License](#license-1)\n\n## Installation\n\n```sh\nnpm install @sanity/personalisation-plugin\n```\n\n## Usage\n\nAdd it as a plugin in `sanity.config.ts` (or .js):\n\n```ts\nimport {defineConfig} from 'sanity'\nimport {fieldLevelExperiments} from '@sanity/personalisation-plugin'\n\nconst experiment1 = {\n  id: '123',\n  label: 'experiment 1',\n  variants: [\n    {\n      id: '123-a',\n      label: 'first var',\n    },\n    {\n      id: '123-b',\n      label: 'second var',\n    },\n  ],\n}\nconst experiment2 = {\n  id: '456',\n  label: 'experiment 2',\n  variants: [\n    {\n      id: '456-a',\n      label: 'b first var',\n    },\n    {\n      id: '456-b',\n      label: 'b second var',\n    },\n  ],\n}\n\nexport default defineConfig({\n  //...\n  plugins: [\n    //...\n    fieldLevelExperiments({\n      fields: ['string'],\n\n      experiments: [experiment1, experiment2],\n    }),\n  ],\n})\n```\n\nThis will register two new fields to the schema., based on the setting passed intto `fields:`\n\n- `experimentString` an Object field with `string` field called `default`, a `string` field called `experimentId` and an array field of type:\n- `varirantsString` an object field with a `string` field called `value`, a string field called `variantId`, a `string` field called `experimentId`.\n\nUse the experiment field in your schema like this:\n\n```ts\n//for Example in post.ts\n\nfields: [\n  defineField({\n    name: 'title',\n    type: 'experimentString',\n  }),\n]\n```\n\n## Loading Experiments\n\nExperiments must be an array of objects with an id and label and an array of variants objects with an id and label.\n\n```ts\nexperiments: [\n  {\n    id: '123',\n    label: 'experiment 1',\n    variants: [\n      {\n        id: '123-a',\n        label: 'first var',\n      },\n      {\n        id: '123-b',\n        label: 'second var',\n      },\n    ],\n  },\n  {\n    id: '456',\n    label: 'experiment 2',\n    variants: [\n      {\n        id: '456-a',\n        label: 'b first var',\n      },\n      {\n        id: '456-b',\n        label: 'b second var',\n      },\n    ],\n  },\n]\n```\n\nOr an asynchronous function that returns an array of objects with an id and label and an array of variants objects with an id and label.\n\n```ts\nexperiments: async () => {\n  const response = await fetch('https://example.com/experiments')\n  const {externalExperiments} = await response.json()\n\n  const experiments: ExperimentType[] = externalExperiments?.map(\n    (experiment) => {\n      const experimentId = experiment.id\n      const experimentLabel = experiment.name\n      const variants = experiment.variations?.map((variant) => {\n        return {\n          id: variant.variationId,\n          label: variant.name,\n        }\n      })\n      return {\n        id: experimentId,\n        label: experimentLabel,\n        variants,\n      }\n    },\n  )\n  return experiments\n}\n```\n\nThe async function contains a configured Sanity Client in the first parameter, allowing you to store Language options as documents. Your query should return an array of objects with an id and title.\n\n```ts\nexperiments: async (client) => {\n    const experiments = await client.fetch(`*[_type == 'experiment']`)\n    return experiments\n  },\n```\n\n## Using complex field configurations\n\nFor more control over the value field, you can pass a schema definition into the fields array.\n\n```ts\nimport {defineConfig} from 'sanity'\nimport {fieldLevelExperiments} from '@sanity/personalisation-plugin'\n\nexport default defineConfig({\n  //...\n  plugins: [\n    //...\n    fieldLevelExperiments({\n      fields: [\n        defineField({\n          name: 'featuredProduct',\n          type: 'reference',\n          to: [{type: 'product'}],\n          hidden: ({document}) => !document?.title,\n        }),\n      ],\n      experiments: [experiment1, experiment2],\n    }),\n  ],\n})\n```\n\nThis would also create two new fields in your schema.\n\n- `experimentFeaturedProduct` an Object field with `reference` field called `default`, a `string` field called `experimentId` and an array field of type:\n- `variantFeaturedProduct` an object field with a `reference` field called `value`, a string field called `variandId`, a `string` field called `experimentId`.\n\nNote that the name key in the field gets rewritten to value and is instead used to name the object field.\n\n## Validation of individual array items\n\nYou may wish to validate individual fields for various reasons. From the variant array field, add a validation rule that can look through all the array items, and return item-specific validation messages at the path of that array item.\n\n```ts\ndefineField({\n  name: 'title',\n  title: 'Title',\n  type: 'experimentString',\n  validation: (rule) =>\n    rule.custom((experiment: ExperimentGeneric<string>) => {\n      if (!experiment.default) {\n        return 'Default value is required'\n      }\n\n      const invalidVariants = experiment.variants?.filter((variant) => !variant.value)\n\n      if (invalidVariants?.length) {\n        return invalidVariants.map((item) => ({\n          message: `Variant is missing a value`,\n          path: ['variants', {_key: item._key}, 'value'],\n        }))\n      }\n      return true\n    }),\n}),\n```\n\n## Shape of stored data\n\nThe custom input contains buttons which will add new array items with the experiment and variant already populated. Data returned from this array will look like this:\n\n```json\n\"title\": {\n  \"default\": \"asdf\",\n  \"experimentValue\": \"test-1\",\n  \"variants\": [\n    {\n      \"experimentId\": \"test-1\",\n      \"value\": \"asdf\",\n      \"variantId\": \"test-1-a\"\n    },\n    {\n      \"experimentId\": \"test-1\",\n      \"variantId\": \"test-1-b\",\n      \"value\": \"asdf\"\n    }\n  ]\n}\n```\n\nQuerying data\nUsing GROQ filters you can query for a specific experitment, with a fallback to default value like so:\n\n```ts\n*[_type == \"post\"] {\n\"title\":coalesce(title.variants[experimentId == $experiment && variantId == $variant][0].value, title.default),\n}\n```\n\n## License\n\n[MIT](LICENSE) © Jon Burbridge\n\n## Develop & test\n\nThis plugin uses [@sanity/plugin-kit](https://github.com/sanity-io/plugin-kit)\nwith default configuration for build & watch scripts.\n\nSee [Testing a plugin in Sanity Studio](https://github.com/sanity-io/plugin-kit#testing-a-plugin-in-sanity-studio)\non how to run this plugin with hotreload in the studio.\n\n### Release new version\n\nRun [\"CI & Release\" workflow](https://github.com/sanity-io/sanity-plugin-personalisation/actions/workflows/main.yml).\nMake sure to select the main branch and check \"Release new version\".\n\nSemantic release will only release on configured branches, so it is safe to run release on any branch.\n","readmeFilename":"README.md"}