{"_id":"@data-prism/memory-store","_rev":"27-85c0ccaebeb9dc12eb58e15d2fda46cb","name":"@data-prism/memory-store","dist-tags":{"latest":"0.2.1"},"versions":{"0.0.1":{"name":"@data-prism/memory-store","version":"0.0.1","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.1","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"4cef2ed2dd5ea4cf3697b4a88a420c474ddbf9fe","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.1.tgz","fileCount":16,"integrity":"sha512-LxBxjPBzVMCw6Hk0ERBgUeRfJ4cJIpx1bOnVUOz0HEZ91EVO7a335UxtGDMsdUIHRRm4JORjvCh/gqaXotPP+A==","signatures":[{"sig":"MEUCIEVlDKmFqTYjKD0ORX/LL3z9qM//9WjTTHsAb+LZMD4RAiEAo2QVGrNGKc3KhjfAYnktyBRf+9DZQ49hZFmD6Mo+nCQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104257},"main":"./dist/src/memory-store.js","type":"module","types":"./dist/src/memory-store.d.ts","exports":{".":"./dist/src/memory-store.js"},"gitHead":"f6583a2150216a1bb65b2caf7e835741b1556308","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.1","@data-prism/store-core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.1_1684855494334_0.7367302022060986","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@data-prism/memory-store","version":"0.0.2","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.2","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"60e4fc3f0245314b98231cf9f0518e56d5bd21f7","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.2.tgz","fileCount":16,"integrity":"sha512-wPS0wExuRxKKyGrtMPZWCpoB8HlMMXQsdBKewo74MP+PIdB5MUBUJM2AUhxtXVJ3tVxislBTf6ZOsuYFvcx4Zg==","signatures":[{"sig":"MEQCIHtYFgDCP9sxuiE78Shf6hxXNMsYwPSSgFZx29aDr/B3AiBFMETK8GsjneykGSKXlsyW2AzRt+c8qUDb6Gq0DNpHSw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104447},"main":"./dist/src/memory-store.js","type":"module","types":"./dist/src/memory-store.d.ts","exports":{".":"./dist/src/memory-store.js"},"gitHead":"f6583a2150216a1bb65b2caf7e835741b1556308","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.1","@data-prism/store-core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.2_1684863495265_0.9983327121979257","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@data-prism/memory-store","version":"0.0.3","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.3","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"d13dacedccb8d997831066fee9dc283a3c273a33","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.3.tgz","fileCount":16,"integrity":"sha512-d8gY6LFGc6Nix7reyk4svNtg2bO9YtTZzSBBNYMq0/C+ogIxYKL4s+/AJ2Y33dkOMSMJdieC9Zj+k9BeKImRHw==","signatures":[{"sig":"MEQCIGYhL3PGDugA+712gr5ZzLZtojF3oT9MKyMtTN8iRy0qAiAtnQtVQE6s9ZD1LvexnLkbkh7CUn/OgZ/TJrcXBQqdvQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104432},"main":"./src/memory-store.js","type":"module","types":"./src/memory-store.d.ts","exports":{".":"./src/memory-store.js"},"gitHead":"f6583a2150216a1bb65b2caf7e835741b1556308","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.1","@data-prism/store-core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.3_1684863775510_0.474809739392025","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@data-prism/memory-store","version":"0.0.4","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.4","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"4a8b284aa0bc290ed0c7815d789a8df0a6435f17","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.4.tgz","fileCount":22,"integrity":"sha512-wTd5Vu8NFH0persFynjmJce5tOc7f/H9xiuCqP5a56LXbGTCeOcvJNNiEtJc3++4si3WuVKSnIBg6v0gEHkcWg==","signatures":[{"sig":"MEYCIQCFI1LLae380ZKJu3d8XHTFdAj7gSgDZXakkVQwMTAZWQIhAPimgK2s6cjneGh8ttLIBYp4DZapAn+BSInLaYi7Vc9f","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110886},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"8203e184ecd50dd23f1da057aeec0edf88f69310","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.1","@data-prism/store-core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.4_1684867100645_0.8066585729366846","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@data-prism/memory-store","version":"0.0.5","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.5","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"dd75dc21e5a12f2b2e0781ede3d5682351df3dc2","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.5.tgz","fileCount":22,"integrity":"sha512-zTLgNh8gD2CaUi8djt9bz6OW0WjOAU/OCMAcLw9BX8OA6vPHC5w3NrFL3g4ty3Do1xV9vFVeR64yuDF0xvGPoQ==","signatures":[{"sig":"MEUCIQCJP+g9fbnbkzoFGFOe4SbaHDozq7D0MREcgDAYfUpIYAIgV9/SVvTeo+MjxMxDwdIjGgB6Yx+pitQk/zfCl5z2wdQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110891},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"8203e184ecd50dd23f1da057aeec0edf88f69310","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.2","@data-prism/store-core":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.5_1684867667172_0.423908723526466","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@data-prism/memory-store","version":"0.0.6","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.6","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"b04a30304b1796b437d8546351a7e1923803a38c","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.6.tgz","fileCount":21,"integrity":"sha512-z7v0RjbJpWXb0UIE1KmMIFeBC+xU9wdDF0QuEVl/546V//vE/6WGyOJkHx5Voxdy3jlOmF3qpm+1g4Zs9VJuXg==","signatures":[{"sig":"MEYCIQCw70dnjJNLqoPvEZ7QtEmBrfCDB9oVIJus/NpB8Ld5fQIhAKFMbkGGLZyCkV9pkWvG57AFAbbwmn3bNO/T6hN79NcT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110473},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"dca152a387e26c406b08f8f6de22eaedd8b4bb3b","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","description":"## Uses","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.2","@data-prism/store-core":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.6_1685464069169_0.8438883512754103","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@data-prism/memory-store","version":"0.0.7","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.7","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"76a5aa7f9a7341d27b842eb89b0cb1e896c53a81","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.7.tgz","fileCount":19,"integrity":"sha512-vzh9GNFMXv8ZC6OJ8YDOjHxz8Zr+m8aucfM9n7rEfelWF05DS6Lx45IHS7GNCcZhKySlhBi7GBYp3aoOVdMbog==","signatures":[{"sig":"MEUCIQCCHQAUU8puyDoMVnJdPSTjOQp7y9Jc5m83bRK91zY60gIgegW/cCAIfZ6Gs05NWaRg2/YIV93Wo+u26231thLgpHE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109359},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"1d819fff8072ab9b07a042e7654834397bac30a7","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/expression":"^0.0.2","@data-prism/store-core":"^0.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.38.0","vitest":"^0.29.8","prettier":"^2.8.7","typescript":"^5.0.4","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.0.0","@typescript-eslint/parser":"^5.57.1","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.7_1685637493897_0.185637036878896","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@data-prism/memory-store","version":"0.0.8","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.8","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"d7d84eb004eb76985e6884adbf71aba82808735f","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.8.tgz","fileCount":19,"integrity":"sha512-NgyQrMHx2yD0YjZ+m+ytEG02aqOEFRSZziuGC/JNEXX3lAd6ed98ltSsAgCjoW49D3MMHG7bLltWwl4+D3tYZw==","signatures":[{"sig":"MEUCIAyXYOSuTKN9t+P1rConyh1yy9st2HkUMAuByIApmlhRAiEAlemN5BHAWZcMU05W9c8PtA4oYghaUC72yZQ0H+yIPpQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111022},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"def46bbdd2268ecc01a86c4497c5997551119463","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/store-core":"^0.0.4","@data-prism/expressions":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.8_1691079720920_0.15548525541782898","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@data-prism/memory-store","version":"0.0.9","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.9","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"da490d991fd983c93da8f40b6904caadbede5571","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.9.tgz","fileCount":19,"integrity":"sha512-nouX/X3EWpDLUeV8sai7GEsvSGbP81fmioK6zxV9UdBCwLLU8xRe8MP0yjVSngI55BVPCIoW90rYOzA8p6spIw==","signatures":[{"sig":"MEYCIQDeY+Oawjv320wpiu3mmJAeuXJZ2zeNTe5/qCjiN671jgIhAKMY7fxwahJZmeRSBmXNq6Rd8Bn3gNX5RkvYIxoZSk/P","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112008},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7b71b813ef3acbe5b1086ed04db9c6ba8ffb77b3","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/store-core":"^0.0.5","@data-prism/expressions":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.9_1691080501893_0.42779321024345585","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@data-prism/memory-store","version":"0.0.10","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.10","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"ec38e407f368187527cae1f3e929d535afe9a041","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.10.tgz","fileCount":19,"integrity":"sha512-vjB/pbIZPzU2k8lLf1FuizY+UGWXVy4xJxhkKAasSZU8LdMGlH3ZAjxrDm9JDWxJvtSb3YRzUzG1vYD2RrB0PQ==","signatures":[{"sig":"MEUCIQDa1Qlq5gbxSLq5vDuC8gSkioYz7ctuh3B+9MntgsbDZwIgE/wYH7sxEEwy3AxRbHEpwurjI0WUlJWlaQovXlhH75Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112042},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7b71b813ef3acbe5b1086ed04db9c6ba8ffb77b3","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/utils":"^0.0.2","@data-prism/store-core":"^0.0.6","@data-prism/expressions":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.10_1691080756920_0.44321171079096944","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"@data-prism/memory-store","version":"0.0.11","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.11","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"93d19f98c3686d5221b8e1452433d5e2866344fa","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.11.tgz","fileCount":19,"integrity":"sha512-UKAFIwGjgZ1505RIRMbtGybxEwdZ6+7CF3glh5XLiJouU6F+HXm36XhwbLGaQdRJZSP5xxkTBFPDsdTDPJ9jnw==","signatures":[{"sig":"MEQCIG3ZxTGghVH/EQFz/VZE/+IOUWDziwz1UsRZFUwhZ/j3AiA7dN8sfQ6Qk24SRqXB5LWNjORlFiijR/CMb0kgZXbd5w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111908},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7b71b813ef3acbe5b1086ed04db9c6ba8ffb77b3","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/utils":"^0.0.3","@data-prism/store-core":"^0.0.7","@data-prism/expressions":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.11_1691081003594_0.8481034040808983","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"@data-prism/memory-store","version":"0.0.12","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.12","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"5af8fcf8953cd58167b660c3b17586bccf13b14f","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.12.tgz","fileCount":19,"integrity":"sha512-zwBiE61gFX9ls85yw4DeYkdbXGpM4yCsR2si1VRym/pVg85kRITV3/IGJPcxYJrkhfPJmViMfXgWrNm48hQ4OA==","signatures":[{"sig":"MEUCIF3qKTcGcsedG5TArKUOuy2yezU4RQlrNs58sYaG/7u8AiEArH/BVxZ8SFUNJRpg0uHCBvKSVtpTjiA6FmEbIZ5O6qc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112698},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"ad669142bec758bb374a398aa2165655e38c9056","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/utils":"^0.0.3","@data-prism/store-core":"^0.0.8","@data-prism/expressions":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.12_1691169777461_0.4352451799616792","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"@data-prism/memory-store","version":"0.0.13","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.13","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"e87e1307f653431017327ccdc3f8ead50b69dd26","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.13.tgz","fileCount":19,"integrity":"sha512-M2xSCyGbF4fSVEAAUBIak/+jkujrc/DvB5gEldmCZAnGSqQXP7B+Pl8j1KjUrljojrYwm6X578LEIcYsHOm8Gg==","signatures":[{"sig":"MEQCIBL6lISmYbWsTocF9jYq+lFFrYrzzPkkt5NH0dIun3yMAiBv4flFZUwqwlBSWoTBSXwN74Pk2Jjg6cIcLbUPslLtwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111256},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"ad669142bec758bb374a398aa2165655e38c9056","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/utils":"^0.0.3","@data-prism/store-core":"^0.0.9","@data-prism/expressions":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.13_1691173816642_0.34431945503386374","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"@data-prism/memory-store","version":"0.0.14","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.14","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"c1ee9afe3b01cb30e60130312d124d4b0b7273ea","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.14.tgz","fileCount":18,"integrity":"sha512-qVLSlMfpu9Da0TEUB179QQgHttjLGM9rGTqnA1E9B9vZ0RZWGln6pMEcecTodI+GfsAZRLBrbb7tM+DYdf2Dcg==","signatures":[{"sig":"MEQCIGw44FEgKnYyk+ve60mso0m7Y3tfJxx9QrE8kS9Ywff/AiAkA2S36FbSMXpnekO+turSfs0p2GZMO6bC4RfnscCxsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":107310},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"b5d3b98aaedc640be725270910c6c4350fb9e25e","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/utils":"^0.0.3","@data-prism/store-core":"^0.0.10","@data-prism/expressions":"^0.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.14_1691185001479_0.34040669577160254","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"@data-prism/memory-store","version":"0.0.15","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.15","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"131918f6460d1e00a78156f4a8395b1b3378aea3","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.15.tgz","fileCount":18,"integrity":"sha512-cemcjkuw8RxFIulAjiUCG/yju4/CZj+eqruFAFcLo/Vx5xbrVZLlIUY0ZVE0lH/AfscIwsWQheUJXGZJc231Nw==","signatures":[{"sig":"MEUCIHNQTAa557dWLadEsO42MsgYGOI0jJY9qezj65LqNcR6AiEAh1epySenvY55NIE7kFnb3/TncEtZx1Lq87RmaIhBoCU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106978},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"6ff659eee613b33b17fe88e5f6462f7c9fc6f5ae","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.5.0","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.11","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.15_1692204728622_0.24493600910943192","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"@data-prism/memory-store","version":"0.0.16","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.16","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"1619caee46e3e39621ee0e9701ff706edecf19c2","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.16.tgz","fileCount":18,"integrity":"sha512-Wnqg28E4M1nqFktzcBtkL3GybEmFCmMg77KptRV9K+Ht4M+m6cj/EDBSMIIytMq6QifmmCfdEPOfARbsUL63GA==","signatures":[{"sig":"MEUCIQCDOQdAzFeSraNhtAdGDxmqYWOKrbI2JWFzKXRKMX5FPgIgWjfPM7zXOvlgbJQ/Oo6umUwQ2QPqPoAQsZG6IsbjEY0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106978},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"8cb8ac2fecc8ca7dca4bb79ec39d850db8bf5c29","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"8.18.0","directories":{},"_nodeVersion":"18.8.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.12","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.16_1692990492543_0.6751262620775453","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"@data-prism/memory-store","version":"0.0.17","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.17","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"bb64f9739ac800326fd5f443f4d84bac7473de79","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.17.tgz","fileCount":18,"integrity":"sha512-JKwafFhvkY9hNTmBBn/IN+uEXI4NWoBCdN68XP2L+jkOq0DHRRQrGzNM/MZraet0KYqPzPhWInFTIQP1yhOvAA==","signatures":[{"sig":"MEUCIQCPfdOwwcXszfUr1zxHyxjP1cf6FyFPar737hOeTscx1QIgbvUQDSzlNp2w3KNQ9RoDBnMOxk7YWYazG09U2qHTOO4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106692},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"9bc75c8c242017401d97e9c82fe57a5a7bce13d3","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.12","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.17_1694020554200_0.10560972380621214","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"@data-prism/memory-store","version":"0.0.18","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.18","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"23210a3e5a170c15d1c221215b52d96c820068ef","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.18.tgz","fileCount":18,"integrity":"sha512-kWf72engfoPxsoooAx1T+Bl2EwhS7K4JIK0d4U4bFg+BolJzml2m5AozhFbouIpzhPr802MN453HxCtoolxgpg==","signatures":[{"sig":"MEQCIAwGkDeohXMM86brqBguCkI94QqL5ccWR/F+ZFk6P1jMAiBxV4PO5/4RUJhgmQaY3lBNobsXuisSvWWWLKOstmpJJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106692},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"9bc75c8c242017401d97e9c82fe57a5a7bce13d3","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.13","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.18_1694020704840_0.45078476302265824","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"@data-prism/memory-store","version":"0.0.19","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.19","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"98f8a3d501f1d37271f9b41519267a7e73f169f5","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.19.tgz","fileCount":18,"integrity":"sha512-FBs+18KJraMujz7Y1UkpWxmXr5u1s5b9+tjAbBfdpHwyMJBDbAtFiH+71eEMxJg/a/Hi2Tt/OTVw7kyvVqJT5A==","signatures":[{"sig":"MEUCIHZPcDCZEbgLhZUhr5cMPhFw9q4hTvv5/pPB6VMJLSY2AiEAqvCB/fu4ezVLNJpPKxHDU4Oxs+RGU+Eb2jm6zgX+jjM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106570},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"fa255ef4e06d35f40c2de0dcea8258a6e448f327","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.14","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.19_1694196314753_0.6563760880045411","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"@data-prism/memory-store","version":"0.0.20","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.20","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"4f987159bd92ec226670958f31d1432d27287970","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.20.tgz","fileCount":18,"integrity":"sha512-2p73iU0ajVHh5i6JW0N3dbNJxKjLsygu4dMSzWy/NgnUP/D0jFHcmg6vshtDezoTBmtwQFTQegA6/Kje5/Oh8w==","signatures":[{"sig":"MEQCIHnKLFjPwJ3eJveiwbfUiXXX+d+kLkpALzTPP+q+3LchAiAaMG+0dlH4zyhEAc+4950y6V3UQuE9/vjnKxP7ZIXsDA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106899},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7385728384ce084b1ca5de1c8c1f4dfd3c4ec74a","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.14","@data-prism/utils":"^0.0.3","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.20_1697127395059_0.4746192369410336","host":"s3://npm-registry-packages"}},"0.0.21":{"name":"@data-prism/memory-store","version":"0.0.21","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.21","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"3bcc39ddcb65b866e6d81f43da619c43f81ba51c","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.21.tgz","fileCount":18,"integrity":"sha512-gdHS8ZCNGSPm/VRJge/ong95CJhwLCIGhJmdzuA8NW16lz/8yE8lbtsGZ7opgaOxwkb7yi6oXP1VofUaIrsYCQ==","signatures":[{"sig":"MEUCIQDrRWtBfLLgUPoT7bWCV+hBLBG1LIMib2oFtZ4o4+H0qwIgIoYPEtLgUIFfKd7SgJ7fSdvKShy13Um4LjIhLz2vSGU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106899},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7385728384ce084b1ca5de1c8c1f4dfd3c4ec74a","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.15","@data-prism/utils":"^0.0.5","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.21_1697130687454_0.9260479973416218","host":"s3://npm-registry-packages"}},"0.0.22":{"name":"@data-prism/memory-store","version":"0.0.22","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.22","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"f1645b2c4793b40c3b2669d12ea4fa3642af8eeb","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.22.tgz","fileCount":18,"integrity":"sha512-ektLKhAsk9vRo9KUJ3AQoIYL/05CP0KJkkltMuJceidOeey/3J4UEZJLQSJSNq6XNN+ehPyUQLLMf4shN6kDSw==","signatures":[{"sig":"MEUCIQC3MBObt5CbZt9ByGP5ALfUq/U7GmrRD5HY+kEqYYRX8wIgLpubJZDrseBnl9UuQsxdi7hLLEFDmOhQEg9xqpASL1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106899},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"7385728384ce084b1ca5de1c8c1f4dfd3c4ec74a","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.16","@data-prism/utils":"^0.0.6","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.22_1697131067166_0.37916038086460846","host":"s3://npm-registry-packages"}},"0.0.30":{"name":"@data-prism/memory-store","version":"0.0.30","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.30","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"9199d4c2871d743d2a1e5a9dedc011b7580d0020","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.30.tgz","fileCount":15,"integrity":"sha512-fXsEzHpmtKVb+e+TVrbP6ThnAKg5lpExd4eHRlw6PxDnYHZW29R7VKrSsNW5RL4CWP6IIfv96jFq5kz6neLF/w==","signatures":[{"sig":"MEYCIQCTlIo1qDb5gCia8M0AXwfxD7sMPhd0fs+xiGBpKF0P8AIhAIEPOtpr13x+cxnl+FS5Fy6UBZRD6mkE4EeuFEUyKocD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":106829},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"fa67be247a14e379222b68ad4e2155b10d200a32","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.20","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.30_1701883305298_0.8334800329500216","host":"s3://npm-registry-packages"}},"0.0.31":{"name":"@data-prism/memory-store","version":"0.0.31","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.0.31","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"515072bbc0e20d9367de174e066eb3af9ffe9861","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.0.31.tgz","fileCount":14,"integrity":"sha512-AIzIy9aEeTKYOJulrR7lftCDDIF0u0neNH0IOsGqKBdX1uZ9h10fu0pfkuP2hpxI/K7/p4wU08PZGC/fHvDL/Q==","signatures":[{"sig":"MEQCIC8Tj3zN8fqiJed2R4RQeKVGLq9UgYOELEJfsIB9QD1rAiBDYu67lTTfz9YvjP7Kcm3X+BIGbk+PqCsTVt4G4OB65Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104399},"main":"./dist/memory-store.js","type":"module","types":"./dist/memory-store.d.ts","exports":{".":"./dist/memory-store.js"},"gitHead":"fa67be247a14e379222b68ad4e2155b10d200a32","private":false,"scripts":{"test":"NODE_ENV=test vitest","build":"tsc -p ./tsconfig.json"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"9.8.1","directories":{},"_nodeVersion":"18.15.0","dependencies":{"lodash-es":"^4.17.21","@data-prism/core":"^0.0.21","@data-prism/expressions":"^0.0.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.41.0","vitest":"^0.31.4","prettier":"^2.8.8","typescript":"^5.1.3","typescript-eslint":"^0.0.1-alpha.0","eslint-config-prettier":"^8.8.0","eslint-config-standard":"^17.1.0","@typescript-eslint/parser":"^5.59.8","@typescript-eslint/eslint-plugin":"^5.59.8"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.0.31_1701886825322_0.6316032495652222","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@data-prism/memory-store","version":"0.1.0","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.1.0","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"8819c596a13f52ec1bde7ee68246264c3bcbdaa0","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.1.0.tgz","fileCount":6,"integrity":"sha512-C+vmxFIUpbAjCnrYDGLYIDkpjD2I4bxqUBZJPBxigwp3MGfYLLGPFIpnlLS78xieUPM9D0gdFq9+d2SuSJ1oPA==","signatures":[{"sig":"MEUCIQDo8chLxb/YWJRZ1uwOpZQnPCOKIGXiTNxD7Okrdk5qCwIgSbYVvjkBtdbVcKsQGEwtEuOOn+lHQYvzqvLcK1O8Dts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437438},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"b996596e1fad67a85585166ba1344dc8e8bba75e","private":false,"scripts":{"lint":"eslint src/ test/","test":"NODE_ENV=test vitest run --coverage","build":"npm run clean && rollup -c && cp index.d.ts dist/","clean":"rm -rf dist","test:watch":"vitest","prepublishOnly":"npm run lint && npm run test"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"11.4.2","description":"An in-memory store implementation for Data Prism that provides CRUD operations, querying, and relationship management for graph data. Perfect for prototyping, testing, or applications that need fast data access without external dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"23.6.0","dependencies":{"uuid":"^10.0.0","lodash-es":"^4.17.21","@data-prism/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.28.1","vitest":"^3.0.4","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^28.0.1","@data-prism/test-fixtures":"*","@vitest/coverage-istanbul":"^3.0.4","@rollup/plugin-node-resolve":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.1.0_1755634019257_0.7317588024208594","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@data-prism/memory-store","version":"0.2.0","keywords":[],"author":{"name":"Jake Sower"},"_id":"@data-prism/memory-store@0.2.0","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"dist":{"shasum":"e6f5fe1339ef054307e70083a43b9138a2f264c9","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.2.0.tgz","fileCount":6,"integrity":"sha512-7/hx3ytnaX1KFLhTjjbC/OXNOgPjN0Ln37WkS+hHmjUAvWyehCYCqZfO/2FT8E0a0eyDcZkyDhEtSOjKYY/9CQ==","signatures":[{"sig":"MEUCIEA5tbGd2HxvGO5whDh6X0qSd/SJnw/UieOxZKblwDDHAiEAqkcoG4QXOcmt41j1sPb0/PfkTrlVcveCb0KuJt8UoMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565234},"main":"./dist/index.cjs.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"gitHead":"d1b2076b5a321321302a91b81f0a3246346242c5","private":false,"scripts":{"lint":"eslint src/ test/","test":"NODE_ENV=test vitest run --coverage","build":"npm run clean && rollup -c && cp index.d.ts dist/","clean":"rm -rf dist","lint:fix":"eslint --fix src/ test/","format:fix":"prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"","test:watch":"vitest","format:check":"prettier --check \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"","prepublishOnly":"npm run lint && npm run test"},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"_npmVersion":"10.9.3","description":"An in-memory store implementation for Data Prism that provides CRUD operations, querying, and relationship management for graph data. Perfect for prototyping, testing, or applications that need fast data access without external dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","dependencies":{"uuid":"^10.0.0","es-toolkit":"^1.26.0","@data-prism/core":"*","json-expressions":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rollup":"^4.28.1","vitest":"^3.0.4","@vitest/coverage-v8":"^3.2.4","@rollup/plugin-commonjs":"^28.0.1","@vitest/coverage-istanbul":"^3.0.4","@data-prism/interface-tests":"*","@rollup/plugin-node-resolve":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/memory-store_0.2.0_1757714648396_0.1704840447966378","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@data-prism/memory-store","version":"0.2.1","deprecated":"This package has been renamed to '@spectragraph/memory-store'. Please use '@spectragraph/memory-store' instead.","type":"module","main":"./dist/index.cjs.js","module":"./dist/index.esm.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"}},"scripts":{"build":"npm run clean && rollup -c && cp index.d.ts dist/","clean":"rm -rf dist","format:check":"prettier --check \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"","format:fix":"prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,md}\"","lint":"eslint src/ test/","lint:fix":"eslint --fix src/ test/","prepublishOnly":"npm run lint && npm run test","test":"NODE_ENV=test vitest run --coverage","test:watch":"vitest"},"keywords":[],"author":{"name":"Jake Sower"},"devDependencies":{"@data-prism/interface-tests":"*","@rollup/plugin-commonjs":"^28.0.1","@rollup/plugin-node-resolve":"^16.0.0","@vitest/coverage-istanbul":"^3.0.4","@vitest/coverage-v8":"^3.2.4","rollup":"^4.28.1","vitest":"^3.0.4"},"publishConfig":{"access":"public"},"private":false,"sideEffects":false,"dependencies":{"@data-prism/core":"*","es-toolkit":"^1.26.0","json-expressions":"^0.2.1","uuid":"^10.0.0"},"_id":"@data-prism/memory-store@0.2.1","gitHead":"d90da54a8b4c84ca0cde531e924f44836e9be871","description":"A reference implementation and development utility for Data Prism that provides CRUD operations, querying, and relationship management for graph data stored entirely in memory.","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-71IJUoOT9/Dt4wrPRzAMKoYcZTE4b+IzVcx0BU36QZLoerpu7QYdq2rz5WinGr/LPxmx1KrknzzPD8zgyVY3NA==","shasum":"659877b3a373b1c22a6218457eb3836b09aa16ce","tarball":"https://registry.npmjs.org/@data-prism/memory-store/-/memory-store-0.2.1.tgz","fileCount":6,"unpackedSize":566465,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDV1897oOIkGkmDIRYSsYrOhpbzlgeDDIdMN71VIXvnbAiA07Htn/HvmASmEjwsUBitvuCMF22DlVnNIYH4q6ehNlg=="}]},"_npmUser":{"name":"blossomlib","email":"kind.salt4683@fastmail.com"},"directories":{},"maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memory-store_0.2.1_1757801634076_0.10930548096199"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-23T15:24:54.275Z","modified":"2025-09-13T22:13:54.501Z","0.0.1":"2023-05-23T15:24:54.658Z","0.0.2":"2023-05-23T17:38:15.457Z","0.0.3":"2023-05-23T17:42:55.693Z","0.0.4":"2023-05-23T18:38:20.915Z","0.0.5":"2023-05-23T18:47:47.390Z","0.0.6":"2023-05-30T16:27:49.330Z","0.0.7":"2023-06-01T16:38:14.626Z","0.0.8":"2023-08-03T16:22:01.085Z","0.0.9":"2023-08-03T16:35:02.093Z","0.0.10":"2023-08-03T16:39:17.146Z","0.0.11":"2023-08-03T16:43:23.759Z","0.0.12":"2023-08-04T17:22:57.657Z","0.0.13":"2023-08-04T18:30:16.837Z","0.0.14":"2023-08-04T21:36:41.746Z","0.0.15":"2023-08-16T16:52:08.988Z","0.0.16":"2023-08-25T19:08:12.753Z","0.0.17":"2023-09-06T17:15:54.483Z","0.0.18":"2023-09-06T17:18:25.121Z","0.0.19":"2023-09-08T18:05:15.108Z","0.0.20":"2023-10-12T16:16:35.357Z","0.0.21":"2023-10-12T17:11:27.718Z","0.0.22":"2023-10-12T17:17:47.442Z","0.0.30":"2023-12-06T17:21:45.584Z","0.0.31":"2023-12-06T18:20:25.638Z","0.1.0":"2025-08-19T20:06:59.462Z","0.2.0":"2025-09-12T22:04:08.641Z","0.2.1":"2025-09-13T22:13:54.292Z"},"author":{"name":"Jake Sower"},"keywords":[],"description":"A reference implementation and development utility for Data Prism that provides CRUD operations, querying, and relationship management for graph data stored entirely in memory.","maintainers":[{"name":"blossomlib","email":"kind.salt4683@fastmail.com"}],"readme":"# Data Prism Memory Store\n\nA reference implementation and development utility for Data Prism that provides CRUD operations, querying, and relationship management for graph data stored entirely in memory.\n\n## Primary Use Cases\n\n**1. Reference Implementation**\nMemory Store serves as the canonical example of how to implement the Data Prism Store interface correctly. If you're building your own store (database adapter, API client, etc.), use this implementation as your guide for proper schema validation, relationship management, and query handling.\n\n**2. Development Stepping Stone**\nMemory Store provides a seamless transition path from development to production. Mock out your data model with JSON fixtures, develop and test your application logic, then swap to a production store when your real backend is ready - with zero code changes to your application layer.\n\n**Additional Benefits:**\n- **Testing**: Fast, deterministic test fixtures that reset cleanly between tests\n- **Prototyping**: Quick demos and MVPs without external dependencies\n- **Local Development**: Work offline with realistic relational data\n\n## Overview\n\nData Prism Memory Store is built around several key principles:\n\n- **Schema-driven**: Validates all operations against your Data Prism schema\n- **Relationship-aware**: Automatically maintains bidirectional relationships\n- **Query-compatible**: Full support for Data Prism's query language\n- **Memory-efficient**: Normalized storage with reference-based relationships\n\n## Installation\n\n```bash\nnpm install @data-prism/memory-store\n```\n\n## Core Concepts\n\n### Memory Store\n\nThe memory store maintains your data in normalized form in memory, with automatic relationship management and validation. All data is stored in a graph structure organized by resource type and ID.\n\n```javascript\nimport { createMemoryStore } from \"@data-prism/memory-store\";\nimport { defaultSelectEngine, defaultWhereEngine } from \"@data-prism/core\";\n\nconst store = createMemoryStore(schema, {\n\tinitialData: existingGraph, // optional\n\tvalidator: customValidator, // optional\n\tselectEngine: defaultSelectEngine, // optional - expression engine for SELECT clauses\n\twhereEngine: defaultWhereEngine, // optional - expression engine for WHERE clauses\n});\n```\n\n### Operations\n\nThe memory store provides standard CRUD operations plus advanced features:\n\n- **create** - Add new resources with automatic ID generation\n- **update** - Modify existing resources with attribute merging\n- **upsert** - Create or update based on resource existence\n- **delete** - Remove resources with relationship cleanup\n- **query** - Execute Data Prism queries against the store\n- **merge** - Insert complex resource trees with nested relationships\n\n### Expression Engines\n\nThe memory store uses focused expression engines from Data Prism Core to provide different capabilities for different query contexts:\n\n- **SELECT Engine**: Full expression capabilities including filtering, aggregations, transformations, and computed fields for SELECT clauses\n- **WHERE Engine**: Filtering-only operations for WHERE clauses, excluding expensive aggregation operations for performance and security\n\nBy default, the memory store uses `defaultSelectEngine` and `defaultWhereEngine` from `@data-prism/core`. You can provide custom engines in the configuration if needed for specialized use cases.\n\n## API Reference\n\n### `createMemoryStore(schema, config?)`\n\nCreates a new in-memory store instance.\n\n**Parameters:**\n\n- `schema` (Schema) - The Data Prism schema defining resource types and relationships\n- `config.initialData` (Graph, optional) - Initial graph data to populate the store\n- `config.validator` (Ajv, optional) - Custom AJV validator instance\n- `config.selectEngine` (SelectExpressionEngine, optional) - Expression engine for SELECT clauses\n- `config.whereEngine` (WhereExpressionEngine, optional) - Expression engine for WHERE clauses\n\n**Returns:** Memory store instance with CRUD and query operations\n\n```javascript\nimport { createMemoryStore } from \"@data-prism/memory-store\";\n\nconst store = createMemoryStore(schema, {\n\tinitialData: {\n\t\tteams: {\n\t\t\t\"team-1\": {\n\t\t\t\ttype: \"teams\",\n\t\t\t\tid: \"team-1\",\n\t\t\t\tattributes: { name: \"Arizona Bay FC\" },\n\t\t\t\trelationships: { homeMatches: [] },\n\t\t\t},\n\t\t},\n\t},\n});\n```\n\n### Store Operations\n\n#### `store.create(resource)`\n\nCreates a new resource in the store with automatic relationship linking.\n\n**Parameters:**\n\n- `resource` (CreateResource) - The resource to create\n\n**Returns:** The created normalized resource\n\n```javascript\nconst newTeam = store.create({\n\ttype: \"teams\",\n\tattributes: {\n\t\tname: \"Scottsdale Surf\",\n\t\tcity: \"Scottsdale\",\n\t},\n\trelationships: {\n\t\thomeField: { type: \"fields\", id: \"field-1\" },\n\t},\n});\n```\n\n#### `store.update(resource)`\n\nUpdates an existing resource, merging attributes and relationships.\n\n**Parameters:**\n\n- `resource` (UpdateResource) - The resource updates to apply\n\n**Returns:** The updated normalized resource\n\n```javascript\nconst updatedTeam = store.update({\n\ttype: \"teams\",\n\tid: \"team-1\",\n\tattributes: {\n\t\tcity: \"Phoenix\", // New attribute\n\t},\n\trelationships: {\n\t\thomeMatches: [{ type: \"matches\", id: \"match-1\" }], // Replace relationship\n\t},\n});\n```\n\n#### `store.upsert(resource)`\n\nCreates a resource if it doesn't exist, otherwise updates it.\n\n**Parameters:**\n\n- `resource` (CreateResource | UpdateResource) - The resource to upsert\n\n**Returns:** The created or updated normalized resource\n\n```javascript\n// Creates if team-2 doesn't exist, updates if it does\nconst team = store.upsert({\n\ttype: \"teams\",\n\tid: \"team-2\",\n\tattributes: { name: \"Mesa Mariners\" },\n});\n```\n\n#### `store.delete(resource)`\n\nDeletes a resource and cleans up all inverse relationships.\n\n**Parameters:**\n\n- `resource` (DeleteResource) - The resource reference to delete\n\n**Returns:** The deleted resource reference\n\n```javascript\nstore.delete({ type: \"teams\", id: \"team-1\" });\n// All references to team-1 are automatically removed from related resources\n```\n\n#### `store.query(query)`\n\nExecutes a Data Prism query against the store.\n\n**Parameters:**\n\n- `query` (RootQuery) - The query to execute\n\n**Returns:** Query results matching the query structure\n\n```javascript\nconst results = store.query({\n\ttype: \"teams\",\n\tselect: {\n\t\tname: \"name\",\n\t\thomeMatches: {\n\t\t\tselect: [\"field\", \"ageGroup\"],\n\t\t\twhere: { ageGroup: { $gt: 10 } },\n\t\t},\n\t},\n\twhere: { city: \"Phoenix\" },\n});\n```\n\n#### `store.getOne(type, id)`\n\nRetrieves a single resource by type and ID.\n\n**Parameters:**\n\n- `type` (string) - The resource type\n- `id` (string) - The resource ID\n\n**Returns:** The normalized resource or null if not found\n\n```javascript\nconst team = store.getOne(\"teams\", \"team-1\");\n// Returns: { type: \"teams\", id: \"team-1\", attributes: {...}, relationships: {...} }\n```\n\n#### `store.merge(resourceTree)`\n\nInserts a complex resource tree with nested relationships into the store.\n\n**Parameters:**\n\n- `resourceTree` (NormalResourceTree) - The resource tree to merge\n\n**Returns:** The processed resource tree with all nested resources created/updated\n\n```javascript\nconst result = store.merge({\n\ttype: \"teams\",\n\tattributes: { name: \"Tempe Tidal Wave\" },\n\trelationships: {\n\t\thomeMatches: [\n\t\t\t{\n\t\t\t\t// Nested resource - will be created automatically\n\t\t\t\ttype: \"matches\",\n\t\t\t\tattributes: { field: \"Tempe Community Center\", ageGroup: 12 },\n\t\t\t\trelationships: {\n\t\t\t\t\tawayTeam: { type: \"teams\", id: \"team-2\" }, // Reference to existing\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n});\n```\n\n### Advanced Operations\n\n#### `store.linkInverses()`\n\nManually triggers inverse relationship linking across the entire store.\n\n```javascript\nstore.linkInverses();\n// Ensures all bidirectional relationships are properly connected\n```\n\n## Examples\n\n### Basic Usage\n\n```javascript\nimport { createMemoryStore } from \"@data-prism/memory-store\";\n\n// 1. Define your schema (or import from elsewhere)\nconst schema = {\n\tresources: {\n\t\tteams: {\n\t\t\tattributes: {\n\t\t\t\tid: { type: \"string\" },\n\t\t\t\tname: { type: \"string\" },\n\t\t\t\tcity: { type: \"string\" },\n\t\t\t},\n\t\t\trelationships: {\n\t\t\t\thomeMatches: {\n\t\t\t\t\ttype: \"matches\",\n\t\t\t\t\tcardinality: \"many\",\n\t\t\t\t\tinverse: \"homeTeam\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tmatches: {\n\t\t\tattributes: {\n\t\t\t\tid: { type: \"string\" },\n\t\t\t\tfield: { type: \"string\" },\n\t\t\t\tageGroup: { type: \"integer\" },\n\t\t\t},\n\t\t\trelationships: {\n\t\t\t\thomeTeam: { type: \"teams\", cardinality: \"one\", inverse: \"homeMatches\" },\n\t\t\t},\n\t\t},\n\t},\n};\n\n// 2. Create the store\nconst store = createMemoryStore(schema);\n\n// 3. Create resources\nconst team = store.create({\n\ttype: \"teams\",\n\tattributes: {\n\t\tname: \"Arizona Bay FC\",\n\t\tcity: \"Phoenix\",\n\t},\n});\n\nconst match = store.create({\n\ttype: \"matches\",\n\tattributes: {\n\t\tfield: \"Phoenix Park 1\",\n\t\tageGroup: 11,\n\t},\n\trelationships: {\n\t\thomeTeam: { type: \"teams\", id: team.id },\n\t},\n});\n\n// 4. Query the data\nconst results = store.query({\n\ttype: \"teams\",\n\tselect: {\n\t\tname: \"name\",\n\t\thomeMatches: {\n\t\t\tselect: [\"field\", \"ageGroup\"],\n\t\t},\n\t},\n});\n\nconsole.log(results);\n// [{ name: \"Arizona Bay FC\", homeMatches: [{ field: \"Phoenix Park 1\", ageGroup: 11 }] }]\n```\n\n### Complex Resource Trees\n\n```javascript\n// Create a team with nested matches and relationships\nconst teamWithMatches = store.merge({\n\ttype: \"teams\",\n\tattributes: {\n\t\tname: \"Scottsdale Surf\",\n\t\tcity: \"Scottsdale\",\n\t},\n\trelationships: {\n\t\thomeMatches: [\n\t\t\t{\n\t\t\t\ttype: \"matches\",\n\t\t\t\tattributes: {\n\t\t\t\t\tfield: \"Scottsdale Community Center\",\n\t\t\t\t\tageGroup: 12,\n\t\t\t\t},\n\t\t\t\trelationships: {\n\t\t\t\t\tawayTeam: { type: \"teams\", id: team.id }, // Reference to existing team\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"matches\",\n\t\t\t\tattributes: {\n\t\t\t\t\tfield: \"Desert Breeze Park\",\n\t\t\t\t\tageGroup: 14,\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n});\n\n// All relationships are automatically linked bidirectionally\nconst phoenixTeam = store.getOne(\"teams\", team.id);\nconsole.log(phoenixTeam.relationships.awayMatches.length); // 1\n```\n\n### Data Validation\n\n```javascript\n// Validation happens automatically on all operations\ntry {\n\tstore.create({\n\t\ttype: \"teams\",\n\t\tattributes: {\n\t\t\tname: 123, // Invalid: should be string\n\t\t},\n\t});\n} catch (error) {\n\tconsole.error(\"Validation failed:\", error.message);\n}\n\n// Custom validator for additional constraints\nimport { createValidator } from \"@data-prism/core\";\n\nconst customValidator = createValidator({\n\tajvSchemas: [myCustomSchema],\n});\n\nconst strictStore = createMemoryStore(schema, {\n\tvalidator: customValidator,\n});\n```\n\n### Querying with Filters\n\n```javascript\n// Find all matches for teams from Phoenix\nconst phoenixMatches = store.query({\n\ttype: \"matches\",\n\tselect: {\n\t\tfield: \"field\",\n\t\tageGroup: \"ageGroup\",\n\t\thomeTeamName: \"homeTeam.name\",\n\t},\n\twhere: {\n\t\t\"homeTeam.city\": \"Phoenix\",\n\t\tageGroup: { $gte: 11 },\n\t},\n\torder: [{ ageGroup: \"asc\" }, { field: \"asc\" }],\n\tlimit: 10,\n});\n```\n\n## TypeScript Support\n\nData Prism Memory Store includes comprehensive TypeScript definitions:\n\n```typescript\nimport type { MemoryStore, MemoryStoreConfig } from \"@data-prism/memory-store\";\nimport type { Schema, CreateResource } from \"@data-prism/core\";\n\nconst schema: Schema = {\n\tresources: {\n\t\tteams: {\n\t\t\tattributes: {\n\t\t\t\tid: { type: \"string\" },\n\t\t\t\tname: { type: \"string\" },\n\t\t\t},\n\t\t\trelationships: {},\n\t\t},\n\t},\n};\n\nconst store: MemoryStore = createMemoryStore(schema);\n\nconst newTeam: CreateResource = {\n\ttype: \"teams\",\n\tattributes: { name: \"Mesa Mariners\" },\n};\n```\n\n## Production Considerations\n\n**Memory Store is designed for development, not production use.** Key limitations:\n\n- **Memory growth**: No cleanup mechanisms - data accumulates indefinitely\n- **Single-process only**: All data is lost when the process restarts\n- **No persistence**: Changes are not saved to disk\n- **Performance**: O(n) queries without indexing, suitable for small development datasets\n\nFor production applications, transition to a persistent store like `@data-prism/postgres-store` or implement your own store using this as a reference.\n\n## Related Packages\n\n- `@data-prism/core` - Core Data Prism functionality and validation\n- `@data-prism/postgres-store` - PostgreSQL backend store\n- `@data-prism/jsonapi-store` - JSON:API client store\n","readmeFilename":"README.md"}