{"_id":"@dreamz-it/ef-core","_rev":"27-29e97fb7f387aa3a5d2faec98a1593bd","name":"@dreamz-it/ef-core","dist-tags":{"latest":"0.2.7"},"versions":{"0.1.0":{"name":"@dreamz-it/ef-core","version":"0.1.0","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.0","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"dist/src/cli/cli.js"},"dist":{"shasum":"eda5f7179ae11ae86996c9cd3d05e034d05bb090","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.0.tgz","fileCount":351,"integrity":"sha512-gieMa3KhMVA7dX4gOya/wYkfcIZN7TNjBQ3CFYDTOKTA7a2SBvVVIAifM81NUbFYXqISn92+5il3VaHthw7LGQ==","signatures":[{"sig":"MEUCIBD7TzLYgckEmUWC4Wwh7lpGvxs/oHNZ70Gr2cdx0WWAAiEA4WGPDTNX+SuenaaQUWmwCx35auOR9lF6y/T8kkbniDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508223},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"ef":"tsx src/cli/cli.ts","dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5","better-sqlite3":"^12.9.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"tsx":"^4.21.0","dotenv":"^17.4.2","vitest":"^4.1.5","typescript":"^5.5.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.0_1777649145793_0.03812776898029746","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dreamz-it/ef-core","version":"0.1.1","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.1","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"dist/src/cli/cli.js"},"dist":{"shasum":"b0603959320b3c53e74d02fff622dcd627def726","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.1.tgz","fileCount":351,"integrity":"sha512-6vjbsOF/8czmSHiVv7BXlRy9SFa1ZIzEEVIyzwyGqwHDuB2bpVq0v6hap5rg0vKdA/hV3yT4M7QjNhCyKtFqGw==","signatures":[{"sig":"MEQCIHhmd+rqrYfdD2TyPGraEvpymymiA/NjXFlNdm3Y/AvuAiBsCkx8MFC05DD6sLIkrzBWc3usAAUlHv+JiWB0w2/usQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":523492},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"ef":"tsx src/cli/cli.ts","dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5","better-sqlite3":"^12.9.0","@dreamz-it/ef-core":"^0.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"tsx":"^4.21.0","dotenv":"^17.4.2","vitest":"^4.1.5","typescript":"^5.5.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.1_1777692004454_0.8718125843042128","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dreamz-it/ef-core","version":"0.1.2","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.2","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"dist/src/cli/cli.js"},"dist":{"shasum":"72b4a4f84dac1ab32e9bd227f2494cb2df5fadd5","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.2.tgz","fileCount":333,"integrity":"sha512-3Yk4yGeJETlhFAeV3eD1IS12R4dqG9BsCghvEdXUVXGpMnMhRzzp5y9Gvb+QEohdc8BFJCJFRi7Vdqmi0Gt5wA==","signatures":[{"sig":"MEYCIQCoqcEuY0/6PHpsKZWQaSN4w+rcwK4JmeblzoDEHaWi7QIhAOPOOJs3/eqJwsD5UPAZVr3Cvwys57jbfoDWJi+TKHky","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511839},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"ef":"tsx src/cli/cli.ts","dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5","better-sqlite3":"^12.9.0","@dreamz-it/ef-core":"^0.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"tsx":"^4.21.0","dotenv":"^17.4.2","vitest":"^4.1.5","typescript":"^5.5.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.2_1777693340774_0.5012993540690311","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@dreamz-it/ef-core","version":"0.1.3","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.3","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.js"},"dist":{"shasum":"7687cc7980691e8c282df845ffbe1ce52f74980b","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.3.tgz","fileCount":334,"integrity":"sha512-aBgjCAd5/lRiAPt8s251kNyoqD1BgKhPZ56U5GnJTP+G/rFaufGbZtGyC1E/6AxJnFYhPvsFysRVfeqyMnvk9Q==","signatures":[{"sig":"MEQCIBYAVckcij57I1filgbvyrKFkwU+hPv6Mu+YuDuCc3mBAiAxV+HKORmds+bEMu1rGfbrQn9gRCTp0xM0WcRr5rxq3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496692},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5","better-sqlite3":"^12.9.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.3_1777696154495_0.9689519984554391","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@dreamz-it/ef-core","version":"0.1.4","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.4","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"228fe75e136912508f67b4d048fc9c89c10c66d5","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.4.tgz","fileCount":337,"integrity":"sha512-6k58ObGsAY0lMD0CTf/cNBk2MSlp2U8q89zuNxx0cBex6pBSzUSAMEB8PjDEu456BQrKk5XIyyor0vNNWvCamw==","signatures":[{"sig":"MEUCIGjdWNBi/dKU2erwiMwHfzK+6EA+dDFUlNPI2I4ERikBAiEAscOIAUX4uWxZDSpSXPK2IILsh3RI1hO2kdN3mjxg0+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498733},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5","better-sqlite3":"^12.9.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"tsx":"^4.21.0"},"peerDependenciesMeta":{"tsx":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.4_1777701535427_0.0684925713830784","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dreamz-it/ef-core","version":"0.1.5","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.5","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"bf276d1240c0d6f3eac7e5cea1525807c5437843","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.5.tgz","fileCount":343,"integrity":"sha512-jUVNTo+PT+N/EJ+b6zNe8DleJDRIS5SAIsbSPneLVIDlSDhdFqvB5+k5qkwNBNJNaaiJ9LNe+vBe1Zjc4Cd9Jw==","signatures":[{"sig":"MEYCIQCfamRUYV9pvZiSYTRcV0M6G5BaWBOAhB8jthVLAOkPPwIhAJtv22C8VuLt+xwD9NzUq1RyVh4qgdny8c7q2KU0KHNj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509021},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"2e08efa7add02bea888e90893f5e7e5a283677ea","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"tsx":"^4.21.0","@libsql/client":"^0.14.0","better-sqlite3":"^11.0.0"},"peerDependenciesMeta":{"tsx":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.5_1777705090751_0.16649846730654483","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dreamz-it/ef-core","version":"0.1.6","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.6","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"4f40382c26972f32e3e60fa199bd25774ecb44e8","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.6.tgz","fileCount":355,"integrity":"sha512-ATbtRU5RQbFiFQOBu1TMk7za8Uelz729GIq15EpF5LXjqnNn+LmESyNBfwFEbz7Fy/XVHsL7BUoK64xgtcWeuQ==","signatures":[{"sig":"MEUCIGmDHgviz09nSBtHQTjS2PqxXs/xoDRlwnD6WoI/9bOJAiEA43xyLk+RhZL6kXmVC1mH1QkzUcuxCQnOOu41Oujm+jM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544678},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"d84c562d6f9609422856c276a5d882d62dba9749","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.20","tsx":">=4.0 <5","mysql2":">=3.11 <3.22","postgres":">=3.4.0 <3.4.9","@libsql/client":">=0.14 <0.17","better-sqlite3":">=11.0 <13","@planetscale/database":"^1.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mysql2":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.6_1777719524239_0.02168092069144545","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dreamz-it/ef-core","version":"0.1.7","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.1.7","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"b549c3f0fdb17f17c86b9a96106d8d36d0f09954","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.1.7.tgz","fileCount":385,"integrity":"sha512-f0IobhYjrbwcLaUC0VPWBVyWPOTmICCj89jQTng+ciJ8Y/QENsQmPL+OVaMSGH/FyxbqYiszZ96mThfKbJTC4Q==","signatures":[{"sig":"MEQCIBdZfu15Ld+WSM+6p69ltPcpBXCjRqo/dFsuefpbutvRAiBPoMKnTUDLXc2Q7OqnFFDPIuYqSC4aPGa1xG6ouskGTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":776204},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"ede8239501f3a808a9be20ce7ba48dc1dd707b02","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.20","tsx":">=4.0 <5","mssql":">=11.0.1 <12.5","mysql2":">=3.11 <3.22","tedious":">=18.6.2 < 19.3","postgres":">=3.4.0 <3.4.9","@libsql/client":">=0.14 <0.17","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.20.1"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.1.7_1777781954800_0.8420951088068649","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dreamz-it/ef-core","version":"0.2.0","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.0","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"85c674feb052dc288d9d79d96e67da32aebe06c6","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.0.tgz","fileCount":418,"integrity":"sha512-S19NqxAf7P4nahmCGLFVPtushuQg+6P19jdJN0Nu/otZO6zwHN1lFf9QkgBvDJeBTlCbe0GpJvResVJ04z4RqQ==","signatures":[{"sig":"MEUCIQDGrq/YMX0VZ7ck5t8gfYT+Ms/K+ZDw0s5Jxxq6byIc+AIgbuyXiRabhW/PHCFTMexyVL5k/C+fqBHDbqoe31pcfjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967799},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"01dde6d021f38bedd7ca81007fe7ea5d0c89ccdb","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.20","tsx":">=4.0 <5","mssql":">=11.0.1 <12.5","mysql2":">=3.11 <3.22","tedious":">=18.6.2 < 19.3","postgres":">=3.4.0 <3.4.9","@libsql/client":">=0.14 <0.17","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.20.1"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.0_1778068535375_0.14984507819072568","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@dreamz-it/ef-core","version":"0.2.1","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.1","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"dist":{"shasum":"29379644f71046a11761de662fccaa3b65acf283","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.1.tgz","fileCount":665,"integrity":"sha512-JbhgtgtST3FGw2dVjjwI40TwEQe7DTaKzd58P3lakCTjvfJibYPyCCv90Onr6nxhAEed2H/ST+Dkb6z5Bg/eRQ==","signatures":[{"sig":"MEQCIHFoVsap0Ye87Ufbc6VawKPipnbCVWfyn4ySj9b256utAiBZ/XLdoPEdeCkZTCaEafqsofcORPj4ttiPvPy7uU8LXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1750855},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"01dde6d021f38bedd7ca81007fe7ea5d0c89ccdb","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint . --ext .ts","test":"vitest run","build":"tsc && cp package.prod.json dist/package.json","start":"node dist/index.js","ef:dev":"NODE_ENV=development tsx src/cli/cli.launcher.ts","ef:prod":"NODE_ENV=production node dist/cli.launcher.js","test:watch":"vitest","publish:dry":"pnpm build && cd dist && npm publish --access public --dry-run","publish:pack":"pnpm build && cd dist && npm pack --access public","test:coverage":"vitest run --coverage","publish:public":"pnpm build && cd dist && npm publish --access public","publish:dry-pack":"pnpm build && cd dist && npm pack --access public --dry-run"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","devDependencies":{"pg":"~8.11.0","tsx":"^4.21.0","mssql":"~11.0.1","dotenv":"^17.4.2","mysql2":"~3.11.0","vitest":"^4.1.5","tedious":"~18.6.2","postgres":"~3.4.5","@types/pg":"^8.20.0","typescript":"^5.5.0","@types/node":"^20.0.0","@types/mssql":"^12.3.0","@libsql/client":"~0.14.0","better-sqlite3":"~12.9.0","@planetscale/database":"~1.19.0","@types/better-sqlite3":"^7.6.13"},"peerDependencies":{"pg":">=8.11.0 < 8.20","tsx":">=4.0 <5","mssql":">=11.0.1 <12.5","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5.0","@libsql/client":">=0.14 <0.17","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.1_1778081058971_0.530916850240271","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@dreamz-it/ef-core","version":"0.2.2","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.2","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"f6c477e1781b8afa08b78800d2c56f1c4ff90973","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.2.tgz","fileCount":418,"integrity":"sha512-Z/p61CmTR9U9Sm5nDiP/jw3uqbrN+aoYI1cOeks2FmVevGC5ZGPU2ofE2UKoJuLHpvmT665TkkrW3dfPSAfJMg==","signatures":[{"sig":"MEYCIQDGff3SKFSx0v0FJq+f1aWki62SqKfeidQp9KrPSM0opgIhANea4xqTUxtQL0InRdspgXIAHbEqbUpiwIJDnFf2NaNp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967719},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"01dde6d021f38bedd7ca81007fe7ea5d0c89ccdb","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.20","tsx":">=4.0 <5","mssql":">=11.0.1 <12.5","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5.0","@libsql/client":">=0.14 <0.17","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.2_1778081643755_0.9388644684936127","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@dreamz-it/ef-core","version":"0.2.3","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.3","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"304a245cd3af9d49e45128dcee751bf336f1d3bb","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.3.tgz","fileCount":415,"integrity":"sha512-55lFP0Ur1otWTfsETfVkB30+QexUoli9SzqRKX47ZUonHEdB1kLIwkeIo24i6kPq4IK5dQb00fGa4UCZ8aExRQ==","signatures":[{"sig":"MEYCIQD4Z0+IVvfMg1cx3YkzEF4MdkpleglaIOE43YSp3Qi3eAIhAMdsmO8xE0ozWC1n+UCX3dR4OdxeZNcRChZOnn4TC5lF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969791},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"6959c81ad76a94cfeeef157c26d3e53f248136ba","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.21","tsx":">=4.0 <5","mssql":">=11.0.1 <12.6","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5","@libsql/client":">=0.14 <0.18","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.3_1778136313844_0.6650211314583723","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@dreamz-it/ef-core","version":"0.2.4","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.4","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"d52fd8bc8781cfd9a19b4e12b109864befcc07d2","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.4.tgz","fileCount":417,"integrity":"sha512-2AOY9Ed/cC0CuV5sJXclM6sCkRNjPRX67HQTUTldadbAw0plJqcUtYpVBoKoJWnp+TYEpkQpzdXQQT73ZaUsqg==","signatures":[{"sig":"MEQCIDGLBQhsJTTs1zYyUKHfNekBsjxnj2EcQQ9AVNw4fsIkAiA8t0oCuHL8UkAbjHI2e7aosGbkHTQI7fRCJS/8w+oEbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":989531},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"bdaddab82e2c628aca8a8001558f4f42fc2e6658","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"deprecated":"Deprecated due to bugs, use >=0.2.5","_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.21","tsx":">=4.0 <5","mssql":">=11.0.1 <12.6","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5","@libsql/client":">=0.14 <0.18","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.4_1778152356604_0.05881392302565236","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@dreamz-it/ef-core","version":"0.2.5","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.5","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"536a20363b734b062c39d59f73dae10fda5292c0","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.5.tgz","fileCount":417,"integrity":"sha512-rXgbMAm7E/bpsNj6K7zL5wD+wagnoUxKe+MEDGa5tA9SvOlCHthwDD8v4ILrSq4VJbdKAE+LGZDmTHGU6RhpkQ==","signatures":[{"sig":"MEUCIC7D1qHRTL2OtG/ybAfm45qRYMfSFiXs/reTtE6YDH94AiEAk49wmTXAy79EiqyMTiUisXoYXZmGTZ2IdWhHVtdw1ps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":993930},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"}},"gitHead":"bdaddab82e2c628aca8a8001558f4f42fc2e6658","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{"lru-cache":"^11.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.21","tsx":">=4.0 <5","mssql":">=11.0.1 <12.6","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5","@libsql/client":">=0.14 <0.18","better-sqlite3":">=11.0 <13","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.5_1778168499759_0.741103653018252","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated due to bugs, use >=0.2.5"},"0.2.6":{"name":"@dreamz-it/ef-core","version":"0.2.6","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.6","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"bf8ad2c81e5697989c2c7c28c1199d1f54f75527","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.6.tgz","fileCount":366,"integrity":"sha512-ryYaW61hp/V6cHLagM5A4Hz5lu+545mm6P9jST/KALij1MNVALpnDWPzXs50lXIWy4LuXglfNyloRmjvM4HEfw==","signatures":[{"sig":"MEQCIBUnHPLU+7DlKZgy9wNs47uKzvs5mX31mONWE+VN4rObAiBGlwx7BAgQukkmytm0oTjUxzV8LqYAMzhBGB2ciBeXaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":894579},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"},"cli":{"import":"./src/cli/index.js","require":"./src/cli/index.js"},"core":{"import":"./src/core/index.js","require":"./src/core/index.js"},"utils":{"import":"./src/utils/index.js","require":"./src/utils/index.js"},"providers":{"import":"./src/providers/index.js","require":"./src/providers/index.js"}},"gitHead":"94796eeea0a497ed729bcd891dd36ba196eacb49","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.21","tsx":">=4.0 <5","mssql":">=11.0.1 <12.6","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5","lru-cache":">=11.3.5 <11.4","@libsql/client":">=0.14 <0.18","better-sqlite3":">=11.0 <13","@dreamz-it/system":">=0.1.5","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"lru-cache":{"optional":false},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@dreamz-it/system":{"optional":false},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.6_1778396319121_0.5545948330066475","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated due to bugs, use >=0.2.5"},"0.2.7":{"name":"@dreamz-it/ef-core","version":"0.2.7","keywords":["typescript","nodejs","ef-core","migrations","orm"],"author":{"name":"Rejwanul Islam"},"license":"ISC","_id":"@dreamz-it/ef-core@0.2.7","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"bin":{"ef":"src/cli/cli.launcher.js"},"dist":{"shasum":"c441e0f15995d49e940738d56820593d7a8c21c3","tarball":"https://registry.npmjs.org/@dreamz-it/ef-core/-/ef-core-0.2.7.tgz","fileCount":366,"integrity":"sha512-IKOdalfC0Ugp1Og5reOedosDmQm0UQvf8U7g3so8EK1xH/UOKTmzWX9mATo6mGDnITK2O1N8Q72G0Myh6+C5xA==","signatures":[{"sig":"MEQCIBb8YZoY2HaP3rMVyjeEzggyHuw7AJ1yvcjqK53Qmbm7AiAuckohaakXKzvfE36jzOM5LitWHSE9iky8PxcCPCkhcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":894587},"main":"index.js","type":"module","types":"index.d.ts","exports":{".":{"import":"./index.js","require":"./index.js"},"./cli":{"import":"./src/cli/index.js","require":"./src/cli/index.js"},"./core":{"import":"./src/core/index.js","require":"./src/core/index.js"},"./utils":{"import":"./src/utils/index.js","require":"./src/utils/index.js"},"./providers":{"import":"./src/providers/index.js","require":"./src/providers/index.js"}},"gitHead":"df275ffe0c60e920d790b746f2bb2e7b8b15d40c","scripts":{"start":"node index.js"},"_npmUser":{"name":"irejwanul","email":"irejwanul@gmail.com"},"_npmVersion":"11.12.1","description":"EF Core NodeJS","directories":{},"_nodeVersion":"22.20.0","dependencies":{},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.2","peerDependencies":{"pg":">=8.11.0 < 8.21","tsx":">=4.0 <5","mssql":">=11.0.1 <12.6","mysql2":">=3.11 <3.23","tedious":">=18.6.2 < 19.3","postgres":">=3.4.5 <3.5","lru-cache":">=11.3.5 <11.4","@libsql/client":">=0.14 <0.18","better-sqlite3":">=11.0 <13","@dreamz-it/system":">=0.1.5","@planetscale/database":">=1.19 <1.21"},"peerDependenciesMeta":{"pg":{"optional":true},"tsx":{"optional":true},"mssql":{"optional":true},"mysql2":{"optional":true},"tedious":{"optional":true},"postgres":{"optional":true},"lru-cache":{"optional":false},"@libsql/client":{"optional":true},"better-sqlite3":{"optional":true},"@dreamz-it/system":{"optional":false},"@planetscale/database":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ef-core_0.2.7_1778397080488_0.8316256421610824","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-05-01T15:25:45.459Z","modified":"2026-05-10T07:13:42.717Z","0.1.0":"2026-05-01T15:25:45.985Z","0.1.1":"2026-05-02T03:20:04.611Z","0.1.2":"2026-05-02T03:42:20.957Z","0.1.3":"2026-05-02T04:29:14.673Z","0.1.4":"2026-05-02T05:58:55.587Z","0.1.5":"2026-05-02T06:58:10.900Z","0.1.6":"2026-05-02T10:58:44.435Z","0.1.7":"2026-05-03T04:19:15.014Z","0.2.0":"2026-05-06T11:55:35.556Z","0.2.1":"2026-05-06T15:24:19.139Z","0.2.2":"2026-05-06T15:34:03.941Z","0.2.3":"2026-05-07T06:45:14.088Z","0.2.4":"2026-05-07T11:12:36.771Z","0.2.5":"2026-05-07T15:41:39.926Z","0.2.6":"2026-05-10T06:58:39.320Z","0.2.7":"2026-05-10T07:11:20.630Z"},"author":{"name":"Rejwanul Islam"},"license":"ISC","keywords":["typescript","nodejs","ef-core","migrations","orm"],"description":"EF Core NodeJS","maintainers":[{"name":"irejwanul","email":"irejwanul@gmail.com"}],"readme":"# 🚀 EF-Core for Node.js\n\n> A **lightweight Node.js implementation of .NET EF Core** — combining **DbContext + DbSet + Migrations + Drift Detection** in one provider‑agnostic engine.\n\n[![npm version](https://img.shields.io/npm/v/@dreamz-it/ef-core)](https://www.npmjs.com/package/@dreamz-it/ef-core)\n[![license](https://img.shields.io/npm/l/@dreamz-it/ef-core)](LICENSE)\n\n---\n\n## ✨ Features\n\n- 🧠 **DbContext + DbSet** for entity/session management\n- 🔄 **Deterministic migrations** via snapshot system\n- ⚙️ **Provider‑agnostic** (SQLite, Postgres, MySQL, SqlServer)\n- 🧱 **Fluent ModelBuilder DSL**\n- 🔍 **Drift detection** for production safety\n- 🔒 **Migration locking** (concurrency‑safe)\n- 🖥️ **CLI + Library parity** with .NET EF Core\n\n---\n\n## 📊 Feature Comparison\n\nSee how EF‑Core for Node.js compares with .NET EF Core:\n\n[Feature Comparison Table](#-feature-comparison-ef-core-net-vs-efcore-for-nodejs)\n\n---\n\n## 📦 Installation\n\n```bash\n# pnpm\npnpm install @dreamz-it/ef-core\n\n# npm\nnpm install @dreamz-it/ef-core\n\n# yarn\nyarn add @dreamz-it/ef-core\n```\n\n---\n\n## ⚡ Quick Start\n\n### 🌐 Community & Repository\n\nExplore the source code, report issues, and contribute via our public GitHub repository:\n\n👉 [EF-Core for Node.js on GitHub](https://github.com/DreamzIt02/ef-core-app)\n\nJoin discussions, share feedback, and help shape the roadmap!\n\n### Track 1: CLI‑Only (Migrations & Drift)\n\nIf just want migrations without writing DbContext code:\n\n```bash\n# Create a migration\nef add Init\n\n# Apply migrations\nef apply\n\n# Check migration status\nef status\n\n# Generate SQL script\nef script\n\n# Detect drift (production safety)\nef drift\n\n# Rollback last migration\nef rollback\n```\n\n👉 This track is ideal if only need schema evolution and drift detection.\n\n---\n\n### Track 2: Full DbContext (EF Core‑style ORM)\n\nIf want the full EF Core experience in Node.js:\n\n#### 1. Define DbContext (`app.db.ts`)\n\n```ts\nimport { DbContext } from \"@dreamz-it/ef-core/core/db.context.js\";\nimport { Column } from \"@dreamz-it/ef-core/core/db.decorator.js\";\nimport { BaseEntity, PrimaryKey } from \"@dreamz-it/ef-core/core/db.entity.js\";\nimport { ModelBuilder } from \"@dreamz-it/ef-core/core/db.model.builder.js\";\nimport { DbSet } from \"@dreamz-it/ef-core/core/db.set.js\";\n\nexport class User extends BaseEntity {\n  id!: string;\n  @Column({ typeName: \"string\", maxLength: 200 })\n  name: string = \"\";\n  email: string = \"\";\n}\n\nexport class AppDbContext extends DbContext {\n  public Users!: DbSet<User>;\n\n  protected override onModelCreating(builder: ModelBuilder): void {\n    builder.entity(User, \"users\")\n      .hasKey(new PrimaryKey<User>({ id: \"string\" }, { auto: true }));\n  }\n}\n```\n\n#### 2. Configure EF Core (`app-db.config.ts`)\n\n```ts\nimport { AppDbContext } from \"./app.db.js\";\nimport { defineConfig } from \"@dreamz-it/ef-core/cli/index.js\";\nimport { getEnv } from \"@dreamz-it/ef-core/system/environment.js\";\nimport { ProviderType } from \"@dreamz-it/ef-core/providers/types.js\";\n\nexport default defineConfig({\n  context: AppDbContext as new () => AppDbContext,\n  migrationsDir: \"./migrations\",\n  environment: getEnv(),\n  contextOptions: {\n    provider: (process.env.DATABASE_PROVIDER || \"sqlite\") as ProviderType,\n    connectionString: process.env.DATABASE_URL || \"app.db\",\n    poolSize: Number(process.env.DB_POOL_SIZE) || 10,\n    logging: process.env.DB_LOGGING === \"true\",\n  },\n});\n```\n\n#### 3. Run migrations with the DbContext\n\n```bash\nef add Init\nef apply\n```\n\n---\n\n## 🧱 Migration Example\n\n```ts\nimport { MigrationBuilder } from \"@dreamz-it/ef-core\";\n\nexport default class Init {\n\n  up(mb: MigrationBuilder) {\n    mb.createTable(\"Users\", t => {\n      t.column(\"id\", \"string\", c => c.primary());\n      t.column(\"email\", \"string\", c => c.notNull().unique());\n    });\n  }\n\n  down(mb: MigrationBuilder) {\n    mb.dropTable(\"Users\");\n  }\n}\n```\n\n---\n\n## 🧠 How It Works\n\n```text\nModel Schema\n     ↓\nSnapshot (_snapshot.json)\n     ↓\nDiff Engine\n     ↓\nMigration Operations\n     ↓\nSQL Generator (provider-specific)\n     ↓\nExecution Engine\n     ↓\nDatabase\n```\n\n---\n\n## 🔍 Drift Detection\n\nDetect when the database has been modified outside migrations:\n\n```bash\nef drift\n```\n\nExample output:\n\n```text\n⚠️ Drift detected:\n\nmissing_table  | table=Users\nextra_column   | table=Orders | column=tempField\nchanged_column | table=Users  | column=email\n```\n\n---\n\n## 🔒 Safety Features\n\n- **Migration Locking** → prevents concurrent execution\n- **Snapshot Versioning** → future-proof schema evolution\n- **Deterministic Hashing** → consistent comparisons\n- **Strict Diff Engine** → no silent changes\n\n---\n\n## 📁 Project Structure\n\n```bash\nsrc/\n├── core/            # Engine (schema, diff, builder)\n├── providers/       # SQL + DB introspection\n├── infrastructure/  # execution, snapshot, history\n├── services/        # orchestration layer\n├── cli/             # command-line interface\n└── utils/           # helpers\n```\n\n---\n\n## 🧩 Supported Providers\n\n- ✅ SQLite    (better-sqlite3)\n- ✅ SQLite    (libsql)\n- ✅ Postgres  (pg)\n- ✅ Postgres  (postgres.js)\n- ✅ SqlServer (mssql)\n- ✅ SqlServer (tedious)\n- ✅ MySQL     (mysql2)\n- ✅ MariaDB   (mysql2) (not fully tested on MariaDB context)\n- ⚠️ MySQL     (planetscale)\n\n---\n\n## 📊 Feature Comparison: EF Core (.NET) vs EF‑Core for Node.js\n\n| **Feature** | **.NET EF Core** | **EF‑Core for Node.js** |\n|-------------|------------------|--------------------------|\n| **DbContext + DbSet** | ✅ Fully supported | ✅ Supported |\n| **Fluent ModelBuilder DSL** | ✅ Full API | ✅ Supported (parity in progress) |\n| **Migrations** | ✅ Deterministic, snapshot‑based | ✅ Deterministic, snapshot‑based |\n| **Drift Detection** | ❌ Not built‑in | ✅ Supported |\n| **Migration Locking** | ❌ Not built‑in | ✅ Supported (via `sp_getapplock` / advisory locks) |\n| **CLI + Library Parity** | ✅ Rich tooling | ✅ Supported (CLI + programmatic) |\n| **Provider Support** | ✅ SQL Server, SQLite, Postgres, MySQL, etc. | ✅ SQLite, Postgres, MySQL, MariaDB, SqlServer (mssql + tedious), ⚠️ Planetscale |\n| **Index + Constraint Diffing** | ✅ Advanced | 🚧 Stable |\n| **Rename Detection** | ✅ Advanced | 🚧 Stable |\n| **Seed System** | ✅ Built‑in | 🚧 Redesign planned |\n| **Migration Graph Visualization** | ✅ Limited tooling | 🚧 Planned |\n| **Multi‑environment Support** | ✅ Supported | 🚧 Stable |\n| **LINQ Queries** | ✅ Full LINQ provider | ❌ Not supported (use SQL/QueryBuilder) |\n| **Change Tracking** | ✅ Full | 🚧 Planned (basic tracking only) |\n| **Lazy Loading** | ✅ Supported | 🚧 Planned (basic lib only) |\n| **Compiled Queries** | ✅ Supported | ❌ Not supported |\n\n---\n\n## 🚧 Roadmap\n\n- 🔁 Rename detection (advanced diff)\n- 📊 Index + constraint diffing (advanced)\n- 🌱 Seed system redesign\n- 🧭 Migration graph visualization\n- ☁️ Multi-environment support\n\n---\n\n### 📈 Roadmap Diagram (ASCII)\n\n```text\nNow\n ├── DbContext + DbSet\n ├── Deterministic Migrations\n ├── Drift Detection\n ├── Migration Locking\n └── Provider Support (SQLite, Postgres, MySQL, SqlServer)\n\n   ↓ Next\n ├── Rename Detection (Advanced)\n ├── Index + Constraint Diffing (Advanced)\n ├── Seed System Redesign\n └── Migration Graph Visualization\n\n   ↓ Future\n ├── Multi-environment Support\n ├── Change Tracking (Advanced)\n ├── Lazy Loading (Advanced)\n └── Compiled Queries\n```\n\n---\n\n### 📊 Roadmap Diagram (Mermaid)\n\n```mermaid\nflowchart TD\n    A[Now] --> B[Next] --> C[Future]\n\n    A --> A1[DbContext + DbSet]\n    A --> A2[Deterministic Migrations]\n    A --> A3[Drift Detection]\n    A --> A4[Migration Locking]\n    A --> A5[Provider Support]\n\n    B --> B1[Rename Detection] (Advanced)\n    B --> B2[Index + Constraint Diffing] (Advanced)\n    B --> B3[Seed System Redesign]\n    B --> B4[Migration Graph Visualization]\n\n    C --> C1[Multi-environment Support]\n    C --> C2[Change Tracking] (Advanced)\n    C --> C3[Lazy Loading] (Advanced)\n    C --> C4[Compiled Queries]\n```\n\n---\n\n## 🧠 Philosophy\n\nEF-Core for Node.js is **not just a migration tool**. It’s a **lightweight EF Core analogue**:\n\n- `DbContext` + `DbSet` for entity/session management\n- Fluent `ModelBuilder` for schema configuration\n- Provider‑agnostic migrations\n- Drift detection and snapshot system for production safety\n\nInspired by:\n\n- .NET EF Core  \n- Prisma (DX)  \n- DrizzleORM (lessons learned 😄)\n- TypeORM (lessons learned 😄)\n\n---\n\n## 📜 License\n\nMIT\n\n---\n\n## 🙌 Contributing\n\nPRs are welcome. Keep it clean, typed, and deterministic.\n\n---\n","readmeFilename":"README.md"}