{"_id":"@adamjanicki/store","name":"@adamjanicki/store","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@adamjanicki/store","version":"1.0.0","description":"Utilities and hooks for storing data","type":"module","main":"./build/index.js","module":"./build/index.js","types":"./build/index.d.ts","sideEffects":false,"author":{"name":"Adam Janicki"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/adamjanicki2/store.git"},"scripts":{"lint":"eslint src test --fix && prettier --write \"src/**/*.{ts,tsx,json,md}\" \"test/**/*.{ts,tsx}\"","test":"jest --silent","build":"npm test && eslint src test --max-warnings=0 && python3 build.py","prepare":"npm run build"},"peerDependencies":{"react":">=18"},"devDependencies":{"@testing-library/jest-dom":"^6.7.0","@testing-library/react":"^16.3.0","@testing-library/user-event":"^14.6.1","@types/jest":"^30.0.0","@types/react":"^18.0.0","esbuild":"^0.27.2","eslint-config-prettier":"^10.1.8","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.26","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-unused-imports":"^4.3.0","jest":"^30.0.5","jest-environment-jsdom":"^30.0.5","prettier":"^3.8.1","ts-jest":"^29.4.1","typescript":"^5.9.2","typescript-eslint":"^8.54.0"},"_id":"@adamjanicki/store@1.0.0","gitHead":"153e5d98c35d89840acc9a3fbb35aeb0ff0af621","bugs":{"url":"https://github.com/adamjanicki2/store/issues"},"homepage":"https://github.com/adamjanicki2/store#readme","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-2iZ/ULL1wLdNYkP+PvLeo0fPlM5CRTHBIlIF+GiGVJ3faJm/K3Knt46Yb2eYEYPifpXsBfKYyWg53Q0ZzG35Pw==","shasum":"1fcda52b43b234a8533aaa6797ec18bb86a19c07","tarball":"https://registry.npmjs.org/@adamjanicki/store/-/store-1.0.0.tgz","fileCount":7,"unpackedSize":6491,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICD3J+ia9Rscfa+zn/1qr97ztaf8zIlINaM/vtNEvgeEAiEAmxMF3PUbtT0qb2mLS/bK75Pgt28Z0v9OCPFvpRKxVC4="}]},"_npmUser":{"name":"adamjanicki","email":"adamjanicki2@gmail.com"},"directories":{},"maintainers":[{"name":"adamjanicki","email":"adamjanicki2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/store_1.0.0_1770082465267_0.3649126808901091"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T01:34:25.191Z","1.0.0":"2026-02-03T01:34:25.416Z","modified":"2026-02-03T01:34:25.601Z"},"maintainers":[{"name":"adamjanicki","email":"adamjanicki2@gmail.com"}],"description":"Utilities and hooks for storing data","homepage":"https://github.com/adamjanicki2/store#readme","repository":{"type":"git","url":"git+https://github.com/adamjanicki2/store.git"},"author":{"name":"Adam Janicki"},"bugs":{"url":"https://github.com/adamjanicki2/store/issues"},"license":"MIT","readme":"# @adamjanicki/store\n\n_Warning: use at own risk! This library is primarily designed for usage by me across my other projects, so while I try to write good code, there will be some bugs, and more importantly, I make breaking changes often!_\n\n## Installation\n\n```bash\nnpm install @adamjanicki/store\n```\n\n## Usage\n\n```tsx\nimport { createStore, persist } from \"@adamjanicki/store\";\n\nconst useCount = createStore({ init: 0 });\n\ntype Theme = \"light\" | \"dark\";\n\nconst useTheme = createStore<Theme>({\n  init: \"dark\",\n  plugins: [persist({ key: \"theme\", storage: \"local\" })],\n});\n\nfunction Counter() {\n  const [count, setCount] = useCount();\n  const [theme] = useTheme();\n  return (\n    <button className={theme} onClick={() => setCount((c) => c + 1)}>\n      {count}\n    </button>\n  );\n}\n```\n","readmeFilename":"README.md","_rev":"1-3ae0006197c7e1e1fc52b7dcb0b682e7"}