{"_id":"@nowomed/shelving","_rev":"3-9fbcf0182f7668a1878fbebcdebcf541","name":"@nowomed/shelving","dist-tags":{"latest":"1.171.4"},"versions":{"0.0.0-semantic":{"name":"@nowomed/shelving","version":"0.0.0-semantic","keywords":["javascript","typescript","schema","validation","database","database-connector","state-management","query-builder"],"author":{"name":"Dave Houlbrooke","email":"dave@shax.com"},"license":"0BSD","_id":"@nowomed/shelving@0.0.0-semantic","maintainers":[{"name":"nowomed-dev","email":"devs@naturecan.com"}],"homepage":"https://github.com/nowomed/shelving#readme","bugs":{"url":"https://github.com/nowomed/shelving/issues"},"dist":{"shasum":"1c8841ebd42ee2c8f00a96d2bbc75c7cc602fc14","tarball":"https://registry.npmjs.org/@nowomed/shelving/-/shelving-0.0.0-semantic.tgz","fileCount":270,"integrity":"sha512-oXgBIUyR07IhNeMeD72NCtfOY+H/heuJkP5qK0AyB97OWBu7dFomFg2Vqmdgn3bfabpPz81O3ObzQOL6WnqSTg==","signatures":[{"sig":"MEUCIENZTkAWf+ezYxtriIksdPDFVil31dpcjFCDoPEBYxKNAiEAqHVVayI9FhrflqMKIO4mxc8s8PrFPJuIV9OztBOTuuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":936207},"main":"./index.js","type":"module","types":"./index.d.ts","module":"./index.js","engines":{"node":">=16.0.0"},"exports":{".":"./index.js","./db":"./db/index.js","./api":"./api/index.js","./test":"./test/index.js","./util":"./util/index.js","./error":"./error/index.js","./react":"./react/index.js","./store":"./store/index.js","./markup":"./markup/index.js","./schema":"./schema/index.js","./iterate":"./iterate/index.js","./feedback":"./feedback/index.js","./sequence":"./sequence/index.js","./firestore/lite":"./firestore/lite/index.js","./firestore/client":"./firestore/client/index.js","./firestore/server":"./firestore/server/index.js"},"gitHead":"03ff0ffecd42868bc36b6eb1de98d3c2f91dcc0b","scripts":{"fix":"bun run fix:biome","test":"bun run test:check && bun run test:types && bun run test:unit","build":"bun run build:setup && bun run build:copy && bun run build:emit && bun run build:test:syntax && bun run build:test:unit","fix:biome":"biome check --write .","test:unit":"bun test","build:copy":"cp package.json dist/package.json && cp LICENSE.md dist/LICENSE.md && cp README.md dist/README.md && cp .npmignore dist/.npmignore","build:emit":"tsc","test:check":"biome check .","test:types":"tsc --noEmit","build:setup":"rm -rf ./dist && mkdir -p ./dist","build:test:unit":"bun test ./dist/**/*.test.js --bail","build:test:syntax":"bun run ./dist/index.js"},"_npmUser":{"name":"nowomed-dev","email":"devs@naturecan.com"},"repository":{"url":"git+https://github.com/nowomed/shelving.git","type":"git"},"_npmVersion":"10.9.4","description":"Toolkit for using data in JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","engineStrict":true,"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","firebase":"^11.10.0","react-dom":"^19.2.0","@types/bun":"^1.3.3","typescript":"^5.9.3","@types/react":"^19.2.7","@biomejs/biome":"^2.3.8","@types/react-dom":"^19.2.3","@google-cloud/firestore":"^7.11.6"},"peerDependencies":{"react":">=19.0.0","firebase":">=11.0.0","@google-cloud/firestore":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shelving_0.0.0-semantic_1768903896662_0.7606726070678884","host":"s3://npm-registry-packages-npm-production"}},"1.171.3":{"name":"@nowomed/shelving","version":"1.171.3","keywords":["javascript","typescript","schema","validation","database","database-connector","state-management","query-builder"],"author":{"name":"Dave Houlbrooke","email":"dave@shax.com"},"license":"0BSD","_id":"@nowomed/shelving@1.171.3","maintainers":[{"name":"nowomed-dev","email":"devs@naturecan.com"}],"homepage":"https://github.com/nowomed/shelving#readme","bugs":{"url":"https://github.com/nowomed/shelving/issues"},"dist":{"shasum":"c4d1ae77d02b4d454d1b41c23ce942e34839ae6b","tarball":"https://registry.npmjs.org/@nowomed/shelving/-/shelving-1.171.3.tgz","fileCount":341,"integrity":"sha512-ytxsle+KxGSDs3UAc8bRJi+bjVM2+fQJUTg+UKDx7/tJaouIBRc0EyXVwHat9Irp51Tmpm+lZGXsNpn8rhiQQw==","signatures":[{"sig":"MEUCIFI4j3gf4MD8lnVkFv0EWphWyMCKmkv8bo4lRPVblqRfAiEAv68SbQw+LzXvYCqNSAC0TKCUgyO6fb1HEWJxa80EuaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":662159},"main":"./index.js","type":"module","types":"./index.d.ts","module":"./index.js","engines":{"node":">=16.0.0"},"exports":{".":"./index.js","./db":"./db/index.js","./api":"./api/index.js","./test":"./test/index.js","./util":"./util/index.js","./error":"./error/index.js","./react":"./react/index.js","./store":"./store/index.js","./markup":"./markup/index.js","./schema":"./schema/index.js","./iterate":"./iterate/index.js","./feedback":"./feedback/index.js","./sequence":"./sequence/index.js","./firestore/lite":"./firestore/lite/index.js","./firestore/client":"./firestore/client/index.js","./firestore/server":"./firestore/server/index.js"},"gitHead":"b933c6d9fc8c2f8d33c1556b5f14aa355bcb32c1","scripts":{"fix":"bun run fix:biome","test":"bun run test:check && bun run test:types && bun run test:unit","build":"bun run build:setup && bun run build:copy && bun run build:emit && bun run build:test:syntax && bun run build:test:unit","fix:biome":"biome check --write .","test:unit":"bun test","build:copy":"cp package.json dist/package.json && cp LICENSE.md dist/LICENSE.md && cp README.md dist/README.md && cp .npmignore dist/.npmignore","build:emit":"tsc","test:check":"biome check .","test:types":"tsc --noEmit","build:setup":"rm -rf ./dist && mkdir -p ./dist","build:test:unit":"bun test ./dist/**/*.test.js --bail","build:test:syntax":"bun run ./dist/index.js"},"_npmUser":{"name":"nowomed-dev","email":"devs@naturecan.com"},"repository":{"url":"git+https://github.com/nowomed/shelving.git","type":"git"},"_npmVersion":"10.8.2","description":"Toolkit for using data in JavaScript.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","engineStrict":true,"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","firebase":"^11.10.0","react-dom":"^19.2.0","@types/bun":"^1.3.3","typescript":"^5.9.3","@types/react":"^19.2.7","@biomejs/biome":"^2.3.8","@types/react-dom":"^19.2.3","@google-cloud/firestore":"^7.11.6"},"peerDependencies":{"react":">=19.0.0","firebase":">=11.0.0","@google-cloud/firestore":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shelving_1.171.3_1768941104913_0.22965053607618335","host":"s3://npm-registry-packages-npm-production"}},"1.171.4":{"name":"@nowomed/shelving","description":"Toolkit for using data in JavaScript.","keywords":["javascript","typescript","schema","validation","database","database-connector","state-management","query-builder"],"version":"1.171.4","repository":{"type":"git","url":"git+https://github.com/nowomed/shelving.git"},"author":{"name":"Dave Houlbrooke","email":"dave@shax.com"},"license":"0BSD","type":"module","module":"./index.js","main":"./index.js","types":"./index.d.ts","exports":{".":"./index.js","./api":"./api/index.js","./db":"./db/index.js","./error":"./error/index.js","./feedback":"./feedback/index.js","./firestore/client":"./firestore/client/index.js","./firestore/lite":"./firestore/lite/index.js","./firestore/server":"./firestore/server/index.js","./iterate":"./iterate/index.js","./markup":"./markup/index.js","./react":"./react/index.js","./schema":"./schema/index.js","./sequence":"./sequence/index.js","./store":"./store/index.js","./test":"./test/index.js","./util":"./util/index.js"},"sideEffects":false,"engineStrict":true,"engines":{"node":">=16.0.0"},"scripts":{"test":"bun run test:check && bun run test:types && bun run test:unit","test:check":"biome check .","test:types":"tsc --noEmit","test:unit":"bun test","fix":"bun run fix:biome","fix:biome":"biome check --write .","build":"bun run build:setup && bun run build:copy && bun run build:emit && bun run build:test:syntax && bun run build:test:unit","build:setup":"rm -rf ./dist && mkdir -p ./dist","build:copy":"cp package.json dist/package.json && cp LICENSE.md dist/LICENSE.md && cp README.md dist/README.md && cp .npmignore dist/.npmignore","build:emit":"tsc","build:test:syntax":"bun run ./dist/index.js","build:test:unit":"bun test ./dist/**/*.test.js --bail"},"devDependencies":{"@biomejs/biome":"^2.3.8","@google-cloud/firestore":"^7.11.6","@types/bun":"^1.3.3","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","firebase":"^11.10.0","react":"^19.2.0","react-dom":"^19.2.0","typescript":"^5.9.3"},"peerDependencies":{"@google-cloud/firestore":">=7.0.0","firebase":">=11.0.0","react":">=19.0.0"},"_id":"@nowomed/shelving@1.171.4","gitHead":"ac37e087f2555ade9c36809ba5e317283a739498","bugs":{"url":"https://github.com/nowomed/shelving/issues"},"homepage":"https://github.com/nowomed/shelving#readme","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-OjbX+a/QHtfnXyL0taBwdOqLK5XH90jlIaAVZPc7okaap3zCwkHIrXPNBzed2f5quFZ23VBHlg/2unjqnMXyFw==","shasum":"d192abb61897d1ea23de99462092f99ba8c048f5","tarball":"https://registry.npmjs.org/@nowomed/shelving/-/shelving-1.171.4.tgz","fileCount":341,"unpackedSize":662228,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDoP7gw+VQMgUlKF37T1S+AjOppOgQrteSrrIsX1XKgvAIgT+K0uJ8L/9RSn8Wlj/ZQeh4FXv9zUZwtxMpq+65aGKk="}]},"_npmUser":{"name":"nowomed-dev","email":"devs@naturecan.com"},"directories":{},"maintainers":[{"name":"nowomed-dev","email":"devs@naturecan.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shelving_1.171.4_1773331455124_0.3336741654899784"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-20T10:11:36.500Z","modified":"2026-03-12T16:04:15.552Z","0.0.0-semantic":"2026-01-20T10:11:36.846Z","1.171.3":"2026-01-20T20:31:45.051Z","1.171.4":"2026-03-12T16:04:15.392Z"},"bugs":{"url":"https://github.com/nowomed/shelving/issues"},"author":{"name":"Dave Houlbrooke","email":"dave@shax.com"},"license":"0BSD","homepage":"https://github.com/nowomed/shelving#readme","keywords":["javascript","typescript","schema","validation","database","database-connector","state-management","query-builder"],"repository":{"type":"git","url":"git+https://github.com/nowomed/shelving.git"},"description":"Toolkit for using data in JavaScript.","maintainers":[{"name":"nowomed-dev","email":"devs@naturecan.com"}],"readme":"# Shelving: toolkit for using data in JavaScript\n\n[![Semantic Release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat)](https://github.com/semantic-release/semantic-release) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) [![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) [![GitHub Actions](https://github.com/nowomed/shelving/workflows/CI/badge.svg?branch=main)](https://github.com/nowomed/shelving/actions) [![npm](https://img.shields.io/npm/dm/shelving.svg)](https://www.npmjs.com/package/shelving)\n\n**Shelving** is a toolkit for using data in JavaScript and TypeScript, including:\n\n> Note: The `1.x` branch of Shelving is in active development and is not observing semver for breaking changes (from `2.x` onward semver will be followed).\n\n- Schemas (validation)\n- Databases (via providers including in-memory, Firestore, IndexedDB)\n- Querying (sorting, filtering, slicing)\n- Store (events and state)\n- React (hooks and state)\n- Helpers (errors, arrays, objects, strings, dates, equality, merging, diffing, cloning, debug)\n\n## Installation\n\nInstall via `npm` or `yarn`:\n\n```sh\nnpm install shelving\nyarn add shelving\n```\n\nImport from Skypack CDN (the `?dts` enables TypeScript types in Deno):\n\n```js\nimport { Database } from \"https://cdn.skypack.dev/shelving\";\nimport { Database } from \"https://cdn.skypack.dev/shelving?dts\";\n```\n\n## Usage\n\nShelving is an [ES module](https://nodejs.org/api/esm.html) supporting `import { Query } from \"shelving\";` syntax and can be used natively in systems/browsers that support that (e.g. Chrome 61+, Deno, Node 12+).\n\nShelving does not include code for CommonJS `require()` imports, so using it in older projects will require transpiling.\n\n## Modules\n\nShelving is created from small individual modules which can be imported individually (using e.g. `import { addProp } from \"shelving/util/object`). Modules marked with `✅` are also re-exported from the main `\"shelving\"` module.\n\n## Changelog\n\nSee [Releases](https://github.com/nowomed/shelving/releases)\n","readmeFilename":"README.md"}