{"_id":"memgoose","_rev":"29-d7d323a6f81fd28ae2025e6b5a71009b","name":"memgoose","dist-tags":{"latest":"2.3.0"},"versions":{"1.0.9":{"name":"memgoose","version":"1.0.9","keywords":[],"author":"","license":"MIT","_id":"memgoose@1.0.9","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"06f3cf763623cf758477dac9a5197e9aa372b97a","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-1.0.9.tgz","fileCount":35,"integrity":"sha512-jSsk7ZJrhnxusSguVzhcD12Rp96HlEH7hyJmOhA+56yKxyEkj4NzP9VGR0iSD94Pnfhx1oVL2Y7IHtqzlyiEKA==","signatures":[{"sig":"MEUCIGSd+wxnWvwgPBRPZ0L4pnO0sT/y10fz1TV5CROTskb9AiEAt6Du9yC+ORMrua2Hi0Vlnc5sHSXpBn5jcKimXIlmN9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180786},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f0007bac446718b2815a8aab0c712220e3982973","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"_npmOperationalInternal":{"tmp":"tmp/memgoose_1.0.9_1760177944865_0.9449575281401239","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"memgoose","version":"1.0.10","keywords":[],"author":"","license":"MIT","_id":"memgoose@1.0.10","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"c58ded095947a3aa167619031c1bb951a5586f2a","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-1.0.10.tgz","fileCount":39,"integrity":"sha512-rNkc4pKKWxUf7EXhvzcJ2C4pMMIaSLxbDhlIqXcCEA6V+QVXbV6l5NWVbmO/dh5UF5u8lSlZYadLJRqWI8Tk5A==","signatures":[{"sig":"MEUCIQDqHpVP/AvIk1iF+gls5yid16avaR0kESMagwO1VTRGuwIgKFw0VFXXKj7Yv0VWrnMrBm6bs9IO51SdTbtSIYuicHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182567},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"805650b4f8f09c7b91da2f91ed6f0be7af33dadd","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"_npmOperationalInternal":{"tmp":"tmp/memgoose_1.0.10_1760348536145_0.6541831732682541","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"memgoose","version":"2.0.0","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.0.0","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"1ed9b980ecbdac3ba8fd27525a439a5fbcf23c35","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.0.0.tgz","fileCount":83,"integrity":"sha512-xNB+Un7OmfE6fkudPixEp506pgl8vyLc1oD5vGyHQxK2DalXCgxjAUlBu0gldSgYvK2tW9FQEeumcGJjBs3DNA==","signatures":[{"sig":"MEQCIH27h1CKhYmta87xen24Q5myVbTaL3ciYyKQSiQc9I/GAiB+WjlnTcxHWvhbdzKG2R34WNrFhQDJ4WjkKXcVXwtVEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414796},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"570ac109aafbbfb2bf53accd280185b4b94f5446","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.0.0_1761080068873_0.7006923382428962","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"memgoose","version":"2.0.1","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.0.1","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"972a162a8b423d426a4c19e4ea6e3ae7d70a31cc","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.0.1.tgz","fileCount":83,"integrity":"sha512-niwWHhivAkoL/pMAc/FzlxICXt8BbkzeEcoslkp6Ch6lJlCZwWKjU4ngRH1+Ck7GLNke/3HHcYToc1AXh6J01g==","signatures":[{"sig":"MEQCIGxkMB5h5ksj8rUQyNp9t2a532+Xi90XGQOKL0iUTz9SAiAmDg6upA8ET2oIVlI8tAtrsZLdWNehPD5ta1W0mK4UXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":414981},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"241bb25e4ebcb67655272cda16f5b8cf5227ad31","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.0.1_1761085944394_0.6274351006440759","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"memgoose","version":"2.1.0","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.1.0","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"98af4a50cd3752eb1f38baf0faeeb39b37da33fa","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.1.0.tgz","fileCount":87,"integrity":"sha512-PTbXUSfE+kNCkIaH98kmg8EfGA28mcKnkhD/UVZB8POaiLDRGU6xEZBhFbf8vZFlPebPKZ1aEJYRLN0ytAWYxw==","signatures":[{"sig":"MEQCIBOiQtBlaZcuASK2EznR6nIgMySmgZrGfVfJcKZ+QvWhAiA2ZxEZAvS2aeUQJlcZ1PkrRelKa+Rok1rh87TPZYMszg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":536296},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e5317473b6a17f059f61d6c1a112984b9783ae39","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.1.0_1761251804961_0.3559905245861623","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"memgoose","version":"2.1.1","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.1.1","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"1cd89837c4abeb3bd26255b789311ab35b59be46","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.1.1.tgz","fileCount":87,"integrity":"sha512-Sk142Lj645ucsdfCU+CL+xXRqUNt9OlV7G1cehm57m4qXTlD86fhjYuCoKPN3iAACyAZl/YgYRJv87FN1TorIQ==","signatures":[{"sig":"MEUCIQDYtHPtC8jAA4f9co70j4GrwJYwNSXmxwH1eFbASmU9NwIgFoUTw6/6Te1OYTjflvN/nzlFcrdNuLuIF7m5EAY8f74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":518973},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b8f82bcae1d1ddbfe929ed9a9c7500262022f036","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.1.1_1761256802842_0.34391228855945033","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"memgoose","version":"2.2.0","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.0","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"dbddcd8159e6f785c8d2e69e5b631b00d3722ec6","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.0.tgz","fileCount":107,"integrity":"sha512-L3R90K8MSr3Dxsafwcv1s3u2dghlWM7M/c+WNgjB4ziq7mXHKc8PuTSMiM9PFsgwaB0RMrSXYSeg2tEnbKh/tw==","signatures":[{"sig":"MEUCIDYCh5YPhJ/165sClYGd185aX80eYEUHftoaLtI1MStkAiEA8kIB5GgDnzOaqYn4hJ2pp9DgGCOQQktc8K9bkr8HIiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":690929},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"52eb0e159e5d23027cccba2e9944ef8a7bb5c5d2","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.0_1769818277286_0.015084946748123329","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"memgoose","version":"2.2.1","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.1","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"b955f3513e3789a899504a0d14a28ca8194e811c","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.1.tgz","fileCount":107,"integrity":"sha512-HxprrRfKBTdb2Yso0OuKT41RS3N3ixO/ufLg5ISGl9qWE4XQP7Td02FD1K2dNtbt863pMbp5AmHd3Yx6HItBkw==","signatures":[{"sig":"MEUCIHXKjZOFKEuqMpi0orPC4E0/d5/f00GCOoDmMx9Wu2GVAiEAg3bD306zz1Becd+NkmuQ2Ew1fNhx0BRm1IDvExg6iBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698814},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"792b59fcf1aee2827eab4fac8aab5ab875cbb7b0","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.1_1769818732677_0.8083951099065252","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"memgoose","version":"2.2.2","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.2","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"8331ab76f1d8116e0f6beab91167a3ff59038b81","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.2.tgz","fileCount":107,"integrity":"sha512-MJLeN1JEEuhrYkCK7djKU/8qFT7XE3oACOnUTnSHuJsDIDB7jlLlhYSc8Z64pbK064+nuc2x707x3kap1asFZA==","signatures":[{"sig":"MEQCIEmyT7X7LwUqcJIkZYgvEJTszepeCJue3Y4z+lv+mI8SAiAzXhLFHX9GeN3LbMim7lMVyy0cxrgyz85QK6NH/Dm2dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":704432},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7044ed5341434d1230c13571ee09e35999a6dcff","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.2_1769819642903_0.6159113385559594","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"memgoose","version":"2.2.3","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.3","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"0913b17ba58ea54e3862c4d1f5b08bfe74a92824","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.3.tgz","fileCount":107,"integrity":"sha512-4cHWGxEenXESJSZqaZ6WqWQTDZ4qKRCPNVMqMDJPHr6DzuYNskW7acfvG3av8FHYDumfhjRp4TNnVP+Ty/lnow==","signatures":[{"sig":"MEUCICquPbEfnXQZ66zL3/Uyis1tyN5cg6nyVL8f8GNpINNEAiEAh/o31rEEF6wC6HlI1LdQWykMVRVaMez/3av+fdObAPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706161},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"60f9cde130b2968deefba2168935f3291f569916","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.3_1769819959525_0.8170333578114943","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"memgoose","version":"2.2.4","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.4","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"8358c8c8f13708a3be1117cb20dd0569144c65a4","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.4.tgz","fileCount":107,"integrity":"sha512-8V31ZL7uo3zNCSK9k/GW4FVaYjxF/Jzk/Oz/2nNuanj6Z3Kj2mAFjKIXYK7soTkpQHZKFvqn4ZYE1C9LL3/fKw==","signatures":[{"sig":"MEUCIFbLVI/uqp9EVIfXHiXD2oIlftuze3leDSrc7WEhES1KAiEAoT+mfeV9f/207igKRysL4b8SL4vkMzDEfLLxldZJEjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706669},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2e8fa8fb2bbc7424b4644c94107aaf39f79015c4","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.4_1769820451993_0.16090642794797194","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"memgoose","version":"2.2.5","keywords":[],"author":"","license":"MIT","_id":"memgoose@2.2.5","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"homepage":"https://github.com/dashersw/memgoose#readme","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"dist":{"shasum":"94b183346bba594ab419ee7edd4989a23ef4647d","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.2.5.tgz","fileCount":107,"integrity":"sha512-QmhnLtgDc8f7TM6dAd0K+xfeMQoO1lTdJtceqzAZEE+Z6+Qprl/T0hEKERF8vaK2h5QlO5SAAiAqb5+A1gZi9w==","signatures":[{"sig":"MEUCIG9jzjYq2OgalI/y+Lj/rU95C6EPYU8E4lzkTKMK9I/bAiEAxd3hoOlsPWj6dkxLr0tu62aWZCETKuYL5BkDLapiWjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707532},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a61822520af8f7ee22eb8270d517b2e3db831b5b","scripts":{"lint":"eslint . --ext .ts","test":"node --import tsx --test tests/*.test.ts","build":"tsc","clean":"rm -rf dist build","format":"prettier --write \"**/*.{ts,json,md}\"","example":"tsx examples/schema-indexes-queries.ts","prepare":"npm run build","lint:fix":"eslint . --ext .ts --fix","benchmark":"tsx examples/performance.ts","build:all":"npm run build && npm run build:tests","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","build:tests":"tsc -p tsconfig.tests.json","check-types":"tsc --noEmit","example:ttl":"tsx examples/ttl-indexes-demo.ts","example:perf":"tsx examples/performance.ts","example:save":"tsx examples/document-save.ts","format:check":"prettier --check \"**/*.{ts,json,md}\"","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example:logical":"tsx examples/logical-operators-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html","example:aggregation":"tsx examples/aggregation-demo.ts","example:compression":"tsx examples/compression-comparison.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js"},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"repository":{"url":"git+https://github.com/dashersw/memgoose.git","type":"git"},"_npmVersion":"11.6.0","description":"An in-memory mongoose impersonator","directories":{},"_nodeVersion":"24.8.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.19.2","eslint":"^9.37.0","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.7.2","@types/node":"^24.7.1","better-sqlite3":"^12.4.1","memgoose-wiredtiger":"^1.0.4","@types/better-sqlite3":"^7.6.11","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/memgoose_2.2.5_1774288557769_0.32440255536402485","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"memgoose","version":"2.3.0","description":"An in-memory mongoose impersonator","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","build:tests":"tsc -p tsconfig.tests.json","build:all":"npm run build && npm run build:tests","clean":"rm -rf dist build","check-types":"tsc --noEmit","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","format":"prettier --write \"**/*.{ts,json,md}\"","format:check":"prettier --check \"**/*.{ts,json,md}\"","prepare":"npm run build","prepublishOnly":"npm run build && npm run lint && npm run check-types && npm run test","example":"tsx examples/schema-indexes-queries.ts","example:perf":"tsx examples/performance.ts","example:virtuals":"tsx examples/virtuals-and-hooks.ts","example:showcase":"tsx examples/complete-features-demo.ts","example:save":"tsx examples/document-save.ts","example:sqlite":"tsx examples/sqlite-storage-demo.ts","example:wiredtiger":"tsx examples/wiredtiger-storage-demo.ts","example:compression":"tsx examples/compression-comparison.ts","example:memory":"node --expose-gc --import tsx examples/memory-usage-demo.ts","example:logical":"tsx examples/logical-operators-demo.ts","example:aggregation":"tsx examples/aggregation-demo.ts","example:populate":"tsx examples/advanced-populate-demo.ts","example:ttl":"tsx examples/ttl-indexes-demo.ts","benchmark":"tsx examples/performance.ts","test":"node --import tsx --test tests/*.test.ts","test:file":"node --import tsx --test","test:watch":"node --import tsx --test --watch tests/*.test.ts","test:coverage":"node --import tsx --test --experimental-test-coverage tests/*.test.ts","test:coverage:built":"npm run build:all && node --import tsx --test --experimental-test-coverage dist/tests/tests/*.test.js","test:coverage:detailed":"npm run build:all && c8 --reporter=html --reporter=text node --import tsx --test dist/tests/tests/*.test.js","test:coverage:html":"npm run test:coverage:detailed && open coverage/index.html"},"repository":{"type":"git","url":"git+https://github.com/dashersw/memgoose.git"},"keywords":[],"author":"","license":"MIT","bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"homepage":"https://github.com/dashersw/memgoose#readme","peerDependencies":{"better-sqlite3":"^11.0.0","memgoose-wiredtiger":"^1.0.4"},"peerDependenciesMeta":{"better-sqlite3":{"optional":true},"memgoose-wiredtiger":{"optional":true}},"devDependencies":{"@eslint/js":"^9.37.0","@types/better-sqlite3":"^7.6.11","@types/node":"^24.7.1","@typescript-eslint/eslint-plugin":"^8.46.0","@typescript-eslint/parser":"^8.46.0","better-sqlite3":"^12.4.1","c8":"^10.1.3","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","memgoose-wiredtiger":"^1.0.4","prettier":"^3.6.2","tsx":"^4.19.2","typescript":"^5.7.2"},"_id":"memgoose@2.3.0","gitHead":"18fec8c5e2f2c49deed65f4fa637b12278a5afc9","_nodeVersion":"24.8.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-zdwsXiRKFG2zlibUXlX838fBRezHx3IWkqYuXhwjK4n28YbOO/2zGfbeVvODBzUKOLDjM1YR9IzeElEFp2EGpw==","shasum":"bcd7708104b7f243b457944df544dbc95dd4c5c2","tarball":"https://registry.npmjs.org/memgoose/-/memgoose-2.3.0.tgz","fileCount":119,"unpackedSize":737501,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEYZgBxhxpDufT9BoXtqOz8osyrLTPEzGtNZoU+3xYicAiBAP+i4rxNHlYnexZCbuZbos8txLRaUDvi6rwEfZLgaiw=="}]},"_npmUser":{"name":"dashersw","email":"armagan@amcalar.com"},"directories":{},"maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memgoose_2.3.0_1774528632203_0.33580920911757106"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-11T05:14:19.514Z","modified":"2026-03-26T12:37:12.530Z","1.0.0":"2025-10-11T05:14:19.721Z","1.0.1":"2025-10-11T05:24:34.852Z","1.0.3":"2025-10-11T05:47:27.588Z","1.0.4":"2025-10-11T06:26:57.855Z","1.0.5":"2025-10-11T08:09:40.820Z","1.0.6":"2025-10-11T08:16:36.196Z","1.0.7":"2025-10-11T08:19:05.675Z","1.0.8":"2025-10-11T08:23:46.681Z","1.0.9":"2025-10-11T10:19:05.083Z","1.0.10":"2025-10-13T09:42:16.335Z","2.0.0":"2025-10-21T20:54:29.078Z","2.0.1":"2025-10-21T22:32:24.625Z","2.1.0":"2025-10-23T20:36:45.166Z","2.1.1":"2025-10-23T22:00:03.097Z","2.2.0":"2026-01-31T00:11:17.454Z","2.2.1":"2026-01-31T00:18:52.853Z","2.2.2":"2026-01-31T00:34:03.074Z","2.2.3":"2026-01-31T00:39:19.687Z","2.2.4":"2026-01-31T00:47:32.144Z","2.2.5":"2026-03-23T17:55:58.036Z","2.3.0":"2026-03-26T12:37:12.412Z"},"bugs":{"url":"https://github.com/dashersw/memgoose/issues"},"license":"MIT","homepage":"https://github.com/dashersw/memgoose#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/dashersw/memgoose.git"},"description":"An in-memory mongoose impersonator","maintainers":[{"name":"dashersw","email":"armagan@amcalar.com"}],"readme":"# memgoose\n\nA **lightweight, type-safe, in-memory database** with MongoDB-like API and pluggable persistence. Built for testing, caching, and rapid development with familiar Mongoose-style schemas.\n\n[![npm version](https://badge.fury.io/js/memgoose.svg)](https://badge.fury.io/js/memgoose)\n[![npm downloads](https://img.shields.io/npm/dm/memgoose.svg)](https://www.npmjs.com/package/memgoose)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg)](https://www.typescriptlang.org/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Tests](https://img.shields.io/badge/tests-800%2B%20passing-brightgreen.svg)]()\n\n## At a Glance\n\n```typescript\n// Define schema with validation, indexes, and hooks\nconst userSchema = new Schema({\n  email: { type: String, unique: true },\n  age: { type: Number, min: 0 }\n}, { timestamps: true })\n\nuserSchema.index('email') // O(1) lookups\n\n// Choose your storage\nconnect({ storage: 'memory' })           // Testing: 0 setup, fastest\nconnect({ storage: 'sqlite', ... })      // Production: ACID, native SQL queries\nconnect({ storage: 'wiredtiger', ... })  // Enterprise: MongoDB-grade performance\n```\n\n| **Metric**        | **Value**                         |\n| ----------------- | --------------------------------- |\n| Query Speed       | **431-1147x** faster with indexes |\n| Storage Options   | Memory, SQLite, WiredTiger, File  |\n| Test Coverage     | 800+ passing tests                |\n| Dependencies      | Zero (core library)               |\n| TypeScript        | Full support with IntelliSense    |\n| API Compatibility | Mongoose-like (easy migration)    |\n\n## Quick Start\n\n```typescript\nimport { Schema, model } from 'memgoose'\n\n// Define schema with indexes, virtuals, and hooks\nconst userSchema = new Schema({ firstName: String, lastName: String, email: String, age: Number })\n\nuserSchema.index('email')\nuserSchema.virtual('fullName').get(doc => `${doc.firstName} ${doc.lastName}`)\nuserSchema.pre('save', ({ doc }) => {\n  doc.email = doc.email.toLowerCase() // Normalize email\n})\n\n// Create model\nconst User = model('User', userSchema)\n\n// Insert and query\nawait User.create({ firstName: 'Alice', lastName: 'Smith', email: 'ALICE@EXAMPLE.COM', age: 25 })\nconst user = await User.findOne({ email: 'alice@example.com' }) // O(1) with index!\nconsole.log(user.fullName) // \"Alice Smith\" (virtual property)\n\n// Update, delete, count\nawait User.updateOne({ firstName: 'Alice' }, { $inc: { age: 1 } })\nawait User.deleteMany({ age: { $lt: 18 } })\nconst count = await User.countDocuments({ age: { $gte: 18 } })\n```\n\n## Why memgoose?\n\n- 🚀 **Blazing Fast**: O(1) lookups with indexing (83-1147x faster than linear scans)\n- 🎯 **Type-Safe**: Full TypeScript support with IntelliSense\n- 🏗️ **Mongoose-Compatible**: Drop-in replacement for mongoose in many cases\n- 💾 **Pluggable Storage**: Memory, SQLite, WiredTiger, or file-based (NDJSON + WAL) persistence\n- 📦 **Zero Dependencies**: No runtime dependencies (optional peer dependencies for storage backends)\n- 🧪 **Well Tested**: 800+ passing tests with comprehensive coverage\n\n## Use Cases\n\n- 🧪 **Testing**: Mock MongoDB in unit/integration tests without spinning up a database\n- 🚀 **Prototyping**: Quickly build features before implementing real database\n- 💾 **Caching**: In-memory cache with familiar mongoose-like API\n- 📊 **Development**: Fast local development without database setup\n- 🎯 **Learning**: Learn MongoDB query patterns without installing MongoDB\n- 🗄️ **Persistence**: Use SQLite or WiredTiger for lightweight persistent applications\n\n## Features\n\n- 🔍 **Rich Queries**: MongoDB-like operators (`$eq`, `$ne`, `$in`, `$nin`, `$gt`, `$gte`, `$lt`, `$lte`, `$regex`, `$exists`, `$size`, `$elemMatch`, `$all`)\n- 🧮 **Logical Operators**: `$or`, `$and`, `$nor`, `$not` for complex query logic\n- ✏️ **Update Operators**: `$set`, `$unset`, `$inc`, `$dec`, `$push`, `$pull`, `$addToSet`, `$pop`, `$rename`\n- 📈 **Smart Indexing**: Single-field, compound, unique, and TTL indexes with partial matching\n- 📊 **Aggregation Pipeline**: Full pipeline with `$match`, `$group`, `$project`, `$lookup`, `$unwind`, and more\n- 🔗 **Advanced Populate**: Nested populate with select, match filtering, and field projection\n- ⏱️ **TTL Indexes**: Automatic document expiration for sessions, caches, and temporary data\n- 🎣 **Hooks**: Pre/post hooks for save, update, delete, and find operations\n- 🔮 **Virtuals**: Computed properties with getter functions\n- ⚡ **Atomic Operations**: `findOneAndUpdate()`, `findOneAndDelete()`\n- 🚄 **Lean Queries**: 17.5x faster by skipping virtual computation\n\n## Installation\n\n```bash\nnpm install memgoose\n```\n\nFor persistent storage (optional):\n\n```bash\n# SQLite storage\nnpm install better-sqlite3\n\n# WiredTiger storage (requires build tools)\nnpm install memgoose-wiredtiger\n```\n\n## Examples\n\n```bash\n# Basic usage\nnpm run example\n\n# Performance benchmark\nnpm run example:perf\n\n# Memory usage demo\nnpm run example:memory\n\n# Complete features showcase\nnpm run example:showcase\n```\n\nSee the [`examples/`](./examples/) folder for complete, runnable code samples demonstrating all features.\n\n## Documentation\n\n📚 **[Complete Documentation](./docs/README.md)**\n\n- **[Getting Started](./docs/GETTING_STARTED.md)** - Installation and basic usage\n- **[Testing Guide](./docs/TESTING.md)** - Drop-in replacement for mongoose in tests\n- **[API Reference](./docs/API.md)** - Complete API documentation\n- **[Schemas](./docs/SCHEMAS.md)** - Schema definition and validation\n- **[Queries](./docs/QUERIES.md)** - Query operators and patterns\n- **[Aggregation](./docs/AGGREGATION.md)** - Aggregation pipeline guide\n- **[Storage](./docs/STORAGE.md)** - Storage backends comparison\n- **[Performance](./docs/PERFORMANCE.md)** - Optimization and benchmarks\n- **[Advanced Features](./docs/ADVANCED.md)** - Hooks, virtuals, populate\n\n## Storage Options\n\n```typescript\nimport { connect } from 'memgoose'\n\n// Memory (default, fastest)\nconnect({ storage: 'memory' })\n\n// SQLite (persistent, ACID, native SQL queries)\nconnect({ storage: 'sqlite', sqlite: { dataPath: './data' } })\n\n// WiredTiger (enterprise-grade)\nconnect({ storage: 'wiredtiger', wiredtiger: { dataPath: './data' } })\n\n// File (NDJSON + WAL)\nconnect({ storage: 'file', file: { dataPath: './data' } })\n```\n\n## Performance\n\nmemgoose delivers **exceptional performance** through intelligent indexing and optimized query execution.\n\n### Benchmark Results\n\n**Dataset:** 100,000 documents  \n**Hardware:** Apple M4 Max (16 cores, 128GB RAM)  \n**Node.js:** v24.8.0\n\n| Operation                     | Without Index | With Index | Speedup      |\n| ----------------------------- | ------------- | ---------- | ------------ |\n| Equality query (`findOne`)    | 2.01ms        | <0.01ms    | **431x** ⚡  |\n| Compound query (`city + age`) | 2.01ms        | <0.01ms    | **1147x** 🚀 |\n| Count documents               | 24.42ms       | 11.60ms    | **2x**       |\n| Update one document           | 2.09ms        | 0.02ms     | **83x**      |\n| Lean queries (no virtuals)    | 12.00ms       | 0.70ms     | **17.5x**    |\n\n### Key Takeaways\n\n- **Index your queries**: Add `.index('fieldName')` to your schema for O(1) lookups\n- **Use lean queries**: Skip virtual computation for read-heavy operations (17.5x faster)\n- **Choose the right storage**: Memory for testing, SQLite/WiredTiger for production\n\nSee [Performance Guide](./docs/PERFORMANCE.md) for optimization strategies and detailed benchmarks.\n\n## Migration from Mongoose\n\nmemgoose is designed to be a drop-in replacement for Mongoose - just change the import:\n\n```typescript\n// Change this:\nimport mongoose from 'mongoose'\n\n// To this:\nimport mongoose from 'memgoose'\n\n// Your existing code works unchanged\nconst User = mongoose.model('User', userSchema)\n```\n\n### Drop-in Replacement for Tests\n\nUse memgoose as a complete mock for mongoose in your test suite:\n\n```typescript\n// Vitest\nvi.mock('mongoose', () => import('memgoose'))\n\n// Jest\njest.mock('mongoose', () => require('memgoose'))\n```\n\nYour existing mongoose-based code will use memgoose automatically. See the **[Testing Guide](./docs/TESTING.md)** for complete setup examples with Vitest and Jest.\n\n## Contributing\n\nContributions welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT\n\n---\n\n**Need help?** Check out the [examples](./examples/) or [open an issue](https://github.com/dashersw/memgoose/issues).\n","readmeFilename":"README.md"}