{"_id":"jotai-composer","_rev":"27-9e4baf5a6457f128d450f84d551c5f14","name":"jotai-composer","dist-tags":{"latest":"4.2.2"},"versions":{"0.1.0":{"name":"jotai-composer","version":"0.1.0","keywords":["jotai","state","atoms","composition","react"],"author":"","license":"MIT","_id":"jotai-composer@0.1.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"53873575fb161bb688c2c827bcbea92c6658834a","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-0.1.0.tgz","fileCount":8,"integrity":"sha512-DEORvf17UQh3g+gt+R0JTHSWzpMwIecYvYPwoJKOWuQJXqg50flGq/buj2zwc0u70ZepyQVJzEfUEInh02wTzw==","signatures":[{"sig":"MEUCIQCvv1RdVx4++FXynfQxNUbd0MO+f8zNWi9angKzYQ5bxwIgDpiclvbyGH1SgvI0gLSsVPfB3BMjMcLXaNW1vcAFC2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18127},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"ee36646f57d18c24184f09c230da6dc81a389f49","private":false,"scripts":{"dev":"tsup --watch","test":"jest","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"A library for composing Jotai atoms","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","jotai":"^2.12.2","react":"^19.1.0","ts-jest":"^29.3.1","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.14.0"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_0.1.0_1743811733839_0.5488158362534226","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"jotai-composer","version":"1.0.1","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.0.1","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"1fee6fb0e82d00e70978a64b5cac113df6542326","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.0.1.tgz","fileCount":18,"integrity":"sha512-hcL4SpBr4g90mgqiaWrUjqswEvL1Kd5Cboyn7rT1zJredtqFJ3Z8d06XTai2YZL6xXlcQXF58qqqh0dHEAfSow==","signatures":[{"sig":"MEQCIG8SUsIuFyGkwMpSICN+51bh+B03U8HqEYlUMQElZG6dAiAJQfDugMndcIou5iqUHihC5HzEeglOo0DzkbU4VwIrQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4667},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"1e88245e235a12931d533f84987f2009aac6e2c4","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.0.1_1745940174801_0.8596470507243841","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"jotai-composer","version":"1.0.2","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.0.2","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"d795fe5e278af6348fb1cd3c3d49f8bc9dd19ed1","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.0.2.tgz","fileCount":20,"integrity":"sha512-u1ido9zTHaF8uhpbJ5UTpfQsCC6z4foFetvffzUe9LT3kZX8RfZLy0xvZ2M49WiwUrwkhWCGuaOccKUSgvUDfQ==","signatures":[{"sig":"MEQCIEefZ29Dv3vUja6xF0ZxhsYOrm8eMFGFHXkn9GfcKsk3AiBWJkN6lR2NuA5vFvMSy4mTJwKcVZLRsDdTh0NNN40ylQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21143},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"3c47e7ccd7efe06c19cc70084b646d17b7a692a7","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.0.2_1745942319940_0.6003962322291494","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"jotai-composer","version":"1.1.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.1.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"0c3910f483329f1d4b135b767271bc402903e99e","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.1.0.tgz","fileCount":20,"integrity":"sha512-oZkQ4PRPAWqu8Ovcbsy434ZWe7GOddWnu9x6BoWsOtwgRLHs//HIUQRWrejqW6UCyphKRvgEXzAnHZ/qdHH+3A==","signatures":[{"sig":"MEQCIHluzIXH/1OYylhC2VfrCV2ENzDzzrViwvo9EcBDVL7tAiBbPm6BzZ+DmBVVihGTUrjOK87Ulh0qCnJCEfRMnHgd7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22236},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"18d80d937708f9d4c06925ea25215858db397087","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.1.0_1746036008267_0.18246315593246187","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"jotai-composer","version":"1.1.1","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.1.1","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"b43f91bd594985837b0a74b638dfbd16456e134b","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.1.1.tgz","fileCount":20,"integrity":"sha512-VvdpDBo62UFA7JNbn671u2nK92pbNIsUvEbld/aL34rLwIQM7grihknBtxqEEYKW1llbrxZDF+IuPqGOZP+pew==","signatures":[{"sig":"MEQCIFcainMt3Ue5k5tiOI6k27Mupibrjv66xJPpRL4vT4QeAiBou38JG9tQRDxCaXLvWAWxD8/cbO6SbpDq0ciDwis1Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22904},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"703ec8e84c275e246a99a753904968422a8eb747","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.1.1_1746037344794_0.5277997048368352","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"jotai-composer","version":"1.1.2","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.1.2","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"974387a78dca24b0ec593b9acc4128bd615e56b9","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.1.2.tgz","fileCount":20,"integrity":"sha512-O5I1PeAecDj/YoaJOQAknzdze8dRnLYsFeXHJ3W5vMPjXB5QnPn/TYPGc3wuU8c92pEe8DvWwSWbQMIYGxWt5Q==","signatures":[{"sig":"MEYCIQCHznG6gkC4dOFxFwFDbDyRULxAmeNKQg85z18NOgrf5AIhAOv0Yk/zkWnfP6UljhmuMvy1/OgrMsOK64abJ7tm6LoH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22924},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"ee597bfcd5cdb2f27613ad5c8606d6f3f3e2eb2a","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.1.2_1746037571745_0.018967996317844626","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"jotai-composer","version":"1.2.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.2.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"31258d411a89c632ee2c59b6b8597179e0cc05c5","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.2.0.tgz","fileCount":20,"integrity":"sha512-Cpy+7qm0buNmVSuMRPl8DdB1sGitqUrAmMEfQH06Ab/qG6mTt5LPyxYRDjXdzEhHxoWNM1ktB3EgJs7obt5DDA==","signatures":[{"sig":"MEQCIBtxahaf4vQEuuhtkeap819Mu4u2LKfK7XarnPeB97xZAiByPQpzxs6wMJwPWR9wS2539nohGrGWMi1bzcCNAUVnjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29422},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"e01c7ccba598cb0a3b3eef88a7c05155fbb7e240","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.2.0_1746105311683_0.3991249321279382","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"jotai-composer","version":"1.3.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@1.3.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"75db35c928ac95ba4fb5a0519782b920b038d55b","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-1.3.0.tgz","fileCount":20,"integrity":"sha512-PvZ7yI3LaRENRDjGuaH1mCr5OfT885OUSTkTP6WKzE4HnVa8q86GIeZyy+YeakXzLgySMX0mLWxT48/uHzsSSg==","signatures":[{"sig":"MEQCIHmUrYC9jK5sqx9YXhHa3vlspdOrqYaVJKt+kgOSGmLrAiBWvpXXdeQo5oR3eQEUW3mht3s4ffX8xEnimOnAY4l7cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"3e3689a00aec1c059b31d14bdcc20d88f04ca625","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_1.3.0_1746202650654_0.3129822892269529","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"jotai-composer","version":"2.0.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.0.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"7f7c55b097b7632b5c19d9e47e0fe4cc4e049651","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.0.0.tgz","fileCount":21,"integrity":"sha512-4Qs6tB0ouQE+FbRDBRP2ZGxbP8gac6fpI/BEnDIebiqJxUUeytvt31besHQPmLo+jOneJW62Z8TJUyvh10Tobg==","signatures":[{"sig":"MEQCIBt8JIpR41IGxxqB1478jlVGqyTlEVDvaKHf3wADjD9GAiBYKU+W9iYdWWJtPEzd+fUnuRVBfWR3raMm/Kg+eWzjJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32139},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"535672731f3e812767bcbc94c4b08d09f952f39c","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.0.0_1746285757689_0.2641245833190071","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"jotai-composer","version":"2.0.1","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.0.1","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"bda7a63e508434c3d9ba544a7def4a50ad4ba27a","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.0.1.tgz","fileCount":21,"integrity":"sha512-bN8fMsIm2poLjLXbRZPSkUb6wsNlE7gEqIJAvFzSq9YX81oCapIlbaRlMN2+1AivSTINhC479Pv1gh/VJoIubQ==","signatures":[{"sig":"MEYCIQDT33bW40ZPHASgp5f9rviUxsWhPDG9N8R/dmvyo+I43QIhAI4lGriFfnk0TRtb7wsAXdGa3S7H6CcYvYdGunM5OuSj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32132},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"e9af35db0071ef6ab5c5049074f27ebb14d07eb1","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.0.1_1746286146790_0.37209370725626423","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"jotai-composer","version":"2.0.2","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.0.2","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"dist":{"shasum":"d7526959cc2224257a0d97f06453437148b907d9","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.0.2.tgz","fileCount":21,"integrity":"sha512-3YtRcQnxhR24BBcSF7vv45/a2l+5u7E1R0TkU7SqBJmuScs8Z97Ba79uORQ1SUNpSts3IQyTmkaiFd9bJc0a9g==","signatures":[{"sig":"MEUCIGBtBioAD9hJ8Cwa+3aXshgBpMr4Norg4zjzW9WSG5vHAiEAi0asau2Nqjxe0a3GZorUXs0ove5g6zCUsi/sFc0bmG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32243},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"51f1526021d6a2e0aaff0fb1c882db97851a52cb","scripts":{"test":"","build":"tsup","watch":"tsup --watch","prepare":"husky","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"_npmVersion":"10.9.0","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.0.2_1746288932279_0.2884424385336024","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"jotai-composer","version":"2.0.6","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.0.6","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"648e75cd011ab49054b122ca268c3f69e39d90b5","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.0.6.tgz","fileCount":29,"integrity":"sha512-RHIzTc8OLJrfb6IAKELPmccI/Swf1OrabEIlXVHy4oZS+DOXjMDvpSYYYblwD2mNlP8k+eaKy5N+RRx4zXRySw==","signatures":[{"sig":"MEYCIQDAZLIe9OUyxZpg3rh5wN0RcE4T1uKWXPifCMOxYmX2iAIhALpNwJQZjs+0LPX6b12ii7dk9mFYj0rkevuO4dEEMxLR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41377},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"6970de47e45b6869e3725f1b0d7ec77768edb9ac","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.0.6_1746474717648_0.7112218769533609","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"jotai-composer","version":"2.0.7","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.0.7","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"13111e62bee31ba84ea5660ffc559abb9993c980","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.0.7.tgz","fileCount":29,"integrity":"sha512-igOz0HQU3pGsiVox/+TV0yqdxFb0WcUuO0UboSSdOIHxke7l/BENrj7/p0o92/d1ogJcyIHzXgd7yruiMLJYwA==","signatures":[{"sig":"MEQCIDtcHfuhZIDNVETslD9xbd9LrbtAtG/QaYpc5w2n30yfAiAhiywe00oI57a3dZtaL3ispU4tZr4dAkvuPVFDvwJR1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41552},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"a6da3e44f3e39f8e1a455df54be7393006f796a5","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.0.7_1746475111440_0.8617865656179093","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"jotai-composer","version":"2.1.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@2.1.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"f97eabe790ccb79d65dea150ebf0010326ac51bc","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-2.1.0.tgz","fileCount":30,"integrity":"sha512-84fuD9uhkdcGicJ3hm/+v80foKa1o6gq2NiDo9ABL77pyEn4sefHARoseRR60I3R3pem37wtWb8SCXY2PaUGeg==","signatures":[{"sig":"MEUCIQDyk4c/BPDZZcrfUhKTnxWwKysNyJrkK4+1csHr7IahfwIgefu48uEbLvZew7eR9lFXkWMk2qtAFqCFOy5BlKWzps8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48377},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"23fd81411c7150a389b868d1bf0a6097b29e3881","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_2.1.0_1746484578558_0.2201379863023094","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"jotai-composer","version":"3.0.0","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.0.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"fc31baddb9b74eff3ffdea5af5fd4e248c0fc5f5","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.0.0.tgz","fileCount":31,"integrity":"sha512-EpooAESt3nP4nyWmhv0/7auLCsJjhsQLJndOIMl2hCEhWi/t5duyzHQM6Y1TqNyV85bg/0xwcweNNWFSo+Twiw==","signatures":[{"sig":"MEYCIQDAXQYyRDg8NRG5oDjgEvl7lxr6SkTqNFMfrBWBXDZsbAIhAJusaSEummUR1TwQU0WmkgFhJgUe7fxXZ52x7sQcdcHe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50671},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"543b2002b24f3890eb8141c33d5e1902a80be30e","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.0.0_1746551081057_0.32806511281856565","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"jotai-composer","version":"3.0.1","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.0.1","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"b70c5757fa248113b0531cd97272b6d39600b9c9","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.0.1.tgz","fileCount":31,"integrity":"sha512-HBY7N2iuZA1F75X5F/JUEwI71e+zyibrSzX+bPbtml0ln+R9U1lwwvDf7KERA4oEZTNMZsNn5PKa4e4ykIRwpw==","signatures":[{"sig":"MEUCIEICXHenmSaNiYBxQUNGf1hn/TmoFraUVA+rYvPkIKbKAiEAzW6D93BjmFyx7P4R8mrV8KDIUgiXU6uO2/zZkOitlqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49690},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"38b6c25008820d500b1f04286bc4af01ed06f035","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.0.1_1746552030490_0.897892243195411","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"jotai-composer","version":"3.0.2","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.0.2","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"d03b95fa0ac7d6240044ef2adf3dcf4813fb9e08","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.0.2.tgz","fileCount":31,"integrity":"sha512-RqBHszxIzKQ8ioOrbOBofWg+53xQmL62Ve5K9qhAxAMyoozj7YxJlvAx1PL0qHS0Sa8SLuEejvRDG+9nLzlATg==","signatures":[{"sig":"MEUCIHNe57m5TR+6CNGUwrUZKZOF8/x4QLdU1gMoCNbV1opzAiEAoIQMn/xc1l+x7ZdN7b7CLNciUi8ZUwiamJc9Yzwa5us=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49638},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"aced98efc87e927763f99c69efc1166d2d4c2b17","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.0.2_1746552378389_0.9973009344049251","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"jotai-composer","version":"3.0.3","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.0.3","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"06c4f36c6ddf6c11e955befcbf398aeffb095635","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.0.3.tgz","fileCount":31,"integrity":"sha512-3R8zUssDga0G2H/CK8y1MpSTD32kAODgLJJfP3WaJ3kHtKNiiwEYHa6VOBOV1rCp0WSnWjUBS1p7hQMGtgLLIA==","signatures":[{"sig":"MEUCIDEXJGQOk0BuEVEwkJHWobWeVn298TMyKjdmNWj2LgGLAiEAw2+UKp7teKm/FlJCv3pT7NggC0V5M9zbaEWo1rfIE40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50969},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"2019229dcbf7a61f6562e87ec568a4aade9b7b6e","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.0.3_1746704124659_0.13440725555425792","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"jotai-composer","version":"3.0.4","keywords":[],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.0.4","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"b16ad5252b7374584bda3d90aebdc22439edcbdb","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.0.4.tgz","fileCount":31,"integrity":"sha512-JYH4SvWyOz1cqwBdUIIU5Wz6XPh4oAYDydEslXWkgCccKQg+j+vNKwkQJEsPmWVdZy51ejJii5lI8AnSDEMPxQ==","signatures":[{"sig":"MEUCIQD17D1p6VreZBJGCwsgWoEDXIRdZd9cv7Fe6mD72XB5PwIgYqg320xJ5gmw6jp440lAZdVs0eCXYJ566D27AD1gXpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51231},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"42d6ea854ffe52c812c97d1db38a6a8fe752d34f","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"<!-- @format -->","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.0.4_1749213859693_0.0754823376070839","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"jotai-composer","version":"3.1.0","keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@3.1.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"d9754f8693e20249a5cce4d25eaa3de077518c3f","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-3.1.0.tgz","fileCount":9,"integrity":"sha512-qH8hp01fEoA6fXNsb6gJHwBwnQxi3HxAmX67lU9PGM6GkPBZI3ISaxsvUMrAkVSbzXQgHl4Z1nU/BQxacIrwxw==","signatures":[{"sig":"MEYCIQCyZaYeW6SSHHcS0gO+ZJ0M7E1LnKA5vC4uxI/dqUN93QIhAOVqDF4yLk22s1Froip/2+Ag5JYo/tTqUR/SyHf7PrhD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37302},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"dd9c3802947da577db82a9296b3aacfef07903c7","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"Jotai enhancers for composing atoms","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_3.1.0_1749460732788_0.6928767265608187","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"jotai-composer","version":"4.0.0","keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@4.0.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"423d9e2b05b8214b89a9ff17b590fe9a6ca54329","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-4.0.0.tgz","fileCount":9,"integrity":"sha512-/dhAxc4p61UEiAVySQUpuEUJRj5FmCpqcCz03BAEQz0ExCLnCgMMYC1YJOW+DYqdyQtyClkAA/F6q1FuG5jmDQ==","signatures":[{"sig":"MEQCICg1WpZL1YVZwNzv50Mgx3tZRL8effP/O299lgZN38tEAiAISMoGdYSiYk6Kx4kejjTEd9QweBJJMowClfmEfHXQOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30266},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"20115197e5e8c4f024c6079bbcff9832da8d219c","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"Jotai enhancers for composing atoms","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_4.0.0_1749545625340_0.043440565034799095","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"jotai-composer","version":"4.1.0","keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@4.1.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"ff4de5f7639332c51090c8179c9bed872219eb9b","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-4.1.0.tgz","fileCount":9,"integrity":"sha512-eosEmXAtlHPmZDGiHZU7kTXVKSG7GpUYE7lwejt6fpDuUbCbcVgb6e3a5WWRW8dOQylJE0rT/3OMSYnc3e5qsA==","signatures":[{"sig":"MEQCID7H70zxNZy3ByXqfym5WTDAaeSFTMp8t2lvHU7XE9bIAiALBJ3yxYBAkWoJ6hTzb9sM+llu0mPoEkBHx8XgL7fqxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31226},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"8f93513b14a62877c75bc2c23907d1d03b573667","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"Jotai enhancers for composing atoms","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","remeda":"^2.23.0","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_4.1.0_1749550044072_0.8438900436683492","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"jotai-composer","version":"4.2.0","keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@4.2.0","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"37c7fe39080838e3a7769a4f76be2eae9ebfda26","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-4.2.0.tgz","fileCount":9,"integrity":"sha512-LqUgzuotAa4ORBaCdYd0S8ovXjieT+N4j86+QMB+rpjjTSCFs1P/EYvqXNqY+v4GEY97CBNHCo222IasFeRcmw==","signatures":[{"sig":"MEYCIQC0RrT0rSZBcHH56cSoIZ3R9q1WUoJQcNkZqJjr12wS7QIhAM6CG5I2pbXmkRVAMsviJJub0nlO9SJfVpC22380AcYE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31226},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"821c0789298817835cf72ed90f3c840474879de8","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"Jotai enhancers for composing atoms","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","remeda":"^2.23.0","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_4.2.0_1749550427056_0.5985057850900117","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"jotai-composer","version":"4.2.1","keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","_id":"jotai-composer@4.2.1","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"homepage":"https://github.com/diegodhh/jotai-compose#readme","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"dist":{"shasum":"5f551107ae4e78bfa3573c2103952c5e84805786","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-4.2.1.tgz","fileCount":9,"integrity":"sha512-26f7fQlAiEpTcfSh0nn6QgISV5VjDWO/wNboT0ZzA7i6IZLx+z4FWcWkV5+3sMMW1FrDCEGy1yCqNz2zS7AFGQ==","signatures":[{"sig":"MEYCIQDzSld4NpC6VtqfevebGtgJe3cdJDVDBiDzr2kHdIR7vQIhAI81heiHk6wktMRv3GxaPevzGTOkle44U4cBu46oKKUx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@4.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31223},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"afd3f143e3426eadb64b5c251457b00c1fe5e5b7","scripts":{"test":"vitest run","build":"tsup","watch":"tsup --watch","prepare":"husky","test:watch":"vitest --watch","type-check":"npx tsc --noEmit","type-watch":"npx tsc --noEmit --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"_npmVersion":"10.8.2","description":"Jotai enhancers for composing atoms","directories":{},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"_nodeVersion":"20.19.2","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","husky":"^9.1.7","jotai":"^2.12.3","react":"^19.1.0","eslint":"^9.25.1","remeda":"^2.23.0","vitest":"^3.1.3","globals":"^16.0.0","prettier":"3.5.3","@eslint/js":"^9.25.1","typescript":"^5.8.3","lint-staged":"^15.5.1","@types/react":"^19.1.2","@commitlint/cli":"^19.8.0","typescript-eslint":"^8.31.0","eslint-plugin-react":"^7.37.5","eslint-config-prettier":"^10.1.2","@commitlint/config-conventional":"^19.8.0"},"peerDependencies":{"jotai":"^2.12.3","react":"^19.1.0","@types/react":"^19.1.2"},"_npmOperationalInternal":{"tmp":"tmp/jotai-composer_4.2.1_1749550564315_0.5947467872608769","host":"s3://npm-registry-packages-npm-production"}},"4.2.2":{"name":"jotai-composer","version":"4.2.2","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"scripts":{"build":"tsup","prepublishOnly":"npm run build","type-watch":"npx tsc --noEmit --watch","type-check":"npx tsc --noEmit","watch":"tsup --watch","prepare":"husky","test":"vitest run","test:watch":"vitest --watch"},"lint-staged":{"*.{ts,js,json,md}":"prettier --write"},"keywords":["jotai","enhancer","composable","atom","compose"],"author":{"name":"Diego Herrero"},"license":"MIT","description":"Jotai enhancers for composing atoms","devDependencies":{"@commitlint/cli":"^19.8.0","@commitlint/config-conventional":"^19.8.0","@eslint/js":"^9.25.1","@types/react":"^19.1.2","eslint":"^9.25.1","eslint-config-prettier":"^10.1.2","eslint-plugin-react":"^7.37.5","globals":"^16.0.0","husky":"^9.1.7","jotai":"^2.12.3","lint-staged":"^15.5.1","prettier":"3.5.3","react":"^19.1.0","remeda":"^2.23.0","tsup":"^8.4.0","typescript":"^5.8.3","typescript-eslint":"^8.31.0","vitest":"^3.1.3"},"peerDependencies":{"@types/react":"^19.1.2","jotai":"^2.12.3","react":"^19.1.0"},"_id":"jotai-composer@4.2.2","gitHead":"f6fef006033b607b464152a2b36c1eb04bf3ae2d","bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"homepage":"https://github.com/diegodhh/jotai-compose#readme","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-URTO3xGqZLaiOqvbHvHZU6MxJCTphC27Pe3WfwaasHM+kmLQdPl/OE/K+mcvje18QoTCW57prhUckfaBDSVQKw==","shasum":"8359e70897109604af6cfa2d2c0fb69c13e7caa9","tarball":"https://registry.npmjs.org/jotai-composer/-/jotai-composer-4.2.2.tgz","fileCount":9,"unpackedSize":30906,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/jotai-composer@4.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzOKVNcDMijHmDyV2u6T1Slpuyj+bEf8KbmWni8WP3DAIgPTdXQaYluB0AQTbtHTM+xoQlX0WlUSGoBoolIjZ3/uU="}]},"_npmUser":{"name":"diegodhh2","email":"diegodhh@gmail.com"},"directories":{},"maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jotai-composer_4.2.2_1749551988759_0.6452154960354979"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-05T00:08:53.838Z","modified":"2025-06-10T10:39:49.325Z","0.1.0":"2025-04-05T00:08:54.052Z","1.0.0":"2025-04-19T13:57:10.732Z","1.0.1":"2025-04-29T15:22:54.970Z","1.0.2":"2025-04-29T15:58:40.114Z","1.1.0":"2025-04-30T18:00:08.473Z","1.1.1":"2025-04-30T18:22:25.057Z","1.1.2":"2025-04-30T18:26:11.923Z","1.2.0":"2025-05-01T13:15:11.887Z","1.3.0":"2025-05-02T16:17:30.927Z","2.0.0":"2025-05-03T15:22:37.944Z","2.0.1":"2025-05-03T15:29:06.996Z","2.0.2":"2025-05-03T16:15:32.533Z","2.0.6":"2025-05-05T19:51:57.836Z","2.0.7":"2025-05-05T19:58:31.715Z","2.1.0":"2025-05-05T22:36:18.734Z","3.0.0":"2025-05-06T17:04:41.366Z","3.0.1":"2025-05-06T17:20:30.646Z","3.0.2":"2025-05-06T17:26:18.558Z","3.0.3":"2025-05-08T11:35:24.838Z","3.0.4":"2025-06-06T12:44:19.877Z","3.1.0":"2025-06-09T09:18:53.027Z","4.0.0":"2025-06-10T08:53:45.502Z","4.1.0":"2025-06-10T10:07:24.258Z","4.2.0":"2025-06-10T10:13:47.286Z","4.2.1":"2025-06-10T10:16:04.488Z","4.2.2":"2025-06-10T10:39:48.941Z"},"bugs":{"url":"https://github.com/diegodhh/jotai-compose/issues"},"author":{"name":"Diego Herrero"},"license":"MIT","homepage":"https://github.com/diegodhh/jotai-compose#readme","keywords":["jotai","enhancer","composable","atom","compose"],"repository":{"url":"git+https://github.com/diegodhh/jotai-compose.git"},"description":"Jotai enhancers for composing atoms","maintainers":[{"name":"diegodhh2","email":"diegodhh@gmail.com"}],"readme":"<!-- @format -->\n\n# Jotai Composer\n\n> _Compose fully-typed **enhancers** into a single Jotai atom._\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/jotai-composer\">\n    <img alt=\"npm\" src=\"https://img.shields.io/npm/v/jotai-composer?color=cb3837&logo=npm\" />\n  </a>\n  <a href=\"https://github.com/jotai-composer/jotai-composer/blob/main/LICENSE\">\n    <img alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" />\n  </a>\n  <a href=\"https://github.com/diegodhh/jotai-compose\">\n    <img alt=\"Repo\" src=\"https://img.shields.io/badge/Repo-GitHub-blue\" />\n  </a>\n  <a href=\"https://github.com/diegodhh/jotai-compose-example\">\n    <img alt=\"Example\" src=\"https://img.shields.io/badge/Example-Project-green\" />\n  </a>\n</p>\n\n---\n\n`jotai-composer` is a tiny helper on top of\n[Jotai](https://jotai.org/) that lets you build a **modular, type-safe state\nlayer** by composing small, isolated **enhancers**.\n\n- **Modularity** – keep each state slice in its own file.\n- **Composition** – chain enhancers in a simple pipeline.\n- **Type-safety** – state _and_ actions are fully typed end-to-end.\n- **Interop friendly** – works with `atomWithStorage`, `atomWithObservable`,\n  etc.\n\n---\n\n## Table of Contents\n\n1. [Installation](#installation)\n2. [Quick Start](#quick-start)\n3. [Core Concepts](#core-concepts)\n   1. [`atomEnhancer`](#atomenhancer)\n   2. [Precomposing with `piped`](#precomposing-with-piped)\n4. [API Reference](#api-reference)\n5. [Example Project](#example-project)\n6. [Best Practices](#best-practices)\n7. [Troubleshooting](#troubleshooting)\n8. [License](#license)\n\n---\n\n## Installation\n\n```bash\nnpm install jotai-composer            # npm\n# or\nyarn add jotai-composer               # Yarn\n# or\npnpm add jotai-composer               # pnpm\n```\n\n---\n\n## Quick Start\n\n```tsx\nimport { atom, useAtom } from \"jotai\";\nimport { piped } from \"remeda\";\nimport { atomEnhancer, DispatcherAction } from \"jotai-composer\";\n\n/* 1. Base atoms */\nconst countAtom = atom(0);\nconst actionLogger = atom<DispatcherAction<Actions, number>[]>([]);\n\n/* 2. Define action types */\ntype Actions = \"increment\" | \"decrement\";\n\n/* 3. Create enhancers */\n// Action logger enhancer - tracks all actions\nconst actionLoggerEnhancer = atomEnhancer<\n  { count: number; description: string },\n  DispatcherAction<Actions, number>,\n  {\n    count: number;\n    description: string;\n    lastAction: DispatcherAction<Actions, number>;\n  }\n>(\n  // Read function - adds last action to state\n  (get, { last }) => {\n    const actions = get(actionLogger);\n    const lastAction = actions[actions.length - 1];\n    return {\n      ...last,\n      lastAction,\n    };\n  },\n  // Write function - logs actions\n  (get, set, update) => {\n    const actions = get(actionLogger);\n    actions.push(update) || [];\n    set(actionLogger, [...actions]);\n    return { shouldAbortNextSetter: false };\n  },\n);\n\n// Count derivation enhancer - exposes count value\nconst countEnhancerDerivation = atomEnhancer<\n  object,\n  DispatcherAction<Actions, number>,\n  { count: number }\n>((get) => ({ count: get(countAtom) }));\n\n// Description enhancer - adds human-readable description\nconst descriptionDerivationEnhancer = atomEnhancer<\n  { count: number },\n  DispatcherAction<Actions, number>,\n  { description: string }\n>((get, { last }) => {\n  return { description: `Count is ${last?.count ?? 0}` };\n});\n\n// Increment action handler\nconst countEnhancerIncrement = atomEnhancer<\n  object,\n  DispatcherAction<Actions, number>,\n  object\n>(\n  (get) => ({}),\n  (get, set, update) => {\n    if (update.type === \"increment\") {\n      set(countAtom, get(countAtom) + (update.payload ?? 0));\n      return { shouldAbortNextSetter: false };\n    }\n    return { shouldAbortNextSetter: false };\n  },\n);\n\n// Decrement action handler\nconst countEnhancerDecrement = atomEnhancer<\n  object,\n  DispatcherAction<Actions, number>,\n  object\n>(\n  (get) => ({}),\n  (get, set, update) => {\n    if (update.type === \"decrement\") {\n      set(countAtom, get(countAtom) - (update.payload ?? 0));\n      return { shouldAbortNextSetter: false };\n    }\n    return { shouldAbortNextSetter: false };\n  },\n);\n\n// Permission enhancer - can block certain actions\nconst createCountPermissionEnhancer = (fallback: ReturnType<Enhancer>) =>\n  atomEnhancer<object, DispatcherAction<Actions, number>, object>(\n    (get) => ({}),\n    async (get, set, update) => {\n      // forbid increment or decrement by 2\n      if (update.payload === 2) {\n        await new Promise((resolve) => setTimeout(resolve, 50));\n        return { shouldAbortNextSetter: true };\n      }\n      return { shouldAbortNextSetter: false };\n    },\n    fallback,\n  );\nconst fallbackPipe = piped(actionLoggerEnhancer);\n/* 4. Compose enhancers */\n// Note: Order matters! Setters are called from last to first\nconst enhanced = piped(\n  falbackPipe,\n  countEnhancerIncrement,\n  countEnhancerDecrement,\n  createCountPermissionEnhancer(falbackPipe(undefined)),\n  countEnhancerDerivation,\n  descriptionDerivationEnhancer,\n)(undefined);\n\n/* 5. Use in React */\nfunction Counter() {\n  const [state, dispatch] = useAtom(enhanced);\n\n  return (\n    <div>\n      <p>{state.description}</p>\n      <p>Last action: {state.lastAction?.type}</p>\n      <button onClick={() => dispatch({ type: \"increment\", payload: 1 })}>\n        Increment\n      </button>\n      <button onClick={() => dispatch({ type: \"decrement\", payload: 1 })}>\n        Decrement\n      </button>\n      <button onClick={() => dispatch({ type: \"increment\", payload: 2 })}>\n        Increment by 2 (forbidden)\n      </button>\n    </div>\n  );\n}\n```\n\n---\n\n## Core Concepts\n\n### `atomEnhancer`\n\n`atomEnhancer(read, write?)` is a **shorthand** that lets you create an\n`AtomEnhancer` using just two pure functions:\n\n```ts\nimport { atom, Getter, Setter } from \"jotai\";\nimport { atomEnhancer, DispatcherAction } from \"jotai-composer\";\n\ntype Actions = \"increment\" | \"decrement\";\n\nconst countAtom = atom(0);\n\nconst counterEnhancer = atomEnhancer(\n  // 1️⃣ read - derives new state slice\n  (get: Getter) => ({ count: get(countAtom) }),\n\n  // 2️⃣ write (optional) - handles dispatched actions\n  (get: Getter, set: Setter, update: DispatcherAction<Actions>) => {\n    if (update.type === \"increment\") {\n      set(countAtom, get(countAtom) + (update.payload ?? 0));\n      return { shouldAbortNextSetter: false };\n    }\n    return { shouldAbortNextSetter: false };\n  },\n);\n```\n\nThis internally creates an enhancer that can be composed with other enhancers.\n\n---\n\n### Precomposing with `piped`\n\nThe recommended way to precompose related enhancers is using the `piped` function, which allows you to create reusable groups of enhancers. **Important**: The order of enhancers in the pipe matters because setters are called from last to first:\n\n```ts\nimport { piped } from \"jotai-composer\";\n// or import { pipe } from \"remeda\";\n\n// Precompose related enhancers\nconst baseEnhancer = piped(\n  // First in pipe = last to handle actions\n  createBase(baseAtom),\n  // Second in pipe = second to last to handle actions\n  createBasePlus(1),\n);\n\n// Use in main composition\nexport const composedAtom = piped(\n  // First in pipe = last to handle actions\n  createCounter(counterAtom),\n  // Second in pipe = second to last to handle actions\n  baseEnhancer,\n  // Third in pipe = third to last to handle actions\n  createInputState(inputAtom, \"\"),\n  // Last in pipe = first to handle actions\n  modalEnhancer,\n)(undefined); // Final invocation with undefined (no previous atom)\n```\n\nThis approach makes your code more modular and maintainable, especially when dealing with complex state compositions. Remember that the order of enhancers in the pipe determines the order in which their setters are called when an action is dispatched.\n\n---\n\n```ts\nconst userPipe = piped(\n  createUserProfile(profileAtom),\n  createUserPreferences(preferencesAtom),\n  createUserPermissions(permissionsAtom),\n)(undefined);\n\n// Embed the composed user atom in a larger pipeline\nconst appAtom = piped(\n  createAppState(appAtom),\n  userPipe,\n  createAppSettings(settingsAtom),\n)(undefined);\n```\n\n---\n\n## Best Practices\n\n1. **Order Matters**: Remember that setters are called from last to first in the pipe. This means that the first enhancer in the pipe will be the last to handle actions, and the last enhancer in the pipe will be the first to handle actions.\n\n2. **Type Safety**: Always define your action types and use them in your enhancers to ensure type safety.\n\n3. **Modularity**: Keep each enhancer focused on a single responsibility. This makes your code more maintainable and easier to test.\n\n4. **Composition**: Use `piped` to compose related enhancers together. This makes your code more modular and easier to understand.\n\n5. **Testing**: Write tests for your enhancers to ensure they work as expected. The test examples in this documentation show how to test your enhancers.\n\n---\n\n## Troubleshooting\n\n1. **Setters not being called**: Remember that setters are called from last to first in the pipe. If your setter is not being called, check the order of your enhancers in the pipe.\n\n2. **Type errors**: Make sure you have defined your action types correctly and are using them in your enhancers.\n\n3. **State not updating**: Check that your enhancers are returning the correct state shape and that your setters are being called in the correct order.\n\n---\n\n## License\n\nMIT © [Diego Herrero](https://github.com/diegodhh)\n","readmeFilename":"README.md"}