{"_id":"@yakocloud/state-vocab","_rev":"44-46408ba50167b747e679253597ece37b","name":"@yakocloud/state-vocab","dist-tags":{"latest":"4.3.1"},"versions":{"1.0.1":{"name":"@yakocloud/state-vocab","version":"1.0.1","_id":"@yakocloud/state-vocab@1.0.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"f4b2e6a69fdcb291bb7721272f7bca4f5facc76a","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-1.0.1.tgz","fileCount":4,"integrity":"sha512-Uiq+6IAcqvEwYS00aPDHJPZIjfYdZ6DRVJKnymPjJnv2eMEuAxUDY7Sc90lNLTVPgYl1woTpXiN0zuKYIbUiMw==","signatures":[{"sig":"MEYCIQDwZRU+Wvq21SNrEESI7jnBdcaZAt9qG7IRroyZTbg0lwIhAJRsauLp3XIkogvCCXWE3R9KGaenaRHr4Ii42rhe1IpN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48122},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"e503225436dea805999cc7b922030b41aff8b9ca","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_1.0.1_1776017109066_0.9336058184950842","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@yakocloud/state-vocab","version":"1.0.2","_id":"@yakocloud/state-vocab@1.0.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"b6e090b8af9dc9192e844d0ffc4b874cf2006aad","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-1.0.2.tgz","fileCount":4,"integrity":"sha512-IFPsZ/Q+Ir9XffIFjcVYfrhtnDDIHVefPfN9K1THZhwPQQwCISkecG7OBhJY4IHxdQCTyjDShiaVVRJiAoC+7w==","signatures":[{"sig":"MEYCIQCVn2IdQrq1gd/3TN5Qj4v0QNFHpS12gWWoOXjpZjsopAIhAPg7tFW8ViZDOlrh1v1uZ4yrVCMYOj0QzgZcla0InlgA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51261},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"07bb2d67a895f0245673a2567c9b237a78020d7d","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_1.0.2_1776017648973_0.0235246642349749","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@yakocloud/state-vocab","version":"1.0.3","_id":"@yakocloud/state-vocab@1.0.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"7debc289c55485e8c0c6173e391cded9b1b8bf69","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-1.0.3.tgz","fileCount":4,"integrity":"sha512-yxwmGgi4Nv7smo9zngZvkRxBZnigCNHFwDsmUziREbp6UyOue0lyQtz9VSFMva3RmSclFuKm5c25hRbXg3sK0Q==","signatures":[{"sig":"MEQCIBQqy2wg4/e+EFSYUu8zeAoSm9kVFUdZbwrTbYjGOCoVAiBqnWm+2DDB3UVZz7mmrli765zNWM2fbtzAxSpmjiFwJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51261},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"0943dd8853fe0c0bc4f1730d1f819a2133c7a45f","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_1.0.3_1776018137028_0.5240143735620115","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@yakocloud/state-vocab","version":"1.0.4","license":"MIT","_id":"@yakocloud/state-vocab@1.0.4","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"2aa882efcffd191012eab704cc3539f55d084861","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-1.0.4.tgz","fileCount":4,"integrity":"sha512-q3NlfK7Ic44rq0qbPc0BhG2olrCYj7vXGrbZT4gK4mEprFOOmwuSiWEhoruws7pu1KOU+rEma22kIjmh7IPq6w==","signatures":[{"sig":"MEQCIDOUss7FEzELLVfLz8g+7Rju2zeG163RbaVIhzxgAHtUAiACLqk2259NXB/2S19YlX3ojMZrN9r0xLmXI3lGPEy0yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51281},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"1348c3ab9576293f7f93b2c6e08258d9a5816bde","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_1.0.4_1776018441140_0.7188555602251654","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@yakocloud/state-vocab","version":"1.0.5","license":"MIT","_id":"@yakocloud/state-vocab@1.0.5","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"625822bdd8dce23c156a3821041591cf59d53a97","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-1.0.5.tgz","fileCount":4,"integrity":"sha512-WNCpusHGulFoWCpPm50MoAJvJzZR5VoUNcy7nO74U0sSokSbWthEjqcz2SU1oMDrQJOQ3D9CWhDbsTtk9R565A==","signatures":[{"sig":"MEQCIFOlZFEAOc0SpZ7DcqWaJagf1qd9aBFCwBwtOfQZFlLeAiBVf4qPZBH17YvL1JO/C+u/SuaG4fZI3rIuJGZHbzO3Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52143},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"203f8be453bf8d69b7567501a08d8d39335dff2a","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_1.0.5_1776097647391_0.5882516160689881","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@yakocloud/state-vocab","version":"2.0.1","license":"MIT","_id":"@yakocloud/state-vocab@2.0.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"dist":{"shasum":"ed19c30d2f566c1943439f5b248f49a52d716b4f","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.0.1.tgz","fileCount":12,"integrity":"sha512-965tjpEUT7g5DNVxqQHqzjxnkktUkzieW2v5P2jkVDi6hMR/E6nTUEszbEr7hYg4CLdch26eVxC5NYjUzSV0wg==","signatures":[{"sig":"MEUCIBFftmOggaWV2RplbVmwCQcACh2Zj2t1qSrgYxwJEhZ/AiEAmi3YCLB2YDFLU5ANnF+CnRGY1T1E+sxpKcZ9/V6wBnE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56389},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"9bb4dd65eea7612f84b02a8b3ca671575ca6c785","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","type-check":"tsc --project tsconfig.types.json","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.0.1_1777054175748_0.11844046059224267","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@yakocloud/state-vocab","version":"2.0.2","license":"MIT","_id":"@yakocloud/state-vocab@2.0.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"fcf1052a21707909d621383dabf2acd1fd8f5496","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.0.2.tgz","fileCount":4,"integrity":"sha512-QIqz7qovz1T9kOJUcAvXO8EtLVZYrX0CcLhsGvE5WoNyYt9mk/p3JFwrUb1ljQ/PW2TrdqDSH40yEa4hRflQEw==","signatures":[{"sig":"MEUCIQCIwqTVsQfZFP9EaL6dRlQl4rKyLscNBoAXVgs0P6oQhQIgZ6Fr+ph/uaE2kYNq2EHc0iTCStPpCYt7ba5Rd9gW1UA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34845},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"f5f87e375a71972503b318510cf0cb528c53018b","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","type-check":"tsc --project tsconfig.types.json","build:types":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.0.2_1777055437013_0.8173078165704317","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@yakocloud/state-vocab","version":"2.0.3","license":"MIT","_id":"@yakocloud/state-vocab@2.0.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"0d8f6ce4d9a97ab881ea11fccfe6fbb022a12748","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.0.3.tgz","fileCount":12,"integrity":"sha512-uv9eaihe/uecRVG+/Qf86J70DKif2W8zB65YvOuNCO9sNf0H11SzHjli04EVdFCW+FNuZ7Y+BTeqatdbuuFxMQ==","signatures":[{"sig":"MEUCIQCMLJIj6eM2ffZ2fthpXtWzRLB7Sc0qEBzR0TYzrXT4vgIgMP/VyHCijRP6aQY6hXRPRN+wv2OEk5odYfHxfYGOETs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37572},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"a17886a0ff01da797f4d3730543902bc98d40f85","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","type-check":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.0.3_1777055659260_0.19473330822384116","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@yakocloud/state-vocab","version":"2.1.0","license":"MIT","_id":"@yakocloud/state-vocab@2.1.0","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"5a86dd857ff9ecdd46f020f76277f55d465e1e90","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.1.0.tgz","fileCount":13,"integrity":"sha512-ZrghxbulstPmicDrP3Fewux7zWJPM9biqIL4n2VsyZDyzsLm1oCqKLs8tUkrqbobmb/9hJtje8C33GQN1yjq3Q==","signatures":[{"sig":"MEYCIQD5T0kHzq6/Y+G6TTGyT997up4b+OrE46e2hXkWLwd25QIhAMWHoHi+29NXWohit0o43VP6D3+Hzn+mF9wyW//5SzjC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38548},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"9ef0173dc7685c40c938fd1dee70fc5665f25603","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","test:watch":"vitest","type-check":"tsc --project tsconfig.types.json"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.1.0_1777119130762_0.7731382991450408","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@yakocloud/state-vocab","version":"2.1.1","license":"MIT","_id":"@yakocloud/state-vocab@2.1.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"9f8f2f03f628202b9dae07f92b5026259a5ce917","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.1.1.tgz","fileCount":13,"integrity":"sha512-g8TQ6rrpaMSCKeEbuHYXFHI4k3fm8putLhyGmebBSsPD/cZYS6nunkZjNKZQKUai6wXU3RbUYUu3vOLdDeB27Q==","signatures":[{"sig":"MEYCIQDSaQpqofMZwwRvDhongKzlAVS+risQvt4UTHjnsBKYdQIhAO8XnkMzOAMZJdOWXC8u6cR0E2dhILdba4M71+XBuZF4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38635},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"641faebed698ea3c3376f8ffb23fbf0e2e230595","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","test:watch":"vitest","type-check":"tsc --project tsconfig.types.json","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.1.1_1777120033862_0.6474848214836142","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@yakocloud/state-vocab","version":"2.1.2","license":"MIT","_id":"@yakocloud/state-vocab@2.1.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"6a70d830d9c40ddd2a119078ac3b97937216c589","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.1.2.tgz","fileCount":13,"integrity":"sha512-JaW96NHQwXyiOaOoy9x5rwTbrahsdksqDujaT6SfPnXRR/9T1ce5GRbVS0iKSxgSI8omal1ml1CPFunhpXsMMw==","signatures":[{"sig":"MEYCIQDaWfnFdI+tHqAUsUIwfhY7omqFRHDox28PNBk0LReYLAIhAPqiWpV2fhvh7C2F0EkSErrPuCP5tiTtZMqvGHNT9cBX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38660},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"08e0abe89772f8528d67a7bd9a70cc2c477fd137","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","test:watch":"vitest","type-check":"tsc --project tsconfig.types.json","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.1.2_1777120640257_0.06137514553596857","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@yakocloud/state-vocab","version":"2.1.3","license":"MIT","_id":"@yakocloud/state-vocab@2.1.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"8a887431280273893ea6975775823a2ed538e78b","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.1.3.tgz","fileCount":13,"integrity":"sha512-p/KxX3e7Om5Mdsc0amAe3PkAGt0eRaBzFazUtj9XFOjCVjzlb3vl+ViU4/2vtbF0a0BPdQnNSvdBrTcCL+GQ/Q==","signatures":[{"sig":"MEQCIESpF8SeVcfsAM/Y/OTIS7b8KO+t/MGN/GFE1TbbKASRAiBGzLuUyX3QWCMESXH+16p0U6E7dSRX4yCGI8XuOCwjwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39499},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"05c35aba8eb801e3b8918e1ad1c7d5606fdb0fe6","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","test:watch":"vitest","type-check":"tsc --project tsconfig.types.json","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.1.3_1777122201455_0.8514383630253022","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@yakocloud/state-vocab","version":"2.2.1","license":"MIT","_id":"@yakocloud/state-vocab@2.2.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"bc00ed9a17c6a7adebfc94d68e2e969d889078a1","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.2.1.tgz","fileCount":13,"integrity":"sha512-oIM973ObISUw6r+idAT61LUsqbI4+B+NsHeiEcJjwD489uIy+CXXWuaXeIm2p7lNBKgf1EsFLc47j13roJ4s0A==","signatures":[{"sig":"MEYCIQCpRXVCsr2ANQl5Ldw4CDgdA2FUbHo2b6wVngTn2Qj8uwIhAOoibS4OgFt66o5a8brSVrPR45bRCH7jF8o7LKUuns6m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39739},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"8667964436081a54cb7b183cb5b1fc2c00342136","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc -b && vite build ; tsc --project tsconfig.types.json","test:watch":"vitest","type-check":"tsc --project tsconfig.types.json","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.2.1_1777125598667_0.4561667845250643","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@yakocloud/state-vocab","version":"2.3.1","license":"MIT","_id":"@yakocloud/state-vocab@2.3.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"9434517d33495996c938a628f5ccab5bfbaf8b52","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.1.tgz","fileCount":12,"integrity":"sha512-nsfYHU1fxi7gdsE661HaMa4FXsLttQGOMeJHgCv3HLeQZKst6loXPMgxr2q9rPmQDac7Guy9ohmzgSVTiJ5c3A==","signatures":[{"sig":"MEUCICVrwuavqxo/7sO12GNeFbEj+Ueuu/F3OQmNMVCSHkYCAiEAy9DOEQ0liy13E8A/O6t44YnbUTwm44LeAApeSTnbOcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39218},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"a1e0ec217a488dba4b81c6db5150c8fb0a5e6108","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.1_1777199081457_0.7476092459438402","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@yakocloud/state-vocab","version":"2.3.2","license":"MIT","_id":"@yakocloud/state-vocab@2.3.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"5f5df2205fa3c6d486717386f7f1910682f1f2b3","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.2.tgz","fileCount":12,"integrity":"sha512-OXMk85XudOxOVWXJGctZDq69d9skKB8biUs3PvYw/jTykXLiy+1gZ5l6iVPjbhfT33Jp758JYpiyOw3xEwIC8Q==","signatures":[{"sig":"MEQCIAb4Q9JPOh03rQtlWPuTL3vo0Gay/OjLShwyAEv87pgCAiA0IRdFTMljMxg6vEzfxmYLs/8F09PBgtM7rz9YpVcn3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39218},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"de9eeebb4b8901c779057a0e11431511c5e4270e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.2_1777199947085_0.04030233218790569","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@yakocloud/state-vocab","version":"2.3.3","license":"MIT","_id":"@yakocloud/state-vocab@2.3.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"fa6cd47b4fc190522d43e370f094a13c701f99a4","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.3.tgz","fileCount":12,"integrity":"sha512-yBcvc43MaDoW6LdigsHgOYFNHyLe76yI1bf8WBNHvmbUQWV/QYVJmJn0hgi+67woJE8TG7gYZYmh+oBjzjtzfA==","signatures":[{"sig":"MEUCIDVTABu6PQ4+wO8gdgiqTYOWg2zXRUTWDtzHHCvqu0WIAiEAovhUGX/BQV9o/uKWd7tgmnhlZB6YXUCvG2qZK5QdIWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39232},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"7583a38d645e8db878847fd5ffd9c9093d7e2d2c","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.3_1777201225425_0.9227397994134072","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"@yakocloud/state-vocab","version":"2.3.4","license":"MIT","_id":"@yakocloud/state-vocab@2.3.4","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"c665bf4f59fb26fe81138d70df4b4b179436c7cf","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.4.tgz","fileCount":12,"integrity":"sha512-6s9XB+WhVEyGOwcIqc4yEWBPIMwpjbcj3HlNJgxKb8ZY3Gc6RgvTcfFjVihvi8hQO4QZlrRl8fBWTdmm+0Z2Mg==","signatures":[{"sig":"MEQCIGgk5ezDE3VFVXDbIKlJOoLd/k4Zk3tRP/k1OJNisAdTAiBdhs9C8JEOx6KzT7Esr0Xh79KSTQQr9LTmkKkzi+s0wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39330},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"bec85aafdbdff768c5b48885a07652df93e0c91f","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.4_1777202655256_0.12587781730664194","host":"s3://npm-registry-packages-npm-production"}},"2.3.5":{"name":"@yakocloud/state-vocab","version":"2.3.5","license":"MIT","_id":"@yakocloud/state-vocab@2.3.5","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"6e82a718603ea2c110bf36b307da392f255f527f","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.5.tgz","fileCount":12,"integrity":"sha512-Z77zLw6fcZIOYyaPGqyTutlINlhu4piRvl/cJi9mwynd3vlDp0B4+2+27Qrn//ivxXse7vw/9vbbXaca5zVXMQ==","signatures":[{"sig":"MEYCIQDFG/MFsYaPMfx3FnusdbyuvK+DfYtLTHQdrd/XATwxOQIhALTkZMHLjneCfM1YbASaUMJiB+njmOni21XLGa7dJZz8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39749},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"f9bf7cf2e9ad55790ed8e319260913c79089f565","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.5_1777202998655_0.287326488613068","host":"s3://npm-registry-packages-npm-production"}},"2.3.6":{"name":"@yakocloud/state-vocab","version":"2.3.6","license":"MIT","_id":"@yakocloud/state-vocab@2.3.6","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"219fcc598e9dcda68e5a522b5f14b7d2b3ae8038","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.3.6.tgz","fileCount":12,"integrity":"sha512-TzOaEw4pldOdhEI3Jgo4068O4iHFJ3tQu8c6XP83C+DCevDtIdTa0QeRSvlvWpGLZoBe5Fcs2NDXtwR/37OzUQ==","signatures":[{"sig":"MEUCIBy1jRF5siFlQAHRDewylx1BD8uXMJWo3UX/Y18Ga3ERAiEA7XjEvEuNMbhcPCChkMUyakRNOTputd8ayQSDs2kIVzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39216},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"3c18fb4d3d302a304a1b576e97d72bbc57ae69a2","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.3.6_1777203586574_0.23023424645232016","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@yakocloud/state-vocab","version":"2.4.1","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@2.4.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"b0ed6f9aa0e5db84d935be75adc2ca6a0b4e8ae2","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.4.1.tgz","fileCount":14,"integrity":"sha512-SeS1eIEIw/CFtEFp907mhK2UrzF/u2Tp4nz/FoYYvq06WSdxj54SFOzXxoSi2Ih42cAbehX0rQMVIMSHqHUH3A==","signatures":[{"sig":"MEYCIQC9M2jFBIytBxi/t76k+xYNM399YBjucdaD0JZHJ3FZRQIhAI7GYRvctwbQFX7x7aNNJYT7MxgUxgKVxY5GfBGHytlB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41796},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"dcd5f45c6bce8ceeb0f9a53611b4e25702b1bc90","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.4.1_1777313138943_0.8400857615062385","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@yakocloud/state-vocab","version":"2.5.1","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@2.5.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"e640b7d6376bed1994cfd44f17f173fb7ddf3445","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-2.5.1.tgz","fileCount":14,"integrity":"sha512-PsV1bMgng3YEwFap43q2cZLKLA1jXbGWHjwX+AY5MFG6nbg3q1icigqkE96uqF/SV0YG3rlgv0wpc0Nfy9xNIA==","signatures":[{"sig":"MEYCIQCTjL7myJlFLetoK3N6lghb3T3uHTWdsXry9BrfkslufQIhAIEbXgBhZYnnqiI3du5HECH82zKYkQrcYs5eWFfZ2edi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41823},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"db98dd8c627e00d83c20e0a39777bc1dc969df5e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_2.5.1_1778264978010_0.11816689572065053","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@yakocloud/state-vocab","version":"3.0.1","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"32f5256a0beec6cfafa0f59da8ec496141f4a996","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.1.tgz","fileCount":13,"integrity":"sha512-hdbxVgZYlk/elwUrsX8Gq78V6ThZb7A8HkQnuSlkrE30RT5/6s9C1jYY2KPG/7yWTQTlBb3FqYsnJV5M5Pl8ug==","signatures":[{"sig":"MEUCIBwEYpo6XUsOkQVxFfZtOQgxwzBMatOgRvnz0zjVFZTdAiEA+BIu54PHL4dfPaC5aXDerX+fczGBZMb7LtsiKSK1DbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25325},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"b896a879b65fd136b1e99e9bc66b25ca5d47a2b4","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.1_1778348255774_0.31424896379577305","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@yakocloud/state-vocab","version":"3.0.2","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"98fd1d784638201c8d75f63f99ff0a0511653b1f","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.2.tgz","fileCount":13,"integrity":"sha512-UvGSN06Fwf1aPoTOWP5Bheg1QQZHJWXEd0eMZneVfR/1gED99XaP7P8STChpBl2tSX+2ZftyP0l6bp+tOZAOIQ==","signatures":[{"sig":"MEQCIDM6jUC7YAQciTWU3ZLSO3CtvIKxUiCbA6trHSvNKCoIAiBkrajaf4F0MpTmqGji7rn/zH6i0dWEOB9GJDN5pxKtCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26866},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"e30757fa8977cf994f8150ffc7d118a0efdd4b72","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.2_1778411037128_0.27665546369317195","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@yakocloud/state-vocab","version":"3.0.3","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"0b50dc951df9dda17e4998e0f32cead773a5890a","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.3.tgz","fileCount":13,"integrity":"sha512-LuntYVY6xIDHRyKloIAS6X+PPYUQJa7mBzAL3jOuZh53kG1iCRrNqPmILzFrjEUw3bM+odT1LfrGSU2N8JeoRw==","signatures":[{"sig":"MEUCIFpdzxW4jEKMEhoHGMBFmvNOlLNaLgg3E/LLeYAPih5eAiEAjPHbdV7R90XhrDeBIDGYHmvPJMypdB2oaAygiuDRqa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28436},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"0d148e39db8828c7ae60f9985251b98a28a8cb80","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.3_1779446448588_0.222940727287938","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@yakocloud/state-vocab","version":"3.0.4","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.4","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"e9a263f65a66b112ff07fb2aa2d102548a7f55a6","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.4.tgz","fileCount":13,"integrity":"sha512-Ut732Boi6ssjlloHKK67vAzDMJyuRH8cp6v925p1fG7aEhubkqf7e0YIfO6FRZF0ydsqt3k9r9qJuxGBKUo6TA==","signatures":[{"sig":"MEUCIQC2eW2pcSb1S79mCPC6H6MFp5o9VJ1dRmu859aYMgf/agIges3zejg+X0kzCA9mL2XJXLyEJc1hgi7LfOqespoExrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28458},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"d5b6c8c0982738df7408fb2a6ab16e6ed42c76d0","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.4_1779447986401_0.3187079005838849","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@yakocloud/state-vocab","version":"3.0.5","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.5","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"32d8151d2961e8ea8bddc6c4336888094eca79d0","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.5.tgz","fileCount":14,"integrity":"sha512-FcAPRO5p//PMRFsrS6iTQjfanNkEQNwrhIGJkpPF+zCfigEm+t4yOtabuO6+7ZrdHW0CSyNrKGzZtvA4Q23TGw==","signatures":[{"sig":"MEYCIQDjP1VQB+vfbkA7bXib4cCf24j6zUEc78/40aiJUY3btQIhAKRe/1GJ+aMMN9PpZgmTxHxDtXZhuW9T/gpToIbo/pQ1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29264},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"9b5fbff082a84561ae2a7c48636dee92336636c7","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.5_1779912931698_0.19234645215448776","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@yakocloud/state-vocab","version":"3.0.6","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.6","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"b63f51f8529e1f17092a554468bd1d831b65863b","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.6.tgz","fileCount":14,"integrity":"sha512-OEdeQymWr4+q/Gx3Hy7MT9AlPObjR3lwJJVazbiNSD7jNJ3dgIy2nRTW5Vjvh6zsp4eAi0wBVUIW32ra/5Yz8w==","signatures":[{"sig":"MEYCIQC2+Ff6z/XNZR7aWvm2TjG5+4JaC3Cj6eyk0pBhgISP7wIhANXg5sxf6b+d7MvUNBqo2IHSDxXPHHx3ddiRL6drwfvr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29589},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"0cf9758115997e1f78c64b7abcae773f72678984","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.6_1779919346108_0.8804690808305997","host":"s3://npm-registry-packages-npm-production"}},"3.0.7":{"name":"@yakocloud/state-vocab","version":"3.0.7","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.7","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"f3beaca65d88f748733241297a82c381e6ed3141","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.7.tgz","fileCount":14,"integrity":"sha512-Z8Sk4t+oHwMnTPyetoVTU5nEWckqPD8daeFUHHBIfPZrvc5VuqxDgP1Lv3ClbqMU+Qe8r+T90xEyc8ZEUt1tPw==","signatures":[{"sig":"MEUCIGaU3g7Ih2FnDa0c2oTSH8rMFHhrmSMNhv8S+X+hNRx0AiEAwM0sxZSxrjy1t70hwmvBiV8N3knzA7HqBrNoyfUfbAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29778},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"1dfe2a666227432b44a01755f554aad6c3c0216e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.7_1779919475517_0.33246064165954947","host":"s3://npm-registry-packages-npm-production"}},"3.0.8":{"name":"@yakocloud/state-vocab","version":"3.0.8","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.8","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"aab586b5102abcc298978afa837a66babf164fff","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.8.tgz","fileCount":14,"integrity":"sha512-8Caxk+RJC2RXjlF+LUtzBeBBXsRvDtqm2e3o0e6fmYUCf7BHzLb60uhgzIa6Avj5J1+jWq1xAuXi5WNMnQrzLQ==","signatures":[{"sig":"MEUCIQCNJCP8iRPCDGyEPIYYWprJ6oI9D4MbRriXF0EZSQew0AIgNb0HGGwPVCVoJuXMP+3y26m7TWi5wo9f5l7DeyDNQbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29962},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"52569d7e325950bef4d35b9821aa8d80157917bd","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.8_1779920759413_0.3781548132479171","host":"s3://npm-registry-packages-npm-production"}},"3.0.9":{"name":"@yakocloud/state-vocab","version":"3.0.9","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.0.9","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"34acffa78ad23230a5b95375d4633935fbe68606","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.0.9.tgz","fileCount":14,"integrity":"sha512-uEd2BZ3ENaheidSAGkOQ3aEYD3lVOgRY7F/ZSdaHN8g3gamP2oMDHLBvDDzXxZ8M7j807k0oDihZ9r5LiCSY1w==","signatures":[{"sig":"MEYCIQDYQJFJNabL9yQ2ROVdpOR4UTxrRXXOsBzG+aRFiChZCAIhAL379iA1Vo0q4ZNGh9bZmORiEu6RajAW3pMpLuOEV0rA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29939},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"272db5918383a44654aebe9b0d8d6b951434cb7a","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.0.9_1779921088107_0.017122832563716273","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@yakocloud/state-vocab","version":"3.1.1","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"984335f4103896cf36ef70d90e39184e513c0e21","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.1.tgz","fileCount":15,"integrity":"sha512-W9EYKb94+GkiikAjtx2SPO+RrjcdYiCVRvweO1D0pUvvfaipQaCIyGNbhCCY66cTofjE7au9NTvQvCJMdcEGng==","signatures":[{"sig":"MEUCIHbU8osX6/naPtB+npnQlkW1AnK5rjS4pcj5i2VQO/GXAiEAk/rqszja43ERX7DS+4+m+nb4ORy2bKkpKcymsH/yFkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42621},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"58e8a029530f0c76b19cf1abeb44304eccbb8d7c","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.1_1779953303141_0.1887920568887118","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@yakocloud/state-vocab","version":"3.1.2","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"5e7bda1e995bd6ae8e8fa3abbebce01e18c0e6ef","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.2.tgz","fileCount":15,"integrity":"sha512-/tV0z6Tu/0moARXBQDG60HnTlVb1hr3iGfw7CT/Y//wnsp6qzlh27Jk2RyixWdqPTgn39FKS9U20ln1eub1Z6A==","signatures":[{"sig":"MEQCICXq2p8km+DwecCU0QFC1X31zTwmulRr4klWXjddYalMAiAM10ARkCJQAsd18w0uRHXEYMj8yGFQb77fPC/vkbPZ8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44413},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"268042b878a63fb2a4746579699a0c1db56262cb","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.2_1779954102438_0.7490482836759185","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@yakocloud/state-vocab","version":"3.1.3","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"bc90f0d6e0d0e50a392534c6bc705aaefb673fa2","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.3.tgz","fileCount":15,"integrity":"sha512-BAhf7Iob27yxNxsg9VTZa7B/PDRvfk9wwqzkYu+wCd1Esj0SLIr4Wt/ZpNbKoFmXCcfaNqDfgihasRPd6m85bg==","signatures":[{"sig":"MEUCIQD1+vR5UCNvCtcggXKOseoqk788pE0RKRxElQE9a3wyaAIgZe9CTwOgllnIkC2ZlTV1okD8X8j9MaYQji4fw2/AKnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46811},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"78396dc45ed1fbb6e12413edf210f72d3e2d4c99","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.3_1779956298405_0.6875526854486356","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"@yakocloud/state-vocab","version":"3.1.4","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.4","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"cff6397690c37b0a967b6e15ba111a1ba757209f","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.4.tgz","fileCount":15,"integrity":"sha512-HKneMCF9ybwGbgvY2dcmjhXbUMfHKi7mwXGULso/lISpB4hUrssYPdEkO3QC94VKsKH8+c97dpG5Ii3657QQVQ==","signatures":[{"sig":"MEQCIERv3RIWnPxrYbw9ZYlUheNxZV1BKxqdoRiEB/fdyU1uAiAntQbLOLq5Kwa5cPy3+UTaZFGtwzbFNL1WuAYCJltxdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48268},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"78396dc45ed1fbb6e12413edf210f72d3e2d4c99","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.4_1780068809771_0.24284793458499077","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"@yakocloud/state-vocab","version":"3.1.5","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.5","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"781c7d7f6fd8d8987c2c7eb511ac33a68e5d2fe8","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.5.tgz","fileCount":15,"integrity":"sha512-wg1rhX4yi2lj2msTfWDMYsuS69OLz8PCZAX+yXS3ovNZW4yAFOwyhUJQKCTSKz6V7hB4LkwbvYn8M17HgnCQcw==","signatures":[{"sig":"MEYCIQDOvsdga+MXBBDoRuZXeN7asp2GM+HaKotpAwp4smTBqAIhAPAo+VK8IGqwLK6BOY2opK3/xhPXF76l48d+oDj2LzFL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48833},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"63fe518003e67b28a04bf61e9ae2554b07d38431","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.5_1780347400898_0.38294938935975487","host":"s3://npm-registry-packages-npm-production"}},"3.1.6":{"name":"@yakocloud/state-vocab","version":"3.1.6","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@3.1.6","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"49c5d113cedfe50a935381fd5abf236ed5084b55","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-3.1.6.tgz","fileCount":15,"integrity":"sha512-8bC02dz7kKGkeX0P2y/6JtGo+tWi4BuyE28tqU8TOEFDsEDzQZQUZy0csgx8znwF0XLiF0h9h+FGD9Ft9sbHUg==","signatures":[{"sig":"MEUCIAym6FnN5OaoYJL2t/4Fg5CamL901QVa7+6z0RU+ZOW2AiEA0JYhXTDNWp5KpSZGHgiBGi6VR/SX5IqMeoYF+J2MOfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48860},"main":"dist/state-vocab.cjs.js","types":"dist/types/index.d.ts","module":"dist/state-vocab.es.js","gitHead":"88d0b9853c4e1ea34f6bf780edb875c4d3f2c48e","scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom).","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_3.1.6_1781158754757_0.441281259334769","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@yakocloud/state-vocab","version":"4.0.0","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.0.0","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"fb2c58cd2454bada6be0b9b9295e59673abb506d","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.0.0.tgz","fileCount":30,"integrity":"sha512-pJJK3+UvaWRtYpuMUuNLFdNSESCWWqio6QwLHSNCltAqTciPC6MPjT5Ad857ztCgPEQwM5dgBkPSNGqS530Iaw==","signatures":[{"sig":"MEUCIDsutX+uRhdjuCdg+ftYqOnzERLs5tsZig/TKB6Dda6kAiEAvvrSMDFDpEeP/7q5a1dPDjILA7APmQ47tZF2+wwgx60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53012},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"1d09681ff0deecd4d3c4c581b595b1206389e8bc","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.0.0_1781448733899_0.16897011457729016","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@yakocloud/state-vocab","version":"4.0.1","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.0.1","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"fc9c34ad6a3d8d60e9eec12fa67d7c3acf0fd79a","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.0.1.tgz","fileCount":30,"integrity":"sha512-aLz+eyF+zLbZA7M6r3LW6S17ZyZ3bZHF5dATCeh/sAP2DkAeQ9iuebdlNNgPT5IDauAjVvByfwUKbiFRNPTQcA==","signatures":[{"sig":"MEUCIGBm+1K+G52JJ0KddJqV6IP/cTnmyKwd7vgB2QvGxgVrAiEApWBnTqS4aNphHPeQ5UpmpPqwWXk8jQioNswHePVPW9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52743},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"548ca255d0a2325b5f4d48e458a714cb8d8b3c7c","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.0.1_1781453137053_0.9048652452707866","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@yakocloud/state-vocab","version":"4.0.2","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.0.2","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"fb721ce57f1d075e8935be5e8d368746d4211779","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.0.2.tgz","fileCount":32,"integrity":"sha512-UtbFGU1YQFNsudDosoRcRYk7A36f4h7XJXY8dF5spw806MEypVxp7KOcfNuTF2vilUgtf8vkPNgAT2um5DhChA==","signatures":[{"sig":"MEUCIQDhe8Ta2ziX/2Pcwe4XrvDr2alVIMRx7kUrVvISQtqnhQIgOEIpaKYKDEtp7sGa3Q0IFhPNVkEtVK9JwF89JzXUk/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53735},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"6c911892874d09371f0fa6e03ba0ee3196fac4a8","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.0.2_1781517693630_0.20387994668049036","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@yakocloud/state-vocab","version":"4.0.3","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.0.3","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"c4ab146e3d064366de47489ff5c5cc6c3f34f713","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.0.3.tgz","fileCount":32,"integrity":"sha512-bx3VN2APgvQal37G5ngmwEolXm8Re6qAbPAlwSRRYo3GsIfnommrZQ7iNdqdFZ6y/+WcfXhxs0qNt6DSFKqXIg==","signatures":[{"sig":"MEQCIAK8aBV2g0z0mMOTwg3ShjSOJ6dBqhVnjDia64rBBpyFAiA2YL3fvVRhgSVySpxNTooEk2GmEGX5n2oXEt5XwbxbWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56849},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"b7243c59c6a48d867a669387cafddfb85b4e02a0","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.0.3_1781519362634_0.03945961098647999","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@yakocloud/state-vocab","version":"4.1.0","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.1.0","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"7549854d3f17fcb3670151eed534c6deb7f8177c","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.1.0.tgz","fileCount":32,"integrity":"sha512-by9qSfVk0XGBan327E9aAy3+syqYaCUHBbiyEYyJ5l/7FqQGoJmP1cgA1UlMfBAs59Ve0MsSy829/P/odhLq3w==","signatures":[{"sig":"MEQCIHSippIVVR+2Bz74wYo8EgZfcEbzlwrHhYGceE6a+xVUAiBEtmigWv8kg6n1cqQtp9TD9dacQYPYPNZiX1aoTxl00Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60979},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"9b9c7247684034441f6dc189426e9a9ca4b7fafd","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.1.0_1781557682331_0.05489957554966107","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@yakocloud/state-vocab","version":"4.2.0","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.2.0","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"8478653a5054bfd503218acd65fe98cec4aa3b8c","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.2.0.tgz","fileCount":30,"integrity":"sha512-c+gg+uMyYdGkmp/jDiEUkyvbtgIDeLLC+P4/7zD6YM2N09K3jOFcKw7+OlWTEzr+Ct4dkaT7MwwSTCptR7bEYA==","signatures":[{"sig":"MEQCIF0lJ2xLmcEtbQdgnXeNuV5qB/hRoyyPrOSa1oBiKhLUAiA5JLujMRAX6xV3WBto/DEupaBR7dxaqt2CD85lGmzwSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61654},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"93d94f5a477c35b484bd8c8b2c599eedb31230ed","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.2.0_1781606174812_0.1722684705934634","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@yakocloud/state-vocab","version":"4.3.0","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"license":"MIT","_id":"@yakocloud/state-vocab@4.3.0","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"dist":{"shasum":"7b76278acae55c60d70570a9927dc322d1255242","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.3.0.tgz","fileCount":33,"integrity":"sha512-m5tai3nZRrM/A/fgkJzuZ1PSMIvgHCQcBSeOynTXsmfCRYVE2lh0cYUkWi9xb3odp6z1nqaPWOhK0D9ooFfyDQ==","signatures":[{"sig":"MEUCIQDhWTDAdoRVsmDjCtXwceEMB2d7p/FiP+EfL4P+TZ4H6gIgf3+j5A+jP2j3vFRqkaJIhneQvf6KNTqzesW+bvY8bX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61475},"main":"dist/index.cjs.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"gitHead":"1a865bb82aad2cc04925e1d453217fced5e1e204","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc --project tsconfig.build.json && vite build ; tsc","test:watch":"vitest","type-check":"tsc","test:report":"npx vitest run --reporter=verbose"},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"repository":{"url":"git+https://github.com/yakovenkoroman1993/state-vocab.git","type":"git"},"_npmVersion":"10.9.4","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","jsdom":"^29.0.2","eslint":"^9.39.1","vitest":"^4.1.5","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@vitejs/plugin-react":"^5.2.0","@testing-library/react":"^16.3.2","@testing-library/jest-dom":"^6.9.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"_npmOperationalInternal":{"tmp":"tmp/state-vocab_4.3.0_1781686735872_0.19888017489636578","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@yakocloud/state-vocab","version":"4.3.1","main":"dist/index.cjs.js","module":"dist/index.es.js","types":"dist/types/index.d.ts","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./client":{"types":"./dist/types/client.d.ts","import":"./dist/client.es.js","require":"./dist/client.cjs.js"},"./server":{"types":"./dist/types/server.d.ts","import":"./dist/server.es.js","require":"./dist/server.cjs.js"}},"license":"MIT","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"repository":{"type":"git","url":"git+https://github.com/yakovenkoroman1993/state-vocab.git"},"homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"scripts":{"build":"tsc --project tsconfig.build.json && vite build ; tsc","lint":"eslint .","type-check":"tsc","test":"vitest run","test:watch":"vitest","test:report":"npx vitest run --reporter=verbose"},"peerDependencies":{"react":"^19.2.1","react-dom":"^19.2.1"},"devDependencies":{"@eslint/js":"^9.39.1","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/jest":"^30.0.0","@types/node":"^25.9.3","@types/react":"^19.2.5","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.2.0","eslint":"^9.39.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","globals":"^16.5.0","jsdom":"^29.0.2","typescript":"~5.9.3","typescript-eslint":"^8.46.4","vite":"^7.2.4","vitest":"^4.1.5"},"_id":"@yakocloud/state-vocab@4.3.1","gitHead":"39bbec71823c934597c0168bad35b85fbd5c912a","description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-oF5snep8oNDmq2F/3Z56xu/jXJs2WeM3TJZPCzTLrkpBZPw1G0WiisUd82Bkn3KlPiyJdonkgF441dqWwT77kw==","shasum":"8a0c81c7f61f190b8b0c715e60ca2a23c5d8a4aa","tarball":"https://registry.npmjs.org/@yakocloud/state-vocab/-/state-vocab-4.3.1.tgz","fileCount":33,"unpackedSize":62024,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDvaJ5rtDCh+E/ylOH/6fp9AEuu/rzCS/2MGnPbo/tTyAiEA3Od2YhZER0pZPGW+rGd1H3Uvd8Z182n1aycmVIC/o34="}]},"_npmUser":{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"},"directories":{},"maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/state-vocab_4.3.1_1781765372927_0.3559236112337498"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-12T18:05:08.970Z","modified":"2026-06-18T06:49:33.202Z","1.0.1":"2026-04-12T18:05:09.233Z","1.0.2":"2026-04-12T18:14:09.127Z","1.0.3":"2026-04-12T18:22:17.221Z","1.0.4":"2026-04-12T18:27:21.284Z","1.0.5":"2026-04-13T16:27:27.542Z","2.0.1":"2026-04-24T18:09:35.882Z","2.0.2":"2026-04-24T18:30:37.154Z","2.0.3":"2026-04-24T18:34:19.468Z","2.1.0":"2026-04-25T12:12:10.896Z","2.1.1":"2026-04-25T12:27:14.017Z","2.1.2":"2026-04-25T12:37:20.408Z","2.1.3":"2026-04-25T13:03:21.594Z","2.2.1":"2026-04-25T13:59:58.804Z","2.3.1":"2026-04-26T10:24:41.591Z","2.3.2":"2026-04-26T10:39:07.214Z","2.3.3":"2026-04-26T11:00:25.618Z","2.3.4":"2026-04-26T11:24:15.401Z","2.3.5":"2026-04-26T11:29:58.799Z","2.3.6":"2026-04-26T11:39:46.759Z","2.4.1":"2026-04-27T18:05:39.079Z","2.5.1":"2026-05-08T18:29:38.171Z","3.0.1":"2026-05-09T17:37:35.923Z","3.0.2":"2026-05-10T11:03:57.296Z","3.0.3":"2026-05-22T10:40:48.758Z","3.0.4":"2026-05-22T11:06:26.559Z","3.0.5":"2026-05-27T20:15:31.861Z","3.0.6":"2026-05-27T22:02:26.519Z","3.0.7":"2026-05-27T22:04:35.660Z","3.0.8":"2026-05-27T22:25:59.555Z","3.0.9":"2026-05-27T22:31:28.248Z","3.1.1":"2026-05-28T07:28:23.315Z","3.1.2":"2026-05-28T07:41:42.584Z","3.1.3":"2026-05-28T08:18:18.593Z","3.1.4":"2026-05-29T15:33:29.899Z","3.1.5":"2026-06-01T20:56:41.046Z","3.1.6":"2026-06-11T06:19:14.906Z","4.0.0":"2026-06-14T14:52:14.053Z","4.0.1":"2026-06-14T16:05:37.185Z","4.0.2":"2026-06-15T10:01:33.778Z","4.0.3":"2026-06-15T10:29:22.759Z","4.1.0":"2026-06-15T21:08:02.498Z","4.2.0":"2026-06-16T10:36:14.946Z","4.3.0":"2026-06-17T08:58:56.017Z","4.3.1":"2026-06-18T06:49:33.078Z"},"bugs":{"url":"https://github.com/yakovenkoroman1993/state-vocab/issues"},"license":"MIT","homepage":"https://github.com/yakovenkoroman1993/state-vocab#readme","keywords":["react","state","state-management","storage","localStorage","sessionStorage","persist","persistent-state","hooks","useState","typescript","no-boilerplate","sync","cross-tab"],"repository":{"type":"git","url":"git+https://github.com/yakovenkoroman1993/state-vocab.git"},"description":"A lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.","maintainers":[{"name":"yakovenkoroman1993","email":"yakovenkoroman1993@gmail.com"}],"readme":"# @yakocloud/state-vocab\n\nA lightweight React state management library that synchronizes component state with any `Storage`-compatible backend (localStorage, sessionStorage, custom). Supports React Server Components and Next.js SSR out of the box.\n\n## Why use state-vocab?\n\nMost state managers treat persistence as an afterthought — you manage state first, then manually sync it to localStorage. **state-vocab flips this**: storage is defined upfront alongside the state itself, and synchronization is automatic.\n\n**Storage-first by design.** Every state node declares its backend at definition time — localStorage, sessionStorage, or any custom adapter. No `useEffect(() => localStorage.setItem(...), [value])` scattered across components.\n\n```ts\nconst storage = setupStorage({\n  theme: defineState({ storage: localStorage, defaultValue: 'Dark' }),\n  session: defineState({ storage: () => sessionStorage }),\n  inMemory: defineState({ defaultValue: 0 }),\n})\n```\n\n**Bring your own backend.** The `storage` option accepts any object implementing the [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Storage). Point state directly at a server, IndexedDB wrapper, or encrypted store — no extra adapters needed.\n\n```ts\ndefineState({\n  storage: {\n    getItem: (key) => api.get(key),\n    setItem: (key, value) => api.set(key, value),\n    removeItem: (key) => api.delete(key),\n    length: 0,\n    clear: () => {},\n    key: () => null,\n  }\n})\n```\n\n**No prop drilling.** State lives in a shared `storage` object imported directly into any component. No need to pass values down through layers of props or lift state up to a common ancestor.\n\n```tsx\n// ❌ without state-vocab — thread props through every layer\nfunction Page({ theme, onThemeChange }) {\n  return <Sidebar theme={theme} onThemeChange={onThemeChange} />\n}\nfunction Sidebar({ theme, onThemeChange }) {\n  return <ThemeToggle theme={theme} onThemeChange={onThemeChange} />\n}\nfunction ThemeToggle({ theme, onThemeChange }) {\n  return <button onClick={() => onThemeChange('Dark')}>{theme}</button>\n}\n\n// ✅ with state-vocab — import storage, use directly\nfunction ThemeToggle() {\n  const [theme, setTheme] = storage.preference.theme.useState()\n  return <button onClick={() => setTheme('Dark')}>{theme}</button>\n}\n```\n\n**Initialize once at the root, read anywhere in the tree.** Call `.useState()` with a `defaultValue` at a parent component to seed the state — then call `.useState()` without arguments in any descendant to consume it. No context wiring, no prop passing.\n\n```tsx\n// Root component — initializes the state\nfunction Page() {\n  storage.demo.pageProps.useState({\n    defaultValue: {\n      a: 1,\n      b: 2,\n      c: ['one', 'two'],\n    },\n  })\n\n  return <DeepChild />\n}\n\n// Somewhere deep in the tree — reads the same state\nfunction DeepChild() {\n  const [pageProps] = storage.demo.pageProps.useState()\n\n  return (\n    <div>\n      <p>a: {pageProps.a}</p>\n      <p>b: {pageProps.b}</p>\n      <p>c: {pageProps.c.join(', ')}</p>\n    </div>\n  )\n}\n```\n\n**React Server Components support.** Read state in async server components and seed it into client components — no extra API routes or serialization boilerplate.\n\n**Dot-notation access with full TypeScript inference.** The state tree is navigated like a plain object — autocomplete guides you to the right node, and types flow from `defineState<T>` all the way to the hook return value without any manual annotations.\n\n```ts\nconst [theme, setTheme] = storage.preference.theme.useState()\n//     ^? 'Dark' | 'White' | 'System'\n\nconst [birthday, setBirthday] = storage.personal.birthday.useState()\n//     ^? Date | null\n```\n\nIf you rename or restructure a node in `setupStorage`, TypeScript immediately flags every broken reference across the codebase.\n\n**Custom serialization per node.** Dates, Maps, class instances — define `serialize`/`deserialize` once and the hook handles the rest transparently.\n\n```ts\ndefineState({\n  storage: localStorage,\n  deserialize: (raw) => new Date(JSON.parse(raw)),\n})\n```\n\n**Minimal API surface.** `defineState` and `setupStorage` define the state tree; `clientify` from `@yakocloud/state-vocab/client` wires up React hooks. No actions, reducers, selectors, or stores to configure.\n\n## Installation\n\n```bash\nnpm install @yakocloud/state-vocab react react-dom\n```\n\n> `react` and `react-dom` are peer dependencies and must be installed separately.\n\n## Quick Start\n\nDefine your storage tree once (`setupStorage`/`defineState`), call `clientify` to attach React hooks. If you use React Server Components (RSC), wrap the relevant subtree with `StateVocabProvider` and call `serverify` to attach server-side `.getState()` methods. Use state anywhere in the tree.\n\nLibrary SSR-requirements:\n- `Per-request store`: A Next.js server can handle multiple requests simultaneously. This means that the store should be created per request and should not be shared across requests.\n- `SSR friendly`: Next.js applications are rendered twice, first on the server and again on the client. Having different outputs on both the client and the server will result in \"hydration errors.\" The store will have to be initialized on the server and then re-initialized on the client with the same data in order to avoid that.\n\n```tsx\nimport { setupStorage, defineState } from '@yakocloud/state-vocab'\nimport { clientify } from '@yakocloud/state-vocab/client'\n\ntype Theme = 'Dark' | 'White' | 'System'\n\nconst storage = setupStorage({\n  path: {\n    to: {\n      theme: defineState<Theme>({\n        storage: localStorage,\n        defaultValue: 'Dark',\n      }),\n    },\n  },\n}, {\n  ssr: false // by default true\n})\n\nconst clientStorage = clientify(storage)\n\nfunction Settings() {\n  const [theme, setTheme] = clientStorage.path.to.theme.useState()\n\n  return (\n    <select value={theme} onChange={(e) => setTheme(e.target.value as Theme)}>\n      <option value=\"Dark\">Dark</option>\n      <option value=\"White\">White</option>\n      <option value=\"System\">System</option>\n    </select>\n  )\n}\n```\n\n## Core Concepts\n\n### `defineState(options?)`\n\nDefines a state node. Options:\n\n| Option | Type | Description |\n|---|---|---|\n| `storage` | `Storage \\| (() => Storage) \\| undefined` | Where to persist the value. Omit for in-memory only. |\n| `defaultValue` | `T \\| (() => T)` | Value used when storage has no entry. Accepts a factory function. |\n| `bidirectional` | `true \\| undefined` | Sync state across browser tabs via the `storage` event. |\n| `serialize` | `(v: T) => string` | Custom serializer. Default: `JSON.stringify`. |\n| `deserialize` | `(v: string) => T` | Custom deserializer. Default: `JSON.parse`. |\n\n```ts\n// In-memory (no persistence)\nconst counter = defineState({ defaultValue: 0 })\n\n// localStorage with custom type\nconst theme = defineState<'Dark' | 'White'>({\n  storage: () => localStorage,\n  defaultValue: 'Dark',\n})\n\n// localStorage with custom deserialization\nconst birthday = defineState({\n  storage: () => localStorage,\n  deserialize: (raw) => new Date(JSON.parse(raw)),\n})\n\n// bidirectional — syncs value when changed in another tab\nconst note = defineState({\n  storage: localStorage,\n  bidirectional: true,\n})\n```\n\n### `setupStorage(tree, options?)`\n\nWraps a nested object of `defineState()` nodes and injects dot-separated paths into each leaf. The returned object mirrors your tree structure.\n\n| Option | Type | Description | Default |\n|---|---|---|---|\n| `verbose` | `boolean \\| undefined` | Log current state to the browser console on every change | `false` |\n| `verbosePath` | `string \\| undefined` | Narrow verbose logging to a specific subtree (dot-separated path). When set, only that subtree is logged instead of the entire state. TypeScript will autocomplete valid paths based on your tree. | `undefined` |\n| `ssr` | `boolean \\| undefined` | Defer storage reads until after hydration (Next.js / SSR) | `true` |\n\n```ts\nconst storage = setupStorage({\n  user: {\n    name: defineState({ storage: localStorage }),\n    age: defineState({ defaultValue: 0 }),\n  },\n})\n\nstorage.user.name  // → path: \"user.name\"\nstorage.user.age   // → path: \"user.age\"\n```\n\nEnable verbose logging during development:\n\n```ts\nconst storage = setupStorage({ ... }, { verbose: true })\n```\n\nNarrow verbose logging to a specific subtree:\n\n```ts\nconst storage = setupStorage({\n  user: {\n    profile: defineState({ ... }),\n    settings: defineState({ ... }),\n  },\n  cart: {\n    items: defineState({ ... }),\n  },\n}, {\n  verbose: true,\n  verbosePath: \"user\", // only logs changes inside \"user.*\"\n})\n```\n\nTypeScript will only accept paths that exist in your tree — `\"user\"`, `\"user.profile\"`, `\"cart.items\"`, etc. Invalid paths are caught at compile time.\n\n### SSR / Next.js (client components)\n\nWhen using localStorage or sessionStorage in a Next.js app, the server renders with `defaultValue` while the client reads the persisted value — causing a hydration mismatch. Pass `ssr: true` to fix this:\n\n```ts\n// lib/storage.ts\nconst storage = setupStorage({\n  preference: {\n    theme: defineState<Theme>({ storage: localStorage, defaultValue: 'Dark' }),\n  },\n})\n```\n\nBy default `ssr: true`:\n- **Server & first client render** — always use `defaultValue`, storage is not read\n- **After hydration** — `useLayoutEffect` fires synchronously before paint, reads storage and updates state\n\nThis guarantees the server and client produce identical markup, and the value from storage is applied without a visible flash.\n\n### Next.js Pages Router (SSR without RSC)\n\nIf you use Next.js with the **Pages Router** (or any SSR setup without React Server Components), you still need `ssr: true` to prevent hydration mismatches — but you don't have server components to wrap with `StateVocabProvider` from `serverify`.\n\nIn this case, wrap your app with `StateVocabClientProvider` from `@yakocloud/state-vocab/client`. It creates an isolated `VocabStore` per render, preventing state from leaking between concurrent SSR requests.\n\n```tsx\n// pages/_app.tsx\nimport type { AppProps } from 'next/app'\nimport { StateVocabClientProvider } from '@yakocloud/state-vocab/client'\n\nexport default function App({ Component, pageProps }: AppProps) {\n  return (\n    <StateVocabClientProvider>\n      <Component {...pageProps} />\n    </StateVocabClientProvider>\n  )\n}\n```\n\nStorage is still configured with `ssr: true` (the default):\n\n```ts\n// lib/storage.ts\nimport { setupStorage, defineState } from '@yakocloud/state-vocab'\nimport { clientify } from '@yakocloud/state-vocab/client'\n\nconst storage = setupStorage({\n  preference: {\n    theme: defineState<'Dark' | 'White' | 'System'>({\n      storage: localStorage,\n      defaultValue: 'Dark',\n    }),\n  },\n  // ssr: true is the default — storage reads are deferred until after hydration\n})\n\nexport const clientStorage = clientify(storage)\n```\n\nUse `clientStorage` directly in any page or component — no additional wiring needed:\n\n```tsx\n// pages/settings.tsx\nimport { clientStorage } from '@/lib/storage'\n\nexport default function Settings() {\n  const [theme, setTheme] = clientStorage.preference.theme.useState()\n\n  return (\n    <select value={theme} onChange={(e) => setTheme(e.target.value as 'Dark' | 'White' | 'System')}>\n      <option value=\"Dark\">Dark</option>\n      <option value=\"White\">White</option>\n      <option value=\"System\">System</option>\n    </select>\n  )\n}\n```\n\n`StateVocabClientProvider` also accepts an optional `value` prop to pre-seed the store with server-fetched data (e.g., from `getServerSideProps`):\n\n```tsx\n// pages/_app.tsx\nimport type { AppProps } from 'next/app'\nimport { StateVocabClientProvider } from '@yakocloud/state-vocab/client'\n\nexport default function App({ Component, pageProps }: AppProps) {\n  return (\n    <StateVocabClientProvider value={pageProps.initialVocab}>\n      <Component {...pageProps} />\n    </StateVocabClientProvider>\n  )\n}\n```\n\n### React Server Components (RSC)\n\nFor Next.js apps using the App Router, state-vocab provides dedicated server and client entry points that let you read state in async server components and pass it down to client components via `StateVocabProvider`.\n\n**Package entry points:**\n\n| Import path | Use in |\n|---|---|\n| `@yakocloud/state-vocab` | Shared files — `defineState`, `setupStorage` |\n| `@yakocloud/state-vocab/server` | Server Components — `serverify` |\n| `@yakocloud/state-vocab/client` | Client Components — `clientify`, `StateVocabClientProvider` |\n\n**1. Define the shared storage schema** (used on both server and client):\n\n```ts\n// storage.ts\nimport { setupStorage, defineState } from '@yakocloud/state-vocab'\n\nexport const storage = setupStorage({\n  user: {\n    name: defineState<string>(),\n    role: defineState<string>(),\n  },\n  person: {\n    address: {\n      city: defineState<string>(),\n    },\n  },\n})\n```\n\n**2. Create server and client storage handles:**\n\n```ts\n// storage.server.ts\nimport { storage } from '@/storage'\nimport { serverify } from '@yakocloud/state-vocab/server'\n\nexport const serverStorage = serverify(storage)\n```\n\n```ts\n// storage.client.ts  (\"use client\")\n\"use client\"\n\nimport { storage } from '@/storage'\nimport { clientify } from '@yakocloud/state-vocab/client'\n\nexport const clientStorage = clientify(storage)\n```\n\n**3. Seed initial state in the server component and read it in Server and Client children:**\n\n```tsx\n// app/page.tsx (Server Component)\nimport { serverStorage } from '@/storage.server'\n\nconst { StateVocabProvider } = serverStorage\n\nexport default async function Page() {\n  // Fetch data from DB / API\n  const user = await db.getUser()\n\n  return (\n    <StateVocabProvider\n      value={{\n        user: { name: user.name, role: user.role },\n        person: { address: { city: user.city } },\n      }}\n    >\n      <UserInfo />\n    </StateVocabProvider>\n  )\n}\n```\n\n```tsx\n// app/user-info.server.tsx (Server Component)\nimport { serverStorage } from '@/storage.server'\n\nexport default async function UserInfo() {\n  const name = serverStorage.user.name.getState()\n  const role = serverStorage.user.role.getState()\n\n  return <p>{name} — {role}</p>\n}\n```\n\n```tsx\n// app/user-info.tsx (\"use client\")\n\"use client\"\n\nimport { clientStorage } from '@/storage.client'\n\nexport default function UserInfoClient() {\n  const [name] = clientStorage.user.name.useState()\n  const [role] = clientStorage.user.role.useState()\n\n  return <p>{name} — {role}</p>\n}\n```\n\n#### Multiple independent storage trees\n\nBecause each `serverify`/`clientify` pair is bound to its own React context, you can have multiple independent providers active at the same time — for example, a layout-level store and a page-level store — without them interfering with each other. Pass a `clientContext` to link the server and client sides of each tree:\n\n```ts\n// layout.storage.server.ts\nimport { createContext } from 'react'\nexport const LayoutClientContext = createContext({})\nexport const layoutServerStorage = serverify(layoutStorage, { clientContext: LayoutClientContext })\n\n// layout.storage.client.ts (\"use client\")\n\"use client\"\nexport const layoutClientStorage = clientify(layoutStorage, { clientContext: LayoutClientContext })\n\n// page.storage.server.ts\nimport { createContext } from 'react'\nexport const PageClientContext = createContext({})\nexport const pageServerStorage = serverify(pageStorage, { clientContext: PageClientContext })\n\n// page.storage.client.ts (\"use client\")\n\"use client\"\nexport const pageClientStorage = clientify(pageStorage, { clientContext: PageClientContext })\n```\n\nEach `StateVocabProvider` wraps its own subtree; a component that calls `pageClientStorage.user.name.useState()` reads only from the nearest `pageServerStorage.StateVocabProvider`, not from the layout provider.\n\n#### Next.js App Router: layout and page are isolated contexts\n\nIn Next.js App Router, **layouts do not re-render during client-side navigation between pages**. Layout and page run as independent React render passes — the layout renders once on entry and stays mounted; the page renders fresh on every navigation.\n\nBecause `React.cache()` (which backs the per-request server store) is scoped to a single render pass, layout and page never share the same cache scope:\n\n- A page server component **cannot** call `layoutServerStorage.someField.getState()` — the layout's `StateVocabProvider` ran in a separate pass, so its vocab is not in the page's cache scope.\n- A layout server component **cannot** call `pageServerStorage.someField.getState()` for the same reason.\n- **Each storage tree must be both seeded and consumed within the same route segment.**\n\n```tsx\n// ✅ Correct — layout seeds and reads from its own storage\n// app/(dashboard)/layout.tsx\nconst LayoutProvider = layoutServerStorage.StateVocabProvider\nexport default async function Layout({ children }) {\n  return (\n    <LayoutProvider value={{ session: { id: 123 } }}>\n      <LayoutHeader />  {/* ← can call layoutServerStorage.session.getState() */}\n      {children}\n    </LayoutProvider>\n  )\n}\n\n// ❌ Wrong — page cannot reach layout's storage\n// app/(dashboard)/page.tsx\nexport default async function Page() {\n  const session = layoutServerStorage.session.getState() // throws — not in layout's render pass\n}\n```\n\nIf a page needs data that the layout already fetches (e.g., the current user session), fetch it independently in the page, pass it via URL params, or use a separate mechanism — do not attempt to share it through other state-vocab server storage across route segments.\n\nThis constraint is **server-only**. On the client, there is no such limitation — client components can freely call `.useState()` from any storage (`layoutClientStorage`, `pageClientStorage`, or any other) regardless of which route segment they live in.\n\n#### `serverify(storage)`\n\nConverts a storage tree into its server-side counterpart. Each leaf gains a synchronous `.getState()` method that reads the value injected by the nearest `StateVocabProvider`. Each namespace node (including the root) gains a `.seed()` method that returns the input wrapped under its full ancestor path. The result also exposes `StateVocabProvider`.\n\n**`.seed()` syntax:**\n\n```ts\n// Full tree at once — root .seed() returns input as-is\nserverStorage.seed({ user: { name: 'Alice', role: 'Admin' } })\n// → { user: { name: 'Alice', role: 'Admin' } }\n\n// Single namespace — wraps input under its key\nserverStorage.user.seed({ name: 'Alice', role: 'Admin' })\n// → { user: { name: 'Alice', role: 'Admin' } }\n\n// Nested namespace — wraps up to the root\nserverStorage.person.address.seed({ city: 'NY' })\n// → { person: { address: { city: 'NY' } } }\n```\n\n**`node.getState()`** synchronously reads the value for that leaf. Must be called within a React render context (i.e., inside a component that is a descendant of `StateVocabProvider`). Throws if called outside a provider scope or outside a React render context.\n\n#### `clientify(storage)`\n\nConverts a storage tree into its client-side counterpart. Each leaf gains `.useState()` and `.useInitialState()` hooks. The tree structure is identical to the original — same dot-notation access.\n\n```ts\nconst clientStorage = clientify(storage)\n\n// In a client component:\nconst [name] = clientStorage.user.name.useState()\n```\n\n## `useState` Hook\n\nEach state node exposes a `.useState()` method that works like React's built-in `useState` but adds persistence and callbacks.\n\n```ts\nconst [value, setValue, resetValue] = storage.path.to.node.useState(options?)\n```\n\n### Options\n\n**`defaultValue`** — overrides the `defineState`-level default for this usage. Accepts a value or factory function:\n\n```ts\nconst [alarm] = storage.alarm.useState({ defaultValue: () => new Date() })\n```\n\n**`delayedSet`** — debounces the `onSet` callback by N milliseconds:\n\n```ts\nconst [note, setNote] = storage.note.useState({\n  delayedSet: 1000,\n  onSet: (value) => saveToServer(value),\n})\n```\n\n**`onSet`** — called after every state change with `(nextValue, prevValue)`:\n\n```ts\nconst [counter, setCounter] = storage.counter.useState({\n  onSet(next, prev) {\n    console.log(`Changed from ${prev} to ${next}`)\n  },\n})\n```\n\n**`bidirectional`** — enables cross-tab sync via the `storage` event. Can be set here or in `defineState`:\n\n```ts\nconst [note, setNote] = storage.note.useState({ bidirectional: true })\n```\n\n### Return value\n\n```ts\nconst [value, setValue, resetValue] = storage.node.useState()\n```\n\n- **`value`** — current state\n- **`setValue(nextValue | updater)`** — set state; accepts a value or `(prev) => next` function\n- **`resetValue()`** — restores the default value (removes the storage entry if no default is defined)\n\n## Custom Storage\n\nAny object implementing the [Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Storage) works as a backend. This makes it easy to add debouncing, encryption, or remote persistence:\n\n```ts\nconst db: Record<string, string> = {}\n\nconst storage = setupStorage({\n  server: {\n    data: defineState({\n      defaultValue: '',\n      storage: {\n        length: 0,\n        getItem: (key) => db[key] ?? null,\n        setItem: (key, value) => debouncedSave(key, value),\n        removeItem: (key) => { delete db[key] },\n        clear: () => {},\n        key: () => null,\n      },\n    }),\n  },\n})\n```\n\n## Full Example\n\n```tsx\nimport React from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { setupStorage, defineState } from '@yakocloud/state-vocab'\nimport { clientify } from '@yakocloud/state-vocab/client'\n\ntype Theme = 'Dark' | 'White' | 'System'\n\nconst storage = setupStorage({\n  preference: {\n    theme: defineState<Theme>({ storage: localStorage, defaultValue: 'Dark' }),\n    nightMode: defineState({ storage: sessionStorage, defaultValue: false }),\n  },\n  stats: {\n    counter: defineState({ defaultValue: 0, storage: sessionStorage }),\n  },\n  personal: {\n    note: defineState({ storage: localStorage, defaultValue: '' }),\n    birthday: defineState({\n      storage: localStorage,\n      deserialize: (raw) => {\n        try { return new Date(JSON.parse(raw)) } catch { return null }\n      },\n    }),\n  },\n  demo: {\n    pageProps: defineState<{ title: string; count: number }>({\n      storage: localStorage,\n    }),\n  },\n}, {\n  ssr: false // by default true\n})\n\nconst clientStorage = clientify(storage)\n\n// Root — initializes shared state for the whole subtree\nfunction Page() {\n  clientStorage.demo.pageProps.useState({\n    defaultValue: { title: 'Hello', count: 42 },\n  })\n\n  return <Dashboard />\n}\n\n// Deep child — reads without re-specifying defaults\nfunction PageHeader() {\n  const [pageProps] = clientStorage.demo.pageProps.useState()\n  return <h1>{pageProps.title} ({pageProps.count})</h1>\n}\n\nfunction Dashboard() {\n  const [theme, setTheme] = clientStorage.preference.theme.useState()\n  const [nightMode, setNightMode] = clientStorage.preference.nightMode.useState()\n  const [counter, setCounter, resetCounter] = clientStorage.stats.counter.useState()\n  const [note, setNote] = clientStorage.personal.note.useState({\n    delayedSet: 500,\n    onSet: (v) => console.log('Saving note:', v),\n  })\n\n  return (\n    <div>\n      <PageHeader />\n\n      <select value={theme ?? ''} onChange={(e) => setTheme(e.target.value as Theme)}>\n        <option value=\"Dark\">Dark</option>\n        <option value=\"White\">White</option>\n        <option value=\"System\">System</option>\n      </select>\n\n      <input\n        type=\"checkbox\"\n        checked={!!nightMode}\n        onChange={(e) => setNightMode(e.target.checked)}\n      />\n\n      <input\n        type=\"number\"\n        value={counter}\n        onChange={(e) => setCounter(+e.target.value)}\n      />\n      <button onClick={resetCounter}>Reset</button>\n\n      <input\n        type=\"text\"\n        value={note}\n        onChange={(e) => setNote(e.target.value)}\n      />\n    </div>\n  )\n}\n\ncreateRoot(document.getElementById('root')!).render(\n  <React.StrictMode>\n    <Page />\n  </React.StrictMode>\n)\n```\n\n## API Reference\n\n### `defineState<T>(options?)`\n\n| Option | Type | Default |\n|---|---|---|\n| `storage` | `Storage \\| (() => Storage) \\| undefined` | `undefined` (in-memory) |\n| `defaultValue` | `T \\| (() => T) \\| undefined` | `undefined` |\n| `bidirectional` | `true \\| undefined` | `undefined` |\n| `serialize` | `(v: T) => string` | `JSON.stringify` |\n| `deserialize` | `(v: string) => T` | `JSON.parse` |\n\n### `setupStorage<T>(tree: T, options?): T`\n\n| Option | Type | Default |\n|---|---|---|\n| `verbose` | `boolean \\| undefined` | `false` |\n| `verbosePath` | `Path<T> \\| undefined` | `undefined` |\n| `ssr` | `boolean \\| undefined` | `true` |\n\nReturns a proxied copy of `tree` with paths injected into all leaf nodes.\n\n### `StateVocabProvider`\n\nA React context provider that initializes a `VocabStore` for its subtree. Only required in RSC / Next.js App Router contexts (where `ssr: true`). For standard SPAs without SSR, no provider is needed — hooks use a module-level store automatically.\n\nIn RSC contexts, `StateVocabProvider` is available on the `serverify()` result — it accepts an optional `value` prop to pre-seed the store with server-fetched data:\n\n```tsx\nconst { StateVocabProvider } = serverStorage\n\n<StateVocabProvider value={{ user: { name: 'Alice' } }}>\n  <App />\n</StateVocabProvider>\n```\n\n### `StateVocabClientProvider`\n\nA client-only provider for SSR setups **without** React Server Components (e.g. Next.js Pages Router). Import from `@yakocloud/state-vocab/client` and place it at your app root to ensure per-request store isolation. Accepts an optional `value` prop to pre-seed the store.\n\n```tsx\nimport { StateVocabClientProvider } from '@yakocloud/state-vocab/client'\n\n<StateVocabClientProvider value={initialVocab}>\n  <App />\n</StateVocabClientProvider>\n```\n\n### `serverify<T>(storage: T, options?)`\n\nConverts a storage tree to its server-side counterpart. Available from `@yakocloud/state-vocab/server`.\n\n| Option | Type | Description |\n|---|---|---|\n| `clientContext` | `Context<object> \\| undefined` | A React context created with `createContext({})`. Pass the same context to `clientify` when multiple independent storage trees coexist on the same page. Omit for single-tree setups. |\n\nThe result exposes:\n\n- **`StateVocabProvider`** — server component that accepts a `value` prop and seeds the per-request store via `React.cache()`.\n- **`node.getState()`** — synchronously reads the value for that leaf. Must be called within a React render context (descendant of `StateVocabProvider`). Throws if called outside a provider scope or outside a render context.\n- **`node.seed(input)`** — wraps `input` under the node's ancestor path, returning a plain object ready to pass as the `value` prop.\n\n```ts\nimport { serverify } from '@yakocloud/state-vocab/server'\n\nconst serverStorage = serverify(storage)\n// or, for multiple independent trees:\nconst serverStorage = serverify(storage, { clientContext: MyClientContext })\n\nconst { StateVocabProvider } = serverStorage\n\n// In a Server Component:\nserverStorage.user.name.getState()                     // reads \"user.name\" (sync)\nserverStorage.user.seed({ name: 'Alice' })             // → { user: { name: 'Alice' } }\nserverStorage.person.address.seed({ city: 'NY' })      // → { person: { address: { city: 'NY' } } }\nserverStorage.seed({ user: { name: 'Alice' } })        // → { user: { name: 'Alice' } } (identity)\n```\n\n### `clientify<T>(storage: T, options?)`\n\nConverts a storage tree to its client-side counterpart. Available from `@yakocloud/state-vocab/client`.\n\n| Option | Type | Description |\n|---|---|---|\n| `clientContext` | `Context<object> \\| undefined` | The React context used to isolate this storage tree. Must match the `clientContext` passed to `serverify` for the same tree. Omit for single-tree setups. |\n\nEach leaf gains `.useState()` and `.useInitialState()`. The tree structure mirrors the original.\n\n```ts\nimport { clientify } from '@yakocloud/state-vocab/client'\nimport { MyClientContext } from '@/storage.context.client'\n\nconst clientStorage = clientify(storage, { clientContext: MyClientContext })\n\n// In a \"use client\" component:\nconst [name] = clientStorage.user.name.useState()\n```\n\n### `node.useState(options?)`\n\n| Option | Type | Description |\n|---|---|---|\n| `defaultValue` | `T \\| (() => T) \\| undefined` | Local default, overrides `defineState` default |\n| `delayedSet` | `number \\| undefined` | Debounce delay for `onSet` in ms |\n| `onSet` | `(next: T, prev: T) => void \\| undefined` | Callback after state change |\n| `bidirectional` | `true \\| undefined` | Sync state across browser tabs |\n\nReturns `[value, setValue, resetValue]`\n\n### `node.useInitialState(options)`\n\nInitializes state without subscribing the caller component to re-renders. Use at layout or root components that only need to seed a value — not react to its changes.\n\n| Option | Type | Description |\n|---|---|---|\n| `defaultValue` | `T \\| (() => T)` | Value to seed. Required. |\n\n```tsx\nfunction Page() {\n  // Seeds the value — this component will NOT re-render when pageProps changes\n  storage.demo.pageProps.useInitialState({\n    defaultValue: { title: 'Hello', count: 42 },\n  })\n\n  return <Dashboard />\n}\n```\n","readmeFilename":"README.md"}