{"_id":"@abimongo/core","_rev":"7-754dff218f665debabb9ac96d76ccb88","name":"@abimongo/core","dist-tags":{"latest":"1.1.5"},"versions":{"1.1.1":{"name":"@abimongo/core","version":"1.1.1","keywords":["mongodb","odm","core","abimongo","library"],"author":{"name":"Emmanuel Nodolomwanyi"},"license":"ISC","_id":"@abimongo/core@1.1.1","maintainers":[{"name":"abimongo","email":"padave805@gmail.com"}],"bin":{"abimongo":"dist/abimongo-core-cli.js"},"dist":{"shasum":"c2856b8c97d889798809f993d1a3bb78dd7f0c31","tarball":"https://registry.npmjs.org/@abimongo/core/-/core-1.1.1.tgz","fileCount":191,"integrity":"sha512-s2cMNghlQCmQypMG3UiXNzZhwCJ1jjuwVXrpKc+EODKD3uqA+toBdQOG9kunUEX1QEPxos0/Jc3/5naKNuqHfg==","signatures":[{"sig":"MEUCIQCqcxB8/TaIQ+FcxlGtTnoKEaH0mRs4TatIY7CsTZQ18wIgQe/bsXNR0nbnP8wZeGmRYI4sGPoWnrLKgqOPQcbLetI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":908499},"main":"./dist/abimongo-core.js","_from":"file:abimongo-core-1.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/abimongo-core.js","browser":"./dist/abimongo-core-browser.js","engines":{"node":">=20.11.0","pnpm":">=10.20.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/abimongo-core.js","require":"./dist/abimongo-core.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/abimongo-core-browser.js","require":"./dist/abimongo-core-browser.js"},"./package.json":"./package.json"},"release":{"branches":["main"]},"scripts":{"lint":"eslint src","test":"jest --detectOpenHandles --coverage","build":"pnpm run build:node && pnpm run build:cli && pnpm run build:web","clean":"rimraf dist","release":"pnpm changeset version","typedoc":"typedoc --options typedoc.json","build:cli":"webpack --config webpack.cli.config.js","build:web":"webpack --config webpack.web.config.js","changeset":"pnpm run changeset","clean:all":"rimraf dist && rimraf docs","build:node":"webpack --config webpack.node.config.js","docusaurus:build":"cd website && pnpm docusaurus build","docusaurus:start":"cd website && pnpm docusaurus start","semantic-release":"semantic-release","docusaurus:deploy":"cd website && pnpm docusaurus deploy"},"_npmUser":{"name":"abimongo","email":"padave805@gmail.com"},"_resolved":"/tmp/90b3c1bfe3d8a11289582a66aca0f75d/abimongo-core-1.1.1.tgz","_integrity":"sha512-s2cMNghlQCmQypMG3UiXNzZhwCJ1jjuwVXrpKc+EODKD3uqA+toBdQOG9kunUEX1QEPxos0/Jc3/5naKNuqHfg==","_npmVersion":"10.8.2","description":"Enterprise-grade MongoDB ORM built on the official MongoDB driver.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"fs-extra":"^11.3.2","commander":"^14.0.2","node-cron":"4.2.0","docusaurus":"^0.0.2","@babel/runtime":"^7.27.1","@abimongo/logger":"1.1.1","reflect-metadata":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.2","jest":"^29.7.0","axios":"^1.9.0","tslib":"^2.8.1","eslint":"^9.23.0","figlet":"^1.9.3","express":"^5.1.0","globals":"^14.0.0","ts-jest":"^29.3.1","ts-node":"^10.9.2","webpack":"5.98.0","supertest":"^7.1.1","ts-loader":"^9.5.2","@eslint/js":"^9.23.0","typescript":"^5.9.3","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^22.15.30","webpack-cli":"6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.1","@types/webpack":"5.28.5","tsconfig-paths":"^4.2.0","path-browserify":"^1.0.1","@docusaurus/core":"^3.9.2","semantic-release":"^24.2.5","socket.io-client":"^4.8.1","@babel/preset-env":"^7.26.9","crypto-browserify":"^3.12.1","stream-browserify":"^3.0.0","typescript-eslint":"8.30.1","@types/jsonwebtoken":"^9.0.9","@babel/eslint-parser":"^7.27.0","clean-webpack-plugin":"^4.0.0","webpack-remove-debug":"^0.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-webpack-plugin":"^5.0.1","mongodb-memory-server":"^10.1.4","webpack-node-externals":"^3.0.0","webpack-shebang-plugin":"^1.1.8","@babel/preset-typescript":"^7.27.0","@semantic-release/github":"^11.0.3","@testing-library/jest-dom":"^6.9.1","express-serve-static-core":"^0.1.1","@docusaurus/preset-classic":"^3.9.2","conventional-changelog-cli":"^4.1.0","@semantic-release/changelog":"^6.0.3","tsconfig-paths-webpack-plugin":"^4.2.0","@babel/plugin-transform-runtime":"^7.26.10","@docusaurus/plugin-content-docs":"^3.9.2","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-transform-modules-commonjs":"^7.26.3","@semantic-release/release-notes-generator":"^14.0.3"},"peerDependencies":{"ws":"8.18.3","ajv":"8.17.1","redis":"4.7.1","buffer":"6.0.3","dotenv":"^16.4.7","graphql":"16.11.0","mongodb":"^5 || ^6","graphql-ws":"5.16.2","ajv-formats":"3.0.1","graphql-tag":"2.12.6","graphql-http":"1.22.4","jsonwebtoken":"^9.0.2","@apollo/server":"^5.0.0","console-browserify":"^1.2.0","@graphql-tools/schema":"10.0.23","graphql-subscriptions":"3.0.0","graphql-redis-subscriptions":"2.7.0"},"peerDependenciesMeta":{"mongodb":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.1_1762154601547_0.9852210545126925","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@abimongo/core","version":"1.1.3","keywords":["mongodb","odm","core","abimongo","library"],"author":{"name":"Emmanuel Nodolomwanyi"},"license":"ISC","_id":"@abimongo/core@1.1.3","maintainers":[{"name":"abimongo","email":"padave805@gmail.com"}],"bin":{"abimongo":"dist/abimongo-core-cli.js"},"dist":{"shasum":"3396fed6b9733806117125098722751daac97486","tarball":"https://registry.npmjs.org/@abimongo/core/-/core-1.1.3.tgz","fileCount":193,"integrity":"sha512-i0bE66nb5iOfgdfnxz1IsI2Lp+PxSSUb3ycVgqf6PiIr+nGUzOX35mLd6l2jJTwHE4D2+i4CoNljmn4AeUtX2g==","signatures":[{"sig":"MEQCIHxumqPbRUAfcyw1YAlLSqi5gBrweuZ3u5CGntNWGBB5AiBlWTSvVh/3EzId3XuNzoPt91LHiwByhpQAj3BnTpDhOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1295448},"main":"./dist/abimongo-core.js","_from":"file:abimongo-core-1.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/abimongo-core.js","browser":"./dist/abimongo-core-browser.js","engines":{"node":">=20.11.0","pnpm":">=10.20.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/abimongo-core.js","require":"./dist/abimongo-core.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/abimongo-core-browser.js","require":"./dist/abimongo-core-browser.js"},"./package.json":"./package.json"},"release":{"branches":["main"]},"scripts":{"lint":"eslint src","test":"jest --detectOpenHandles --coverage","build":"pnpm run build:node && pnpm run build:cli && pnpm run build:web","clean":"rimraf dist","release":"pnpm changeset version","typedoc":"typedoc --options typedoc.json","build:cli":"webpack --config webpack.cli.config.js","build:web":"webpack --config webpack.web.config.js","changeset":"pnpm run changeset","clean:all":"rimraf dist && rimraf docs","build:node":"webpack --config webpack.node.config.js","docusaurus:build":"cd website && pnpm docusaurus build","docusaurus:start":"cd website && pnpm docusaurus start","semantic-release":"semantic-release","docusaurus:deploy":"cd website && pnpm docusaurus deploy"},"_npmUser":{"name":"abimongo","email":"padave805@gmail.com"},"_resolved":"/tmp/ca09f9868a014445607794412cf40f22/abimongo-core-1.1.3.tgz","_integrity":"sha512-i0bE66nb5iOfgdfnxz1IsI2Lp+PxSSUb3ycVgqf6PiIr+nGUzOX35mLd6l2jJTwHE4D2+i4CoNljmn4AeUtX2g==","_npmVersion":"10.8.2","description":"Enterprise-grade MongoDB ORM built on the official MongoDB driver.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"fs-extra":"^11.3.2","commander":"^14.0.2","node-cron":"4.2.0","docusaurus":"^0.0.2","@babel/runtime":"^7.27.1","@abimongo/logger":"1.1.3","reflect-metadata":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.2","jest":"^29.7.0","axios":"^1.9.0","tslib":"^2.8.1","eslint":"^9.23.0","figlet":"^1.9.3","express":"^5.1.0","globals":"^14.0.0","ts-jest":"^29.3.1","ts-node":"^10.9.2","webpack":"5.98.0","supertest":"^7.1.1","ts-loader":"^9.5.2","@eslint/js":"^9.23.0","typescript":"^5.9.3","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^22.15.30","webpack-cli":"6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.1","@types/webpack":"5.28.5","tsconfig-paths":"^4.2.0","path-browserify":"^1.0.1","@docusaurus/core":"^3.9.2","semantic-release":"^24.2.5","socket.io-client":"^4.8.1","@babel/preset-env":"^7.26.9","crypto-browserify":"^3.12.1","stream-browserify":"^3.0.0","typescript-eslint":"8.30.1","@types/jsonwebtoken":"^9.0.9","@babel/eslint-parser":"^7.27.0","clean-webpack-plugin":"^4.0.0","webpack-remove-debug":"^0.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-webpack-plugin":"^5.0.1","mongodb-memory-server":"^10.1.4","webpack-node-externals":"^3.0.0","webpack-shebang-plugin":"^1.1.8","@babel/preset-typescript":"^7.27.0","@semantic-release/github":"^11.0.3","@testing-library/jest-dom":"^6.9.1","express-serve-static-core":"^0.1.1","@docusaurus/preset-classic":"^3.9.2","conventional-changelog-cli":"^4.1.0","@semantic-release/changelog":"^6.0.3","tsconfig-paths-webpack-plugin":"^4.2.0","@babel/plugin-transform-runtime":"^7.26.10","@docusaurus/plugin-content-docs":"^3.9.2","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-transform-modules-commonjs":"^7.26.3","@semantic-release/release-notes-generator":"^14.0.3"},"peerDependencies":{"ws":"8.18.3","ajv":"8.17.1","redis":"4.7.1","buffer":"6.0.3","dotenv":"^16.4.7","graphql":"16.11.0","mongodb":"^5 || ^6","graphql-ws":"5.16.2","ajv-formats":"3.0.1","graphql-tag":"2.12.6","graphql-http":"1.22.4","jsonwebtoken":"^9.0.2","@apollo/server":"^5.0.0","console-browserify":"^1.2.0","@graphql-tools/schema":"10.0.23","graphql-subscriptions":"3.0.0","graphql-redis-subscriptions":"2.7.0"},"peerDependenciesMeta":{"mongodb":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.3_1762376914199_0.6877017819626667","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@abimongo/core","version":"1.1.4","keywords":["mongodb","odm","core","abimongo","library"],"author":{"name":"Emmanuel Nodolomwanyi"},"license":"ISC","_id":"@abimongo/core@1.1.4","maintainers":[{"name":"abimongo","email":"padave805@gmail.com"}],"bin":{"abimongo":"dist/abimongo-core-cli.js"},"dist":{"shasum":"3757f2eb07328336d936122fae3906737505d2ae","tarball":"https://registry.npmjs.org/@abimongo/core/-/core-1.1.4.tgz","fileCount":193,"integrity":"sha512-T8faOvPRIIMtijmzzy1vpz5zlU5+2uvfDrR8qt+sjndzd6Oda6SxTv7mE6HXfEaI3yrhiKy4bJp7Xi8eBPehaQ==","signatures":[{"sig":"MEYCIQDaaTf0ZQYX4UdqO9vrc4OEYIecHgnIlGYDRM7iRjSXlQIhAPCBNZpmJBFU8CDZWqe7w1Hrhb1Y48TPe2eQmpLhLhUn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1336131},"main":"./dist/abimongo-core.js","_from":"file:abimongo-core-1.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/abimongo-core.js","browser":"./dist/abimongo-core-browser.js","engines":{"node":">=20.11.0","pnpm":">=10.20.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/abimongo-core.js","require":"./dist/abimongo-core.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/abimongo-core-browser.js","require":"./dist/abimongo-core-browser.js"},"./package.json":"./package.json"},"release":{"branches":["main"]},"scripts":{"lint":"eslint src","test":"jest --detectOpenHandles --coverage","build":"pnpm run build:node && pnpm run build:cli && pnpm run build:web","clean":"rimraf dist","release":"pnpm changeset version","typedoc":"typedoc --options typedoc.json","build:cli":"webpack --config webpack.cli.config.js","build:web":"webpack --config webpack.web.config.js","changeset":"pnpm run changeset","clean:all":"rimraf dist && rimraf docs","build:node":"webpack --config webpack.node.config.js","docusaurus:build":"cd website && pnpm docusaurus build","docusaurus:start":"cd website && pnpm docusaurus start","semantic-release":"semantic-release","docusaurus:deploy":"cd website && pnpm docusaurus deploy"},"_npmUser":{"name":"abimongo","email":"padave805@gmail.com"},"_resolved":"/tmp/a3bef7de802d8675bc7d026994c1e3f3/abimongo-core-1.1.4.tgz","overrides":{"graphql":"16.11.0"},"_integrity":"sha512-T8faOvPRIIMtijmzzy1vpz5zlU5+2uvfDrR8qt+sjndzd6Oda6SxTv7mE6HXfEaI3yrhiKy4bJp7Xi8eBPehaQ==","_npmVersion":"10.8.2","description":"Enterprise-grade MongoDB ORM built on the official MongoDB driver.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"fs-extra":"^11.3.2","commander":"^14.0.2","node-cron":"4.2.0","docusaurus":"^0.0.2","@babel/runtime":"^7.27.1","@abimongo/logger":"2.0.0","reflect-metadata":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.2","jest":"^29.7.0","axios":"^1.9.0","tslib":"^2.8.1","eslint":"^9.23.0","figlet":"^1.9.3","globals":"^14.0.0","graphql":"16.11.0","ts-jest":"^29.3.1","ts-node":"^10.9.2","webpack":"5.98.0","supertest":"^7.1.1","ts-loader":"^9.5.2","@eslint/js":"^9.23.0","typescript":"^5.9.3","@babel/core":"^7.26.10","@types/jest":"^29.5.14","@types/node":"^22.15.30","webpack-cli":"6.0.1","babel-loader":"^10.0.0","@types/express":"^5.0.1","@types/webpack":"5.28.5","tsconfig-paths":"^4.2.0","path-browserify":"^1.0.1","@docusaurus/core":"^3.9.2","semantic-release":"^24.2.5","socket.io-client":"^4.8.1","@babel/preset-env":"^7.26.9","crypto-browserify":"^3.12.1","stream-browserify":"^3.0.0","typescript-eslint":"8.30.1","@types/jsonwebtoken":"^9.0.9","@babel/eslint-parser":"^7.27.0","clean-webpack-plugin":"^4.0.0","webpack-remove-debug":"^0.1.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.1","eslint-webpack-plugin":"^5.0.1","mongodb-memory-server":"^10.1.4","webpack-node-externals":"^3.0.0","webpack-shebang-plugin":"^1.1.8","@babel/preset-typescript":"^7.27.0","@semantic-release/github":"^11.0.3","@testing-library/jest-dom":"^6.9.1","express-serve-static-core":"^0.1.1","@docusaurus/preset-classic":"^3.9.2","conventional-changelog-cli":"^4.1.0","@semantic-release/changelog":"^6.0.3","tsconfig-paths-webpack-plugin":"^4.2.0","@babel/plugin-transform-runtime":"^7.26.10","@docusaurus/plugin-content-docs":"^3.9.2","@semantic-release/commit-analyzer":"^13.0.1","@babel/plugin-transform-modules-commonjs":"^7.26.3","@semantic-release/release-notes-generator":"^14.0.3"},"peerDependencies":{"ws":"8.18.3","ajv":"8.17.1","redis":"4.7.1","buffer":"6.0.3","dotenv":"^16.4.7","express":"^5.1.0","graphql":"16.11.0","mongodb":"^5 || ^6","graphql-ws":"5.16.2","ajv-formats":"3.0.1","graphql-tag":"2.12.6","graphql-http":"1.22.4","jsonwebtoken":"^9.0.2","@apollo/server":"5.1.0","console-browserify":"^1.2.0","@graphql-tools/schema":"10.0.23","graphql-subscriptions":"3.0.0","graphql-redis-subscriptions":"2.7.0"},"peerDependenciesMeta":{"graphql":{"optional":false},"mongodb":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/core_1.1.4_1762722545173_0.05073729373382596","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@abimongo/core","version":"1.1.5","publishConfig":{"access":"public"},"description":"Enterprise-grade MongoDB ORM built on the official MongoDB driver.","main":"./dist/abimongo-core.js","module":"./dist/abimongo-core.js","browser":"./dist/abimongo-core-browser.js","types":"./dist/index.d.ts","bin":{"abimongo":"dist/abimongo-core-cli.js"},"exports":{".":{"import":"./dist/abimongo-core.js","require":"./dist/abimongo-core.js","types":"./dist/index.d.ts"},"./browser":{"import":"./dist/abimongo-core-browser.js","require":"./dist/abimongo-core-browser.js","types":"./dist/browser.d.ts"},"./package.json":"./package.json"},"sideEffects":false,"release":{"branches":["main"]},"keywords":["mongodb","odm","core","abimongo","library"],"author":{"name":"Emmanuel Nodolomwanyi"},"maintainers":[{"name":"abimongo","email":"padave805@gmail.com"}],"license":"ISC","repository":{"type":"git","url":"git+https://github.com/NodEm9/abimongo.git"},"dependencies":{"@babel/runtime":"^7.28.4","commander":"^14.0.2","fs-extra":"^11.3.3","node-cron":"4.2.0","reflect-metadata":"0.2.2","@abimongo/logger":"2.0.1"},"peerDependencies":{"@apollo/server":"5.1.0","@graphql-tools/schema":"10.0.23","ajv":"8.17.1","ajv-formats":"3.0.1","buffer":"6.0.3","console-browserify":"^1.2.0","dotenv":"^16.4.7","express":"^5.1.0","graphql":"16.11.0","graphql-http":"1.22.4","graphql-redis-subscriptions":"2.7.0","graphql-subscriptions":"3.0.0","graphql-tag":"2.12.6","graphql-ws":"5.16.2","jsonwebtoken":"^9.0.2","mongodb":"^5 || ^6","redis":"4.7.1","ws":"8.18.3"},"peerDependenciesMeta":{"mongodb":{"optional":false},"graphql":{"optional":false}},"overrides":{"graphql":"16.11.0"},"devDependencies":{"@babel/core":"^7.28.5","@babel/eslint-parser":"^7.28.5","@babel/plugin-transform-modules-commonjs":"^7.27.1","@babel/plugin-transform-runtime":"^7.28.5","@babel/preset-env":"^7.28.5","@babel/preset-typescript":"^7.28.5","@docusaurus/core":"^3.9.2","@docusaurus/plugin-content-docs":"^3.9.2","@docusaurus/preset-classic":"^3.9.2","@eslint/js":"^9.39.2","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@semantic-release/npm":"^12.0.2","@semantic-release/release-notes-generator":"^14.1.0","@testing-library/jest-dom":"^6.9.1","@types/express":"^5.0.6","@types/jest":"^29.5.14","@types/jsonwebtoken":"^9.0.10","@types/node":"^22.19.3","@types/webpack":"5.28.5","axios":"^1.13.2","babel-loader":"^10.0.0","clean-webpack-plugin":"^4.0.0","conventional-changelog-cli":"^4.1.0","crypto-browserify":"^3.12.1","eslint":"^9.39.2","eslint-webpack-plugin":"^5.0.2","express-serve-static-core":"^0.1.1","figlet":"^1.9.4","globals":"^14.0.0","graphql":"16.11.0","jest":"^29.7.0","mongodb-memory-server":"^10.4.3","path-browserify":"^1.0.1","semantic-release":"^24.2.9","socket.io-client":"^4.8.3","stream-browserify":"^3.0.0","supertest":"^7.1.4","ts-jest":"^29.4.6","ts-loader":"^9.5.4","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0","tsconfig-paths-webpack-plugin":"^4.2.0","tslib":"^2.8.1","tsx":"^4.21.0","typescript":"^5.9.3","typescript-eslint":"8.30.1","webpack":"5.98.0","webpack-cli":"6.0.1","webpack-node-externals":"^3.0.0","webpack-remove-debug":"^0.1.0","webpack-shebang-plugin":"^1.1.8"},"engines":{"node":">=20.11.0","pnpm":">=10.20.0"},"scripts":{"build:node":"webpack --config webpack.node.config.js","build:cli":"webpack --config webpack.cli.config.js","build:web":"webpack --config webpack.web.config.js","clean":"rimraf dist","build":"pnpm run build:node && pnpm run build:cli && pnpm run build:web","lint":"eslint src","clean:all":"rimraf dist && rimraf docs","typedoc":"typedoc --options typedoc.json","semantic-release":"semantic-release","changeset":"pnpm run changeset","release":"pnpm changeset version","test":"jest --detectOpenHandles --coverage","docusaurus:build":"cd website && pnpm docusaurus build","docusaurus:start":"cd website && pnpm docusaurus start","docusaurus:deploy":"cd website && pnpm docusaurus deploy"},"_id":"@abimongo/core@1.1.5","bugs":{"url":"https://github.com/NodEm9/abimongo/issues"},"homepage":"https://github.com/NodEm9/abimongo#readme","_integrity":"sha512-MTOm3fg9Hi7raW3zMe857g4R2IuuK5C1T3XagIYuAjTKqbwupUGXEapbPML2IiFaNcGE86JrCqGpCcinfYhXUQ==","_resolved":"/tmp/052a2a33646604676d27ccc42b42bf2e/abimongo-core-1.1.5.tgz","_from":"file:abimongo-core-1.1.5.tgz","_nodeVersion":"20.19.6","_npmVersion":"11.7.0","dist":{"integrity":"sha512-MTOm3fg9Hi7raW3zMe857g4R2IuuK5C1T3XagIYuAjTKqbwupUGXEapbPML2IiFaNcGE86JrCqGpCcinfYhXUQ==","shasum":"00187496e69544149312e6f997fc602aa83e4d48","tarball":"https://registry.npmjs.org/@abimongo/core/-/core-1.1.5.tgz","fileCount":192,"unpackedSize":936661,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abimongo%2fcore@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDtzXsU3IuF+EcA6XYabGPsKpDMlcu2R2wUFdFSAvTl2wIhAJqHjmseucQLFRXhHBc73HcIYJ8fm4ZSTctGFF7Twk7D"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:eaf8873a-bd1b-4c48-9815-a0964d67d0af"}},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_1.1.5_1767463210494_0.736604175758357"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-03T07:23:21.465Z","modified":"2026-01-03T18:00:11.199Z","1.0.0":"2025-10-31T03:40:02.631Z","1.1.1":"2025-11-03T07:23:21.772Z","1.1.3":"2025-11-05T21:08:34.491Z","1.1.4":"2025-11-09T21:09:05.414Z","1.1.5":"2026-01-03T18:00:10.711Z"},"author":{"name":"Emmanuel Nodolomwanyi"},"license":"ISC","keywords":["mongodb","odm","core","abimongo","library"],"description":"Enterprise-grade MongoDB ORM built on the official MongoDB driver.","maintainers":[{"name":"abimongo","email":"padave805@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"../../abimongo-brand/abimongo-logo_socials.png\" width=\"420\" alt=\"Abimongo Logo\">\n</p>\n\n<h1 align=\"center\">\n@abimongo/core</h1>\n<p align=\"center\">\n  <strong>The Next-Gen MongoDB ORM/ODM</strong><br>\n  Multi-Tenant • GraphQL • Redis • RBAC • CLI Scaffolding\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@abimongo/core\">\n    <img src=\"https://img.shields.io/npm/v/@abimongo/core.svg?style=flat-square&color=00C4B4\" alt=\"npm version\">\n  </a>\n  <a href=\"https://github.com/Nodem9/abimongo/stargazers\">\n    <img src=\"https://img.shields.io/github/stars/Nodem9/abimongo?style=flat-square&color=1E88E5\" alt=\"GitHub stars\">\n  </a>\n  <a href=\"https://Nodem9.github.io/abimongo\">\n    <img src=\"https://img.shields.io/badge/docs-online-blue?style=flat-square\" alt=\"Docs\">\n  </a>\n</p>\n\n---\n\n  <!-- ![npm version](https://img.shields.io/npm/v/@abimongo/core.svg)\n  ![Release workflow](https://github.com/NodEm9/abimongo/actions/workflows/release.yml/badge.svg) -->\n  <!-- (https://www.npmjs.com/package/abimongo_core) -->\n\n  A production-ready, TypeScript-first ORM/ODM for MongoDB built on the official MongoDB Node.js driver. @abimongo/core focuses on developer ergonomics, multi-tenant support, caching, and first-class GraphQL integration while keeping the API small and extensible.\n\n## Key capabilities\n\n- Schema validation and type-safe models\n- Middleware (pre/post hooks) for lifecycle events\n- Multi-tenancy with tenant context and lazy connection management\n- Redis-backed caching utilities for query results\n- Transaction helpers for multi-step operations\n- Aggregation pipeline helpers and convenience utilities\n- Change streams / real-time change listeners\n- Optional GraphQL schema generation and resolver wiring\n- CLI scaffolding and project bootstrap utilities\n\n---\n\n## Installation\n\nInstall from npm or using yarn:\n\n```bash\nnpm install @abimongo/core\n# or\nyarn add @abimongo/core\n```\n\nIf you are using TypeScript, make sure `tsconfig.json` is configured to include node types and target a supported ECMAScript version.\n\n---\n\n## Quick start\n\nThis example demonstrates model creation and basic CRUD operations using the high-level API.\n\n```ts\nimport { AbimongoClient } from '@abimongo/core';\n\nconst clientDB = new AbimongoClient('mongodb://localhost:27017');\n\nawait clientDB.connnect();\nconsole.log('MongoDB connection successful.')\n```\n\n```ts\nimport { AbimongoSchema, AbimongoModel } from '@abimongo/core';\n\nconst userSchema = new AbimongoSchema({\n  name: { type: String, required: true },\n  email: { type: String, required: true, unique: true },\n  age: { type: Number },\n});\n\nconst UserModel = new AbimongoModel({\n  collectionName: 'users',\n  schema: userSchema,\n});\n\nasync function example() {\n  const created = await UserModel.create({ name: 'Jane', email: 'jane@example.com', age: 28 });\n  const found = await UserModel.find({ age: { $gte: 18 } });\n  await UserModel.updateOne({ email: 'jane@example.com' }, { $set: { age: 29 } });\n  await UserModel.deleteOne({ email: 'jane@example.com' });\n}\n\nexample().catch(console.error);\n```\n\n---\n\n## Multi-tenancy\n\n@abimongo/core includes helpers for multi-tenant applications. You can register tenants with connection URIs and use a tenant-aware model resolver.\n\nExample (Express middleware + lazy tenant connections):\n\n```ts\nimport express from 'express';\nimport { applyMultiTenancy, getTenantModel } from '@abimongo/core';\n\nconst app = express();\n\nconst tenants = {\n  tenant1: 'mongodb://localhost:27017/tenant1',\n  tenant2: 'mongodb://localhost:27017/tenant2',\n};\n\napplyMultiTenancy(app, tenants, { headerKey: 'x-tenant-id', initOptions: { lazy: true } });\n\napp.get('/users', async (req, res) => {\n  const tenantId = req.headers['x-tenant-id'] as string;\n  const UserModel = await getTenantModel({ modelName: 'User', tenantId });\n  const users = await UserModel.find();\n  res.json(users);\n});\n\napp.listen(3000);\n```\n\nNotes\n\n- Tenant connections are managed by `MultiTenantManager`. Use `registerTenant` at runtime to add tenants dynamically.\n- `TenantContext` provides a way to run code bound to a tenant without threading tenant ids through every function call.\n\n---\n\n## Schema validation & middleware\n\nDefine schemas with validation rules (types, required, min/max, unique) and attach middleware hooks for lifecycle events.\n\n```ts\nconst productSchema = new AbimongoSchema({\n  name: { type: String, required: true },\n  price: { type: Number, required: true, min: 0 },\n  category: { type: String },\n});\n\nproductSchema.pre('save', async (doc) => { /* ... */ });\nproductSchema.post('save', async (doc) => { /* ... */ });\n```\n\n---\n\n## Transactions\n\nHelpers are provided to make transactional updates simpler. These utilities use MongoDB sessions under the hood.\n\n```ts\nawait UserModel.updateWithTransaction({ email: 'jane@example.com' }, { $set: { age: 30 } });\n```\n\n---\n\n## Caching\n\nUse built-in Redis-backed caching helpers for expensive aggregation queries or frequently requested results.\n\n```ts\nconst cached = await UserModel.aggregateWithCache([\n  { $match: { active: true } },\n], 'active_users_cache', 300);\n```\n\n---\n\n## Change streams\n\nListen for real-time changes on collections with a simple watcher API.\n\n```ts\nUserModel.watchChanges((change) => {\n  console.log('change:', change);\n});\n```\n\n---\n\n## GraphQL integration\n\nOptional GraphQL helpers can generate type definitions and resolvers from your models. The feature supports queries, mutations and subscriptions and includes RBAC hooks.\n\nAPI (examples):\n\n- `AbimongoGraphQL.generateSchema({ models?, options? })` – generate an executable GraphQL schema.\n- `schema.customResolvers(...)` and `schema.customTypeDefs(...)` – extend generated schema with custom definitions.\n\nExample (Apollo Server):\n\n```ts\nimport { AbimongoGraphQL } from '@abimongo/core';\nimport { ApolloServer } from '@apollo/server';\n\nconst schema = AbimongoGraphQL.generateSchema({ models: [/* models */], options: { enableSubscriptions: true } });\nconst server = new ApolloServer({ schema });\n// start the server with your preferred method\n```\n\nNote: GraphQL generation is powerful but may be considered experimental for very complex schemas—review generated types before using them in production.\n\n---\n\n## CLI scaffolding\n\nThe accompanying CLI accelerates project setup and scaffolding of models, schemas and GraphQL components.\n\n```bash\n# Run the CLI without installing globally (recommended):\nnpx abimongo init my-app-name\n\n# Example: scaffold with GraphQL, multi-tenant and logger support (no installs by default):\nnpx abimongo init my-app-name --with-graphql --multi-tenant --logger\n\n# If you want the scaffold to auto-install dependencies into the generated project, pass `--install`:\nnpx abimongo init my-app-name --with-graphql --multi-tenant --logger --install\n\n# Notes:\n# - By default the scaffold does NOT run `npm`/`pnpm` installs. This keeps scaffolding fast and CI-friendly.\n# - Use `--install` to opt into installing `@abimongo/core` and `@abimongo/logger` into the generated project.\n# - The `abimongo` binary is provided by `@abimongo/core` and is safe to run via `npx` or after installing the package locally.\n```\n\nFlags will toggle features in the generated `abimongo.config.json`. If you omit a flag you can still enable features later by editing the config.\n\nSee the docs-site for a full CLI guide: docs-site/docs/guides/CLI-Scaffolding.md\n\n---\n\n## RBAC\n\nBuilt-in role-based access control utilities make it straightforward to protect resolvers or REST handlers.\n\n- `enforceRBAC(resolver, action)` — wrap resolvers with permission checks\n- `getRBACAction(resolver)` — inspect mapped action\n\nThe RBAC layer integrates with caching for efficient permission evaluation.\n\n---\n\n## Plugin system\n\nExtend the platform using plugins that can add behavior at the model, schema or manager layer.\n\n---\n\n## Bootstrapping\n\n`AbimongoBootstrap` helps initialize new projects, creating a recommended folder layout and a starter `abimongo.config.json`.\n\n---\n\n## API reference (short)\n\nAbbreviated list of commonly used APIs. See the generated docs in the repo for full signatures and options.\n\n- AbimongoModel\n- `create(doc)`\n- `find(filter)`\n- `updateOne(filter, update)`\n- `deleteOne(filter)`\n- `aggregate(pipeline)`\n\n- TenantContext\n- `run(tenantId, callback)`\n- `getTenantId()`\n\n- MultiTenantManager\n- `registerTenant(tenantId, uri)`\n- `getClient(tenantId)`\n\n- AbimongoGraphQL\n- `generateSchema({ models, options })`\n\n- RBAC utilities\n- `enforceRBAC(resolver, action)`\n\n---\n\n## Contributing\n\nContributions are welcome. Please check `CONTRIBUTING.md` in the repository root for guidelines on code style, tests and committing.\n\n---\n\n## License\n\nThis package is published under the MIT license. See the project `LICENSE` for details.\n\n---\n\n## Support\n\nIf you find a bug or need help, open an issue in the repository.\n\n---\n\n## Acknowledgements\n\nThanks to the MongoDB Node.js Driver team and the community contributors.\n","readmeFilename":"README.md","homepage":"https://github.com/NodEm9/abimongo#readme","repository":{"type":"git","url":"git+https://github.com/NodEm9/abimongo.git"},"bugs":{"url":"https://github.com/NodEm9/abimongo/issues"}}