{"_id":"@neogroup/neorm","_rev":"48-09299ebb2cfcb9a57f27371a1238e7a8","name":"@neogroup/neorm","dist-tags":{"latest":"0.0.48"},"versions":{"0.0.1":{"name":"@neogroup/neorm","version":"0.0.1","keywords":["database","connector","javascript"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.1","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/NeORM#readme","bugs":{"url":"https://github.com/luismanuelamengual/NeORM/issues"},"dist":{"shasum":"884194f8a6ccdf6cf55e4d765ccfbb0a86e3d074","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.1.tgz","fileCount":171,"integrity":"sha512-+2/KBfghwVvSXARQXQ8Ig71OWJonoCzKqBZB3+CZPjZoAhc9RS3DMWGaGaxlKfZEHxLTUjCoXxGbrRGz9luasg==","signatures":[{"sig":"MEQCIHqwcqvdA/6fLECSIWm7F3BdLhiHXBSuECF3NtjLbY6PAiArblX1Q6wKz65vt7ggxIcIx6gSGZf8QkXA/gtVCCCHtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258387},"main":"dist/index.js","module":"dist/index.js","scripts":{"test":"jest","build":"jest --passWithNoTests && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/NeORM.git","type":"git"},"description":"Database connector for javascript","directories":{},"dependencies":{"esm":"^3.2.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^4.5.4","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-next":"^15.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.1_1781042153324_0.16548883747721854","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@neogroup/neorm","version":"0.0.2","keywords":["database","connector","javascript"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.2","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"ea1cfc663c3fee6f668716de642bc1455a9a0cb0","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.2.tgz","fileCount":380,"integrity":"sha512-eP2lqgvqMq8/UXA/kFH4mcqMu1D8bFjIhjVc1HBDPY7JdIAdDNasYyxlBHbySti7zm5LSu4LGKPzygz9qilL4Q==","signatures":[{"sig":"MEUCIEjKx7XJxnzkZYHKHYGfPoPXhSChtk0AjhEWerTYDYByAiEAjO/qg7B3CsVYAWse+Th0/y+jlwx4yNVqY0O1LpqY0TQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488845},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"test":"jest","build":"jest --passWithNoTests && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-next":"^15.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.2_1781132096955_0.5958183178291538","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@neogroup/neorm","version":"0.0.3","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.3","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"3b9471b8ddb853d834b9da41db000f7f249d5911","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.3.tgz","fileCount":502,"integrity":"sha512-AqX09rk1wtlzxz1vibr/KwlzrBq0A5YAJfEGElTP1lKi3zqkC67ZvEbGCjHYSJ1gZzgzgTy9vK7nnpIBsyyVzA==","signatures":[{"sig":"MEYCIQDJ/sReodd/HTnCHJGcDNLFECZhD9+59qsRsTFiH+Kx3AIhAMRtbi+DbfORpvH84Z68pA5hSGa0/K0wbnJz5B2wZTf7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":611750},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.3_1781179507440_0.24669590653250384","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@neogroup/neorm","version":"0.0.4","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.4","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"f8358a38bf0da7fc9feaf705dd145d079598779d","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.4.tgz","fileCount":502,"integrity":"sha512-nOiP/p7S/dnTNZC2hqNiSRNx3sfmXDoYnFYnibh2of2Py9FYwpucPAyeccFyi2Eo6Scz5fSAZhCPzAKwMN90KA==","signatures":[{"sig":"MEUCIFX5kWCWp/lkJmmrkN02BjjDtVzBqAm53n/3aoYXq12pAiEAs3FScFQkAiv+hlO5+UasRRCNNufF3d9rd3dmRzBl2J0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":619822},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.4_1781183607311_0.09535846243995327","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@neogroup/neorm","version":"0.0.5","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.5","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"bbdf411b01f96fa9d96d9d8029d8fd8c3c605805","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.5.tgz","fileCount":247,"integrity":"sha512-xqKeA3I0gHm1WB0saZ1kg6GanQOl/BHKZFRRIB0d+7jX6X26LoZVrKLksNz3xV31Hya+Xc8tqNTg/vGHXNVSew==","signatures":[{"sig":"MEYCIQD5UUnIFP6h4PEiFspnvleaBsxSTQeu42SVQXK88kmR+AIhAKXYZSzHTsu8m+QFemfHrYiJMKFUszQDjVVyX6T00V+N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295427},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.5_1781262825273_0.5948449182027509","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@neogroup/neorm","version":"0.0.6","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.6","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"b6ea6c31ce2d684a85661fd332df7c68fbf0f424","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.6.tgz","fileCount":247,"integrity":"sha512-lc4HOadDFFxnKcb/HdIGHCAIExg7xAnSpL3LsOoQr2FCClTal2nMTl2+k+e59IN9bRhj6lI1roZffQmesK83cQ==","signatures":[{"sig":"MEQCIHdJcCTrsWtPifayrEdwBI/EZr9xKHilXTcvAkGO9NDrAiBhUz+3oeoGWyR31qhFy0+063OhYcJMvQkrcj7/wQNPaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295984},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.6_1781288117266_0.5502035450994984","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@neogroup/neorm","version":"0.0.7","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.7","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"bef8219b0484f1fe5a652539bd5bc2ad619968b0","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.7.tgz","fileCount":250,"integrity":"sha512-iwpwuyLqNrWUEMQxUYl9tGHgblMsu6dIKrs1AVBfnUZ7pdjmDL81EBafgo9DjGVM4VjDjvPYojBpws0deGjnOg==","signatures":[{"sig":"MEQCIFuoEXPBE6CfAiipeW7WhpvbNU5gmHHZSiAWVOzxJ8naAiBg5h+G9w5DG/vbvtc+2y7d+gRlMlPMBQXAHNdZqJqrow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308258},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.7_1781372915543_0.8210827200954365","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@neogroup/neorm","version":"0.0.8","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.8","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"706f07ce680637499f6b34b5d4102036c31a3448","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.8.tgz","fileCount":250,"integrity":"sha512-IdEz09ri0bBPvvS5eLI7yJ8RmzErlduzEm1CMOXrTXLK4NW7cjBiNDtATCngxFJdqudJi7YZBev7iCi3t+eHfA==","signatures":[{"sig":"MEUCIChfNx/qEJ13MKsQ1uC9ZtYRRgaXMiqUT8sxj700Xgm1AiEAxmqjJUCqgj1EV7gwPi6QG6bRNCryLiesI3IY1EwaASc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":310938},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.8_1781389871507_0.18086420540221115","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@neogroup/neorm","version":"0.0.9","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.9","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"cde47c54dfd1c7718fbd8a23c5116ca4e2fa389c","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.9.tgz","fileCount":250,"integrity":"sha512-xmEomjbGJ+H0DFF8v+kq0neCsVosNSjMFArW7rjlVVRopr1YFXZb/TXOJh9DX4v1968D7Yc5a7xz6nx9PB+R5A==","signatures":[{"sig":"MEUCIBUnKCxS+zqocxF30PvaTXfAmzqlhmLqMJ0lGBKUx2r5AiEA/C+VRsGen2thmh1srw6a8sYzSuxGU5eXjRNWcP6EP8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311234},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.9_1781394933402_0.5268317718796045","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@neogroup/neorm","version":"0.0.10","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.10","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"33157dc78aee54629cd07624b123fcfe3cc50fb5","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.10.tgz","fileCount":250,"integrity":"sha512-P+r6kZfk+eokN+kYwVFu8dhnn/TSUmoKh667y6uBy7oaSpgg8nBBx2JEfx5ux0P6oSoImP8FyDTIuDiY41YZlg==","signatures":[{"sig":"MEQCIGNkRZWmbTBp5vKSXrq0I4Pfiee+F8DLQCm5wD4lhGyQAiAmHWGcBv8M0Md1kQcSb+CVcgBM4VQMf0qJPJpWp1mVXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311292},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.10_1781396974129_0.5388829328426561","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@neogroup/neorm","version":"0.0.11","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.11","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"2d493c7eefa02b9d0ce4904296b0351dc08ac611","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.11.tgz","fileCount":250,"integrity":"sha512-su8dJ8A1LwvSGgy7PRO727AiqlZpntQdEOepacsQnvY2FlRCt1CzOaD63GHpDD3G1zLoZuRm5fmw2e0IyO/+MQ==","signatures":[{"sig":"MEQCICPJ7NYPILRWMHo5hwZ9VMHo16kwMen+ays3Li78uKGuAiBQ7svlFpIoSQeth93w79B5pMl7Y0BGMgEKZLGUFpmvjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311220},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.11_1781399424789_0.24715476063202124","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@neogroup/neorm","version":"0.0.12","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.12","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"e6e83d0f69141d3b7305f9d6f7869a3c6f34fc9c","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.12.tgz","fileCount":250,"integrity":"sha512-3fLoMu0XXmG6H5H/HHnrUIztiXzArMc6KZ6kH3EEGVV57MWiBlgCeWyF+GAaQKIdKquR72rJnNiDDKUgxFri1Q==","signatures":[{"sig":"MEUCIBTQ8YjJAydLcLAZ40XlcDcHhzRew7Fk+3z6h5eB/THwAiEA9shTG1aoNRhVyBqeEjpjQfC4EPuaGQVHl4dZnJ4LHVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320934},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.12_1781403039895_0.9565601197982403","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@neogroup/neorm","version":"0.0.13","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.13","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"16da4c44c82ced7489fe93bf6f476eeb5ef1f499","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.13.tgz","fileCount":250,"integrity":"sha512-U/TC/p0oWaZOdwebqWooWS+0Q8pyy+Vd2e7jtFpbnTYFdcICm2djhO45r940tGN46+upD5zZ4+rNy2iwhJULKA==","signatures":[{"sig":"MEUCIAUI3Y4v8NyMRqngRamqxdoS2J0eIvd75HG2xWF3DAHxAiEAls2PEtsW5sJdZJli5u8OaBoZ5EHQlrjd4nr+dubnYcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324353},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.13_1781442915217_0.8304155608818617","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@neogroup/neorm","version":"0.0.14","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.14","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"b4cbf446a54ddcd3aa87cd8876a9ed862d620f3b","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.14.tgz","fileCount":250,"integrity":"sha512-8iKi4SvR9Ls66wqDhO+be52U2FlJ7Z1UC+bZ7wckGjQLr9GQVoHIiTXsocEF/TKuyRDUC5yL5QVX2EDKwYeSTg==","signatures":[{"sig":"MEUCIQDz8fl3w2FL3Jdy3axb5+uI6OA1zHuQfQ/+/S9NaXxnFwIgd1AwyJAXK1xh4rdefSk6qIIt+506BVdvLpPa5y7/ViE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334725},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.14_1781481596267_0.7118762853424991","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@neogroup/neorm","version":"0.0.15","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.15","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"a6cfc0fc4e91300e0e25a7fd0db14b78a55f2f01","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.15.tgz","fileCount":250,"integrity":"sha512-3eu6lF5PR4VJd52CB0djxFikV/dTxL8ICL5nia34LfA60bIf/wxxLAUn3iqqfHqBQpbnSSQiN9dg0DLqPlAp2g==","signatures":[{"sig":"MEUCIC7WcnJjoBiksWPuqh9ZHWae/D4CRo/LiA6KObGQkpvIAiEA+zWjvWCAQbebc4B+YYZjZTkslyMlsPrsxFNvEqfP5gY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334770},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","browser":"./dist/entities/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.15_1781483060941_0.5688006579234546","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@neogroup/neorm","version":"0.0.16","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.16","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"2fe25d04fad93cf4a1abb82f6c30867444ebb74b","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.16.tgz","fileCount":250,"integrity":"sha512-8Ke9dR9jkoYYacOZE2R4Jb1djzA0Wc0RdkYxVnl/1Kle2haCWobYbSE9CdxREmJ1AXU0o/iRt90JjZywBk4Wmw==","signatures":[{"sig":"MEQCIEb7j3/g/zmoqqm7yID1j5YX0c+AYMgYFRBJ3GpCnu34AiAtLdvoikaH2H1dpDmli3hweBGrDV6m6p7CFvDnNH4N8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":334725},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.16_1781486178441_0.025364842579767677","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@neogroup/neorm","version":"0.0.17","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.17","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"f40ce2a975f81655ab3822f86f555f983a9716a4","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.17.tgz","fileCount":253,"integrity":"sha512-SmfamPSki40cMPN5HAegs3Ijz7PTNZUNRCCmpLv3jssTYMo2Xz1jltjBj96JCYM9aZjHul+Nsl7YbBVUR3ZJxQ==","signatures":[{"sig":"MEUCIE4p5S9xlGGptvzVVQO5sRJU4+B0MS1xntq8dcr0FK+PAiEAmcKFfIO1Tmpd4c0BJoEl624PsiBxW0gRe4b6jReZcY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347082},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.17_1781648493919_0.6124289413718016","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@neogroup/neorm","version":"0.0.18","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.18","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"84e5b9094016482ba0804642925495fe3f6ecd2a","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.18.tgz","fileCount":253,"integrity":"sha512-4x0eMVplHjy3EoeDuI+wPL3DTR4o8HL+qZ96CWUV89LlftasU1k/OXN6fxMOw2szAuUaa4CX4fVy4lzbuwggUA==","signatures":[{"sig":"MEQCIBsFtaErnu/el0ruPVAZTlGW71IjQFNEHNa3VMC9kSDiAiAE251Ufpwoh76EjAOCchiFZ4eIsrLeOc3VOqhIrojg2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349094},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.18_1781729935966_0.4111084910159395","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@neogroup/neorm","version":"0.0.19","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.19","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"593cab436ff4776909d0e2391064fbc03325706e","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.19.tgz","fileCount":253,"integrity":"sha512-khI6XiVLB43hG3cMR52XBZzv9t8vriWlf8Yy+Jehf7WRZR4HDsnqz0qu5Fc3q069ElI5wZmhIeFDtISKKYhWCA==","signatures":[{"sig":"MEQCIESY0qoAPhMzM2hC5uP68VJsikkx2k7b8Wwwzv3pZ08pAiAwJv9XhtxLGIfEj3/jTp5WF5GJgmgw0arKxL59LJZOcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349327},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.19_1781788824296_0.1643684482903447","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@neogroup/neorm","version":"0.0.20","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.20","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"2d5451832c713b1804d831e8947cbe754192a501","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.20.tgz","fileCount":253,"integrity":"sha512-yHJKbS1cG/5LVIvBlGji+qVDc0lIS02d9WCOnCAmbwGbJ/aK+ilfXKIraMkvAkIb3m+q1YXjB69qvGtakHSiEA==","signatures":[{"sig":"MEYCIQCFeJ+U5fcUebZxRVE9PxqAdU6ru9u+mb9o/qBKUiDBiQIhAKQL5EY0eJbHvqBciRlG17LZCaF3z3GKq81ecc6hg3dz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350565},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.20_1781789685771_0.7281145904833253","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@neogroup/neorm","version":"0.0.21","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.21","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"f28d1c91a2106a2a66fc0e08a1d86413098ad129","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.21.tgz","fileCount":253,"integrity":"sha512-0aZh9OCPLCCfv++5XFR85qdhAP9s8th68w9pEQyFwg61nhH6Gs+yple09KowySGZjIf7Ff3b5obGDsZXH81Iwg==","signatures":[{"sig":"MEUCIDuBl1FIi3ayNB3A2i4wgdqRVzivfEZ5zwxLnL8nB+sGAiEA7/Tmp5nqWYrN4XSV9y3g67q5wPIEFYLgl3mdJwQd4ZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351441},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.21_1781790430748_0.7943771215975328","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@neogroup/neorm","version":"0.0.22","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.22","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"c7bbce0adc3365e44ed2d07867c402295daac48e","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.22.tgz","fileCount":253,"integrity":"sha512-5ubkRLFH+pBO/tpyTyZ19D7PlygvE8OjUIg4q1qBW7k1B0ySHkEPpXObQrgR2ZcXKJQYDF/y38HqHWmcoBQ+sA==","signatures":[{"sig":"MEUCIQCMhi/r5E1PL0czAAxhCp5Oe6ockymFZVLbSN9ebxRRZwIgG6f2V5+lzX68iur3Tq8U22d7hV/mM/VT5PrBVFSirAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":361059},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.22_1781887394210_0.8231947179609853","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@neogroup/neorm","version":"0.0.23","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.23","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"a758d26f3055c172b3fd802e7c453e5e1bfaf07f","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.23.tgz","fileCount":256,"integrity":"sha512-vMUGSFCvEIN6HRm7brFNQOw1UeFW+n/x4Bu6L52fBSG9qCoHFdmgQgdfHUcTVFbbSyQkkOlkZyVhoqoq8VI0Zw==","signatures":[{"sig":"MEUCID7q3cbb2zMV4ZmEO3n9kMEoP2b8e8WodcIj3DylLIOIAiEAikyekZDLpS5sr5pxnUNH1MMX2kNc9+ehSlDuhRMYP/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363036},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.23_1781923423739_0.9851383981454747","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@neogroup/neorm","version":"0.0.24","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.24","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"f28c22de914ecb639157f29c2488da7e82a8f19f","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.24.tgz","fileCount":256,"integrity":"sha512-3tjqMy428NuPAobZX0mepGGNCgCjg0DhW7gzZQwDGkj776+h632DinhbGMT6+dRhf0iehDvN2XRdZMlurvvoWg==","signatures":[{"sig":"MEYCIQCMvDCQ92ViT4tJ+8t/yNImjF8F/2pHqVdtU0UyzyM7uQIhAJ1sIatdg2p4rFbVKZD+QqIak8kbWbjhE7thJEWDcfBv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366082},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.24_1781961952686_0.42804346195455456","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@neogroup/neorm","version":"0.0.25","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.25","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"7e8ade5c3bdc16db38d52538264b8812c9b5633e","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.25.tgz","fileCount":256,"integrity":"sha512-1PX0gyIvcIJu1bQEVL+Sh3fukuUf+NfA4Q1yGHbndv5MDi0LWTv+3aepni6GNk6Fk1M4XyvG7JRbz+7RhLy5TA==","signatures":[{"sig":"MEUCIFkBXwKZeF8tME2rk7ZhmAG5tg1EeFBdnVfrHSSr44fLAiEA46lg+s5GN2ZvYCOD2y5HFDWa3GELs9weMB5Y5vmb6ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366698},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.25_1781963285982_0.28629784135813807","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@neogroup/neorm","version":"0.0.26","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.26","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"ea97bab038a0a0605d2633975049e43ba6dc99bc","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.26.tgz","fileCount":259,"integrity":"sha512-L/I1B3/CaOtL3q1KwdHtIzTb7UAQkx2URgBRzkHu1aaUxQ4q9Jdkt3TQWi09pk8afDdz0XwFf9uTR+BGr3U0Wg==","signatures":[{"sig":"MEQCIEEIRwI4p+Q/FvpZeth8HltXmbwHHff/4xPhU3fzBw/oAiBFmMlJ16GpVwPp3tSgYCm0+r6WnMaRepH4CsJ8gnSfZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376518},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.26_1781978851461_0.906836980730904","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@neogroup/neorm","version":"0.0.27","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.27","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"1e3a08a388835899f9118066a1da60f7ca17ec5d","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.27.tgz","fileCount":259,"integrity":"sha512-OVoD9h8ovWo7nj0IohJTjF8Gtp+RQ2G9LUUQjo4virmeG5Yp32j5ocFj2eoiJXl/xGG0zJqesIloU3REU1zBkQ==","signatures":[{"sig":"MEUCIEOmg/nQL7CD2BLIf6bLRupiR4htutf7TOBZLjm1V+PPAiEAvRjjwMAI94H99vthd/u1uRrTt/0hJPujtwgX8xY5zww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376370},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.27_1782048988260_0.12829219865822816","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"@neogroup/neorm","version":"0.0.28","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.28","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"12ad71312e2c0d5c6612f53ee6c26350f0fa1298","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.28.tgz","fileCount":259,"integrity":"sha512-md/20CHgRDcCbIA6QtgXdCaqd3Lz1W9GmxSdP14sYtdwv975Z7kTaOcAVuGgLOAHu8c92ESjeAhyTkKgk28JIw==","signatures":[{"sig":"MEYCIQCl75gbtTYYuP1FkpYeRU+NtdL3y1iMuZCutBxqUO1MBAIhAJEDhfnjUXT/RnGbV3JFbncythHsoiDrKDkxZqRnmoK6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377414},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.28_1782054540629_0.9135452663963362","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@neogroup/neorm","version":"0.0.29","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.29","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"5bf6ee76ae6124fb471f996f7aa981cf6512f91f","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.29.tgz","fileCount":262,"integrity":"sha512-skvSEvIPQsrRXR7dGq5f7CAtskwyBj74TiM7PwzubIYfIdrNqnQjW5REAEFWU0iMSgYPImX8w+pBjT7voGkmLQ==","signatures":[{"sig":"MEUCIEaqGouBdvbioMm+Wr6/8DXvVPa93z62+b74aO+OS1BWAiEA45lDpJCOA0lGF2zNQhL7dD1j83ZpJjy18qqz1RcB/Ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377861},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.29_1782072358477_0.5463620345998597","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@neogroup/neorm","version":"0.0.30","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.30","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"bcc6c26cb2c5ceabec6d1d8ca369608493bd47d9","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.30.tgz","fileCount":265,"integrity":"sha512-3zhQUnCJF3ouOZChqr/0+s9lf4bZWviQuXIxZHprQEN9IiO/IBw/hkh4tWXk5DKajrHNpHfsEh42l/oehE6+bw==","signatures":[{"sig":"MEUCIDiV8WqADf/a/AhNj3nkGdLKJV//Hn0A7jQV4xRZumloAiEAk/Rsqrm0XNYPvr+6PSpA6q5H6Bzwr8716brRB5bShTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379896},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.30_1782074386897_0.5088134250515968","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@neogroup/neorm","version":"0.0.31","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.31","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"d34b67b8c0c843439198866a00ab263fa2e27732","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.31.tgz","fileCount":268,"integrity":"sha512-yYAbxearLKlsUhxXlknJ0cFbabbtwbI4JVLOudc02xVJg4ZkXXf36DXgU1h3l7ODy+DDiW+j/vYSqWJE/0dxrA==","signatures":[{"sig":"MEUCICqm3ylRe+NupOXKHyqZpH4nfrCgpeZ0n9w+XgXaIbA/AiEAk8o+JxDOSVoDVK+0ljGvdA8HFRJ0M1idZeNsvW7KSZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391208},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.31_1782138315916_0.22454290820038336","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@neogroup/neorm","version":"0.0.32","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.32","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"0926a6c0beb694eccd33e0716d0c7b4cdd79bf4e","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.32.tgz","fileCount":268,"integrity":"sha512-M5J60JzBWQ1w3gnKrikrlyQyRG8RFtlZVA9ps6vnsSS/nNqzgR66F9Q22u34aFkm2gl8KfgPPzmcPvYqZMJemg==","signatures":[{"sig":"MEYCIQCWFLk+sM8ojc94wBG2I8EgfUUFv9dZzqlb6quyue6RJAIhAJDCTLz/uvct9gsxlhkKh1GK0fL6GR8Wh74OKJrvqjnh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391355},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.32_1782139907289_0.36342516204105824","host":"s3://npm-registry-packages-npm-production"}},"0.0.33":{"name":"@neogroup/neorm","version":"0.0.33","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.33","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"89bcc0344603bfc9e3be6b41bf42a567bec11fa8","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.33.tgz","fileCount":268,"integrity":"sha512-kQrm0Lhrszj8sRTU4Q9BNSjdi+g23xt9c6k/4kc6Azqy9wgnS99GGIdwmvsM8vxhZ31hfeAc/bLyeXxI3Yxl1Q==","signatures":[{"sig":"MEUCIQDmLCh2I+RWNeY8FJtB28WZNZ5IVtYBVcMQ0W9nKLCFAQIgCV5KLHD6/4bbAOsfVbbpcYQ1j6Uml66ZnMLV59DMV0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394377},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.33_1782156928484_0.3111497389721205","host":"s3://npm-registry-packages-npm-production"}},"0.0.34":{"name":"@neogroup/neorm","version":"0.0.34","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.34","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"4b8049c5c3f876a5273ad643a5b0a991c1bf2679","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.34.tgz","fileCount":271,"integrity":"sha512-dmbx2quGDiu+/EuCTxa4g100ckJ80UCrfnPkG+ZfckiFs4W5XoMM35PKBEqGLfdA1daelI2UGx//NhBFoEIFyw==","signatures":[{"sig":"MEYCIQCqPt0FRsbFyWSCUThf+pnEkyIfXVTms7fxf5v7+OAwVwIhALQg6mjZG5sj0X1ZlJuz5DY/Yvl7LHkBkoYvMln+yMsu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421805},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.34_1782235376233_0.9985214859712057","host":"s3://npm-registry-packages-npm-production"}},"0.0.35":{"name":"@neogroup/neorm","version":"0.0.35","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.35","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"2460bce7cfa54c582057d1093f770a140eb50669","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.35.tgz","fileCount":271,"integrity":"sha512-6M30iSSa402c3WgnTuU7yy8fkjTQk0/9fvI1XZb+Me3S4yBULyzu8/BEw8pwuFG89s5/x6HM1Kv4ztImgGU53w==","signatures":[{"sig":"MEUCIERxEG5TC6C6OEFE/aryhuKYCeo0BdGNxUURDLXuf+PQAiEAtlIayIjcE+NrHfNpoXzX2Nuiu0/7GgbTzR9aDD1wj/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430880},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.35_1782406887144_0.3749383239144761","host":"s3://npm-registry-packages-npm-production"}},"0.0.36":{"name":"@neogroup/neorm","version":"0.0.36","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.36","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"130aaeb9c03b1be1bcceaa3b998900e1a69e8378","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.36.tgz","fileCount":271,"integrity":"sha512-sTelxwhtcmm1Sock6lQkLKNKiLXWfgynwSShxWxwhS6N4g70pCXS8AljHPU0Xoy8SxfeGTd7d9gp47tO2LsCsA==","signatures":[{"sig":"MEQCIGDjEu1sc7l7piIeH9m9pusEwIl+KcDukdcZre4n+IcwAiBobrbKPXMvyPO2fB8iMGuK5Lp5xYz8WdggM3Rzl0HTUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432111},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.36_1782429830166_0.18239094585229276","host":"s3://npm-registry-packages-npm-production"}},"0.0.37":{"name":"@neogroup/neorm","version":"0.0.37","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.37","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"987fcca3ecb4f06732bc4d0dc80af64370c0583b","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.37.tgz","fileCount":274,"integrity":"sha512-WoOGPa9ocmi4V5tMgh5rDu+o4pke8uqm7oO3oJBJhAUzXa010JrlgPRXrHuCXkgAlDPWqHtbfcJohm7yvQi/og==","signatures":[{"sig":"MEQCIGF+YXyJo91ZIgPY5y5DyInVGjMqfCPKAAPqeh0xPwfsAiBgsE6lw4EIFr82Egj1UK7bDjqkFRFPDlNhtC1c+IjfWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440797},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.37_1782493540482_0.15985069449468559","host":"s3://npm-registry-packages-npm-production"}},"0.0.38":{"name":"@neogroup/neorm","version":"0.0.38","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.38","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"1564ec92fa358cf3a7b18d13eb94594b46352818","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.38.tgz","fileCount":274,"integrity":"sha512-R9XMxPWqaZoski96CHfOkKMTLuEcDnRipO6cayD+5wibcYZXn9oHRy4wuJVYtx4UFCJK8NQyvNCHVd2KyKXneg==","signatures":[{"sig":"MEQCIAanz62EQD4YkgPqg6xJGDXUwEfKpvDqAy8MAVyGVYEaAiAS6g5Dasm8Dcy1t1tdkDy2tO4gBbp9ZwhN5uHY/8mTmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452514},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.38_1783023474214_0.02556571343366243","host":"s3://npm-registry-packages-npm-production"}},"0.0.39":{"name":"@neogroup/neorm","version":"0.0.39","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.39","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"41c4e88cf11c449fcba8439cf035dc679901b81f","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.39.tgz","fileCount":318,"integrity":"sha512-hpMIxFjR1HYn8OaJ7Sds7Pfd1JhiXhU+8051oRVWbWiN2UTPLwEIVIwDujllPKC6uPvc20U3gu9vzn3TQ7NV8Q==","signatures":[{"sig":"MEQCIDObH2IFKgeevlIrIDaVVeTWsP0yWOx4ASy0kGDO1bOmAiAPPbtxXaoe9FobnekQgF30Y5vZPPDE+MY4F4Pv0P5yPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554180},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.39_1783031240261_0.1712324290421987","host":"s3://npm-registry-packages-npm-production"}},"0.0.40":{"name":"@neogroup/neorm","version":"0.0.40","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.40","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"9069bb58662b83b8e5ab553382ee7a3affd0bbe2","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.40.tgz","fileCount":318,"integrity":"sha512-W2FVmA7FDi+YuBiZevSJFDCCR8dOoqA3iqQeU05coraY2vohtrrfHdn5ntBY/COcMb77ziS7FrvgezhJzOKAAA==","signatures":[{"sig":"MEUCIQDsSor5EU+RYTtnVjFHuPMzOHNtDMYHG89fuYfQKSMAigIgZnpkSezHih7w+418Wcb28HCJcMbPRreJ0uvgMJayfy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555009},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.40_1783032091123_0.9155879408050438","host":"s3://npm-registry-packages-npm-production"}},"0.0.41":{"name":"@neogroup/neorm","version":"0.0.41","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.41","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"4365a60c06993646fc97fdecd9892061a8181ade","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.41.tgz","fileCount":318,"integrity":"sha512-A0DA7uTlzoiTU9PEH5GmMCeIlyp7SCxy60KRKOPj4b1sfrr7ezOe75vSrX1zu9AJlwmhzKqsfWsB8rpIk/eXhw==","signatures":[{"sig":"MEQCIBlYctGwpMDiFTeMhZFIevjn4FP6rhf27XPkDaTJLem/AiBSHiNT4yT9nlkzhuwWDKqT/rHtLXNdbSqcxWxEXev/Bw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":558272},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.41_1783098631781_0.3752273921423317","host":"s3://npm-registry-packages-npm-production"}},"0.0.42":{"name":"@neogroup/neorm","version":"0.0.42","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.42","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"b32cbe8d654af1b177d7feebb4b73dca4315786d","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.42.tgz","fileCount":318,"integrity":"sha512-wT5Ehw/To0Yb0d/tvSeIbUxP9vfHKpynVNaiqzgiVCk6hYDOgFtW1UAyVjXHMl4nCWTuR4VtLEJCe9SFq5yhMg==","signatures":[{"sig":"MEQCIBE9qI+6e8GGma0wGgKdCHexPqxuSOgeLwTLAPfHBNICAiAG0q1PY0HWmShrhdFM/YBWFX15YLVDgogx2UM9+0ESZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567383},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.42_1783716986926_0.7225309867005429","host":"s3://npm-registry-packages-npm-production"}},"0.0.43":{"name":"@neogroup/neorm","version":"0.0.43","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.43","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"dd310ea73956ffa9d59ff9f086a2eda61d3d06b9","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.43.tgz","fileCount":318,"integrity":"sha512-QAMEdMO2TlU6ZWMm8N/kX0xs0cdKQHPvMNUVG5cuuRImU2Do04O4z/pm9pm8OFol43sSANCfEtCMYifyO2JANg==","signatures":[{"sig":"MEYCIQDvNciStCNWDLyIBkSqnLg6r9aa5x13zAHvF0peFxqYoQIhAKMvb5WKRPcgGZH+4labjC8DP+pq5Y+ITEUAG0pDus3K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":569366},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.43_1783788034780_0.36273933003255077","host":"s3://npm-registry-packages-npm-production"}},"0.0.44":{"name":"@neogroup/neorm","version":"0.0.44","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.44","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"aeb6fd2532e92ecae408e1692ae4e2e2c2df7314","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.44.tgz","fileCount":324,"integrity":"sha512-sOVQsegbE8uwaMJMQKWBZWdy1+q0SEnPrLSQD044+0powLqJzRdNLekDg8e0VLFDUVFcvPaWIFiDnI9D9XSD9g==","signatures":[{"sig":"MEYCIQDt0arGZ/SuOMwub5THeUGWdf3fwx3tRTQ5MEAHsO7SAwIhAMDsR+k58rWpuc3KpNILayFMWFBTDbFr3r3wOcR3zte+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":607620},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.44_1784477516582_0.8557794988328076","host":"s3://npm-registry-packages-npm-production"}},"0.0.45":{"name":"@neogroup/neorm","version":"0.0.45","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.45","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"09ba30fdef3b4e66388fb9ff390e0e91c890973a","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.45.tgz","fileCount":324,"integrity":"sha512-Vbqj9XKoUHPO3T48CB2j+1mRwolrws9hbsV6ad2EUalTHfDZIzQvF2RxF7f8emZiIt5vvbmfQXG/eB10I6UV9Q==","signatures":[{"sig":"MEYCIQC8a0GGLzaA2qhekbpguD4SNQn+bbhz/noZ7ml0dZZ2awIhAIQpJQN6TFlbAMbUQv8O0Loh8UCvByf5TyINcje+sMw8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608092},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.45_1784478308149_0.2484067398624532","host":"s3://npm-registry-packages-npm-production"}},"0.0.46":{"name":"@neogroup/neorm","version":"0.0.46","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.46","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"f0acfc009f04de026c3defa06d1192caad66fab6","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.46.tgz","fileCount":324,"integrity":"sha512-uV46BZA716BvH+dY5r9oSeAil3y1V9XZjbjKOtYlptlo6CUhHz0wwDkEuvwYZDJRzk4okZhzejTfK0m1ocdfxg==","signatures":[{"sig":"MEUCIQCVuCourezd0PUoxrXnHtf8P+yXHayRUfhCgIT3xn2qkgIgPZWGcSX7nChJkgWffKyr1a6vWDnj1HHtZW+ggXRvCWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":608782},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.46_1784479230573_0.9104251241650354","host":"s3://npm-registry-packages-npm-production"}},"0.0.47":{"name":"@neogroup/neorm","version":"0.0.47","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"author":{"name":"Luis Manuel Amengual"},"license":"ISC","_id":"@neogroup/neorm@0.0.47","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"dist":{"shasum":"b8d506b1e12fdc0d6f1deaadddeb868ee455e38b","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.47.tgz","fileCount":324,"integrity":"sha512-+le6HcE61nvOYX2CMg22qUaMrqC3toY0LVQe8ruE880RNSycjAIdiJqUI4zS5u9Oy2pCFSQ0yCAM+WZXzqtNGg==","signatures":[{"sig":"MEYCIQDQCacTC8pgZC8xnAsvYx1ovqSySGvcfsxQPGUFYoULPgIhAPuz4spap9WugwARo7NQ7A0D8sLbEF1PcaoAMeXpSk81","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":613458},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"scripts":{"lint":"eslint src test --ext .ts,.js --fix","test":"jest","build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"repository":{"url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git","type":"git"},"description":"Database connector and ORM for javascript","directories":{},"dependencies":{},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.7.1","jest":"^29.7.0","dotenv":"^16.0.3","eslint":"^8.57.0","mysql2":"^3.0.0","ts-jest":"^29.1.0","ts-node":"^10.4.0","prettier":"^2.6.2","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^25.9.2","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^5.47.0","@typescript-eslint/eslint-plugin":"^5.47.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-plugin-absolute-imports-only":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/neorm_0.0.47_1788818079021_0.4584922466801369","host":"s3://npm-registry-packages-npm-production"}},"0.0.48":{"name":"@neogroup/neorm","version":"0.0.48","description":"Database connector and ORM for javascript","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.js","types":"./dist/index.d.ts"}},"author":{"name":"Luis Manuel Amengual"},"license":"ISC","bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git"},"scripts":{"build":"jest --passWithNoTests && npm run clean && tsc","clean":"node -e \"require('fs').rmSync('dist', { recursive: true, force: true })\"","test":"jest","lint":"eslint src test --ext .ts,.js --fix","prepublishOnly":"npm run build"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^25.9.2","@typescript-eslint/eslint-plugin":"^5.47.0","@typescript-eslint/parser":"^5.47.0","dotenv":"^16.0.3","eslint":"^8.57.0","eslint-config-prettier":"^8.5.0","eslint-plugin-absolute-imports-only":"^1.0.1","eslint-plugin-prettier":"^5.0.1","eslint-plugin-simple-import-sort":"^10.0.0","jest":"^29.7.0","mysql2":"^3.0.0","pg":"^8.7.1","prettier":"^2.6.2","ts-jest":"^29.1.0","ts-node":"^10.4.0","typescript":"^5.0.0"},"dependencies":{},"_id":"@neogroup/neorm@0.0.48","dist":{"shasum":"66065ba16b8cee5cd838623bd113ce858ecfa7a5","integrity":"sha512-p/StqAHS+MQ4O1Ey9UStMjpE4lGJceDToQ8zBn0LsMyMizQ45pISBH2+SNvRHvxqFjcnCWtHnM7A5/mOLeOmIA==","tarball":"https://registry.npmjs.org/@neogroup/neorm/-/neorm-0.0.48.tgz","fileCount":324,"unpackedSize":638794,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSL3sY4IF3yzYMp7gsJ2s/pGK7hOc8GZbM9hbtEMVTqwIgUH4BKhtPaOprZwGUF43nrZ/mfDzWk4Xn6A8tvvSRq2c="}]},"_npmUser":{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"},"directories":{},"maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/neorm_0.0.48_1789144668978_0.981678465937349"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-09T21:55:53.097Z","modified":"2026-09-11T16:37:49.307Z","0.0.1":"2026-06-09T21:55:53.489Z","0.0.2":"2026-06-10T22:54:57.090Z","0.0.3":"2026-06-11T12:05:07.597Z","0.0.4":"2026-06-11T13:13:27.441Z","0.0.5":"2026-06-12T11:13:45.449Z","0.0.6":"2026-06-12T18:15:17.426Z","0.0.7":"2026-06-13T17:48:35.701Z","0.0.8":"2026-06-13T22:31:11.640Z","0.0.9":"2026-06-13T23:55:33.543Z","0.0.10":"2026-06-14T00:29:34.279Z","0.0.11":"2026-06-14T01:10:24.934Z","0.0.12":"2026-06-14T02:10:40.035Z","0.0.13":"2026-06-14T13:15:15.364Z","0.0.14":"2026-06-14T23:59:56.405Z","0.0.15":"2026-06-15T00:24:21.078Z","0.0.16":"2026-06-15T01:16:18.583Z","0.0.17":"2026-06-16T22:21:34.099Z","0.0.18":"2026-06-17T20:58:56.166Z","0.0.19":"2026-06-18T13:20:24.464Z","0.0.20":"2026-06-18T13:34:45.920Z","0.0.21":"2026-06-18T13:47:10.897Z","0.0.22":"2026-06-19T16:43:14.358Z","0.0.23":"2026-06-20T02:43:43.900Z","0.0.24":"2026-06-20T13:25:52.856Z","0.0.25":"2026-06-20T13:48:06.146Z","0.0.26":"2026-06-20T18:07:31.604Z","0.0.27":"2026-06-21T13:36:28.444Z","0.0.28":"2026-06-21T15:09:00.771Z","0.0.29":"2026-06-21T20:05:58.644Z","0.0.30":"2026-06-21T20:39:47.053Z","0.0.31":"2026-06-22T14:25:16.158Z","0.0.32":"2026-06-22T14:51:47.450Z","0.0.33":"2026-06-22T19:35:28.629Z","0.0.34":"2026-06-23T17:22:56.394Z","0.0.35":"2026-06-25T17:01:27.279Z","0.0.36":"2026-06-25T23:23:50.338Z","0.0.37":"2026-06-26T17:05:40.663Z","0.0.38":"2026-07-02T20:17:54.384Z","0.0.39":"2026-07-02T22:27:20.440Z","0.0.40":"2026-07-02T22:41:31.308Z","0.0.41":"2026-07-03T17:10:31.937Z","0.0.42":"2026-07-10T20:56:27.154Z","0.0.43":"2026-07-11T16:40:34.927Z","0.0.44":"2026-07-19T16:11:56.719Z","0.0.45":"2026-07-19T16:25:08.327Z","0.0.46":"2026-07-19T16:40:30.713Z","0.0.47":"2026-09-07T21:54:39.198Z","0.0.48":"2026-09-11T16:37:49.124Z"},"bugs":{"url":"https://github.com/luismanuelamengual/neogroup-neorm/issues"},"author":{"name":"Luis Manuel Amengual"},"license":"ISC","homepage":"https://github.com/luismanuelamengual/neogroup-neorm#readme","keywords":["database","connector","javascript","typescript","orm","mysql","postgres"],"repository":{"type":"git","url":"git+https://github.com/luismanuelamengual/neogroup-neorm.git"},"description":"Database connector and ORM for javascript","maintainers":[{"name":"luis.amengual","email":"luismanuelamengual@gmail.com"}],"readme":"[![npm version](https://badge.fury.io/js/@neogroup%2Fneorm.svg)](https://badge.fury.io/js/@neogroup%2Fneorm)\n![](https://img.shields.io/github/forks/luismanuelamengual/NeORM.svg?style=social&label=Fork)\n![](https://img.shields.io/github/stars/luismanuelamengual/NeORM.svg?style=social&label=Star)\n![](https://img.shields.io/github/watchers/luismanuelamengual/NeORM.svg?style=social&label=Watch)\n![](https://img.shields.io/github/followers/luismanuelamengual.svg?style=social&label=Follow)\n\n# NeORM\n\nA lightweight, fluent TypeScript library for interacting with relational databases. It provides a chainable query builder, connection/transaction management, and pluggable data sources for **PostgreSQL**, **MySQL**, and **SQLite** — with a clean architecture that makes it easy to add new engines.\n\n## Table of contents\n\n- [Installation](#installation)\n- [Data sources](#data-sources)\n  - [PostgreSQL](#postgresql)\n  - [MySQL](#mysql)\n  - [SQLite](#sqlite)\n  - [Multiple sources](#multiple-sources)\n  - [Configuration via environment variables](#configuration-via-environment-variables)\n    - [Connection string (DB\\_URL)](#connection-string-recommended)\n    - [Individual variables](#individual-variables)\n- [Querying with DataTable](#querying-with-datatable)\n  - [SELECT — basic](#select--basic)\n  - [Filtering — WHERE](#filtering--where)\n  - [Conditional clauses — when](#conditional-clauses--when)\n  - [Sorting — ORDER BY](#sorting--order-by)\n  - [Pagination — LIMIT & OFFSET](#pagination--limit--offset)\n  - [Counting — count()](#counting--count)\n  - [Aggregates — sum() / avg() / min() / max()](#aggregates--sum--avg--min--max)\n  - [Paginating — paginate()](#paginating--paginate)\n  - [Grouping — GROUP BY & HAVING](#grouping--group-by--having)\n  - [Joins](#joins)\n  - [Distinct](#distinct)\n  - [Field aliases & functions](#field-aliases--functions)\n  - [Table alias](#table-alias)\n- [INSERT, UPDATE, DELETE](#insert-update-delete)\n- [Raw queries](#raw-queries)\n- [Schema builder (migrations)](#schema-builder-migrations)\n  - [Creating tables](#creating-tables)\n  - [Column types](#column-types)\n  - [Column modifiers](#column-modifiers)\n  - [Indexes & foreign keys](#indexes--foreign-keys)\n  - [Updating tables](#updating-tables)\n  - [Dropping & renaming](#dropping--renaming)\n  - [Engine-aware types](#engine-aware-types)\n- [Advanced queries with SelectQuery](#advanced-queries-with-selectquery)\n  - [UNION / UNION ALL](#union--union-all)\n  - [Subqueries](#subqueries)\n- [Connections & transactions](#connections--transactions)\n  - [Explicit connection](#explicit-connection)\n  - [DB shorthand methods](#db-shorthand-methods)\n- [Entities (Active Record)](#entities-active-record)\n  - [Defining an Entity](#defining-an-entity)\n  - [Querying](#querying)\n  - [Saving & deleting](#saving--deleting)\n  - [Casts](#casts)\n  - [Relationships](#relationships)\n  - [Eager loading — with()](#eager-loading--with)\n  - [Joining via relationships](#joining-via-relationships)\n  - [Existence checks — whereHas / orWhereHas](#existence-checks--wherehas--orwherehas)\n  - [Scoped aggregates & raw projections — toBase()](#scoped-aggregates--raw-projections--tobase)\n  - [Entities without BaseEntity](#entities-without-baseentity)\n- [Debug mode](#debug-mode)\n- [Extending the library](#extending-the-library)\n- [Contact](#contact)\n\n---\n\n## Installation\n\n```bash\nnpm install @neogroup/neorm\n```\n\nDepending on the database engine you use, install the corresponding driver:\n\n| Engine     | Driver                  |\n|------------|-------------------------|\n| PostgreSQL | `npm install pg`        |\n| MySQL      | `npm install mysql2`    |\n| SQLite     | built-in (Node ≥ 22.5)  |\n\n---\n\n## Data sources\n\nA **DataSource** represents a configured connection to a database engine. Register it once at startup with `DB.register()` and use `DB` anywhere in your code from that point on.\n\n### PostgreSQL\n\n```typescript\nimport { DB, PostgresDataSource } from '@neogroup/neorm'\n\nconst source = new PostgresDataSource()\nsource.setHost('localhost')\nsource.setPort(5432)               // default: 5432\nsource.setDatabaseName('mydb')\nsource.setUsername('admin')\nsource.setPassword('secret')\n\nDB.register(source)\n```\n\n### MySQL\n\n```typescript\nimport { DB, MysqlDataSource } from '@neogroup/neorm'\n\nconst source = new MysqlDataSource()\nsource.setHost('localhost')\nsource.setPort(3306)               // default: 3306\nsource.setDatabaseName('mydb')\nsource.setUsername('admin')\nsource.setPassword('secret')\n\nDB.register(source)\n```\n\nMySQL identifiers (table names, column names) are automatically quoted with backticks to avoid conflicts with reserved words.\n\n### SQLite\n\n```typescript\nimport { DB, SqliteDataSource } from '@neogroup/neorm'\n\nconst source = new SqliteDataSource()         // in-memory database\n// source.setFilename('./data.db')            // or a file path\n\nDB.register(source)\n```\n\nSQLite uses Node's built-in `node:sqlite` module — no native compilation required.\n\n### Multiple sources\n\nYou can register multiple sources and switch between them by name:\n\n```typescript\nDB.register('primary', primarySource)\nDB.register('reporting', reportingSource)\n\n// Use a specific source explicitly\nconst rows = await DB.source('reporting').table('analytics').get()\n```\n\nThe first registered source becomes the **active source** automatically. `DB.table(...)`, `DB.query(...)`, `DB.execute(...)` and the transaction helpers all target it. You can change it at any time with `setActiveSource()`:\n\n```typescript\nDB.setActiveSource('reporting')\n\n// Now all DB.* calls target reportingSource\nconst rows = await DB.table('analytics').get()\n```\n\n### Configuration via environment variables\n\nInstead of calling `DB.register()` in code, you can configure data sources entirely through environment variables. The library auto-detects them the first time a source is needed — no bootstrap code required.\n\n#### Connection string (recommended)\n\nThe simplest way is a single `DB_URL` variable. The driver is inferred from the URL scheme:\n\n```bash\n# SQLite in-memory\nDB_URL=sqlite://:memory:\n\n# SQLite file\nDB_URL=sqlite:///path/to/data.db\n\n# PostgreSQL\nDB_URL=postgres://admin:secret@localhost:5432/mydb\n\n# MySQL\nDB_URL=mysql://admin:secret@localhost:3306/mydb\n```\n\n```typescript\n// No DB.register() anywhere — just set DB_URL and use DB\nconst users = await DB.table('users').get()\n```\n\n#### Individual variables\n\nAlternatively, set `DB_DRIVER` plus the connection-specific variables:\n\n**Default source** — used by all `DB.*` calls:\n\n| Variable      | Description                                                          |\n|---------------|----------------------------------------------------------------------|\n| `DB_URL`      | Connection string — takes priority over all other `DB_*` variables  |\n| `DB_DRIVER`   | `sqlite` \\| `postgres` \\| `mysql` (required if `DB_URL` is not set) |\n| `DB_FILE`     | SQLite file path (default: `:memory:`)                               |\n| `DB_HOST`     | Database host (postgres / mysql)                                     |\n| `DB_PORT`     | Database port (postgres / mysql)                                     |\n| `DB_NAME`     | Database name (postgres / mysql)                                     |\n| `DB_USERNAME` | Login username (postgres / mysql)                                    |\n| `DB_PASSWORD` | Login password (postgres / mysql)                                    |\n\n**Named sources** — replace `<NAME>` with the source name in upper-case:\n\n```\nDB_<NAME>_URL, DB_<NAME>_DRIVER, DB_<NAME>_HOST, DB_<NAME>_PORT,\nDB_<NAME>_NAME, DB_<NAME>_USERNAME, DB_<NAME>_PASSWORD, DB_<NAME>_FILE\n```\n\n`DB_<NAME>_URL` takes priority over `DB_<NAME>_DRIVER` for the same source name.\n\nExamples:\n\n```bash\n# Single SQLite source via connection string\nDB_URL=sqlite:///data.db\n```\n\n```bash\n# Single SQLite source via individual variables\nDB_DRIVER=sqlite\nDB_FILE=./data.db\n```\n\n```bash\n# PostgreSQL default + named SQLite for reporting\nDB_URL=postgres://admin:secret@localhost:5432/myapp\n\nDB_REPORTING_URL=sqlite:///reporting.db\n```\n\n```typescript\n// No DB.register() anywhere — sources are resolved from the environment\nconst users = await DB.table('users').get()\nconst report = await DB.source('reporting').table('stats').get()\n```\n\nYou can also call `DB.configure()` explicitly at startup if you want fail-fast behaviour (e.g. crash early instead of on the first query if a required variable is missing):\n\n```typescript\nDB.configure()   // throws immediately if neither DB_URL nor DB_DRIVER is set\n```\n\n`DB.configure()` is a no-op if sources have already been registered manually, so it is safe to mix both styles in the same application.\n\n---\n\n## Querying with DataTable\n\n`DB.table('name')` returns a `DataTable` — a chainable query builder scoped to a single table. All methods return the same `DataTable` instance so you can chain them freely.\n\n### SELECT — basic\n\n```typescript\n// SELECT * FROM users\nconst users = await DB.table('users').get()\n\n// SELECT * FROM users LIMIT 1\nconst user = await DB.table('users').first()   // returns null if no rows match\n```\n\nSelect specific columns:\n\n```typescript\n// SELECT id, name, email FROM users\nconst users = await DB.table('users')\n  .select('id', 'name', 'email')\n  .get()\n```\n\n---\n\n### Filtering — WHERE\n\n**Simple equality:**\n\n```typescript\n// WHERE name = 'Alice'\nawait DB.table('users').where('name', 'Alice').get()\n```\n\n**Comparison operators** (`=`, `<>`, `<`, `>`, `<=`, `>=`):\n\n```typescript\nawait DB.table('users').where('age', '>', 18).get()\nawait DB.table('users').where('age', '<>', 30).get()\n```\n\n**Multiple conditions (AND by default):**\n\n```typescript\n// WHERE active = 1 AND age > 18\nawait DB.table('users').where('active', 1).where('age', '>', 18).get()\n```\n\n**OR conditions:**\n\n```typescript\n// WHERE name = 'Alice' OR name = 'Bob'\nawait DB.table('users').where('name', 'Alice').orWhere('name', 'Bob').get()\n```\n\n**IN / NOT IN:**\n\n```typescript\n// WHERE role IN ('admin', 'editor')\nawait DB.table('users').whereIn('role', ['admin', 'editor']).get()\n\n// WHERE id NOT IN (1, 2, 3)\nawait DB.table('users').whereNotIn('id', [1, 2, 3]).get()\n```\n\nAlso available as `orWhereIn` / `orWhereNotIn`.\n\n**BETWEEN / NOT BETWEEN:**\n\n```typescript\n// WHERE age BETWEEN 18 AND 65\nawait DB.table('users').whereBetween('age', [18, 65]).get()\n\n// WHERE created_at NOT BETWEEN '2024-01-01' AND '2024-12-31'\nawait DB.table('orders').whereNotBetween('created_at', ['2024-01-01', '2024-12-31']).get()\n```\n\nAlso available as `orWhereBetween` / `orWhereNotBetween`.\n\n**LIKE / NOT LIKE:**\n\n```typescript\nawait DB.table('users').whereLike('email', '%@gmail.com').get()\nawait DB.table('users').whereNotLike('name', 'A%').get()\n```\n\nAlso available as `orWhereLike` / `orWhereNotLike`.\n\n**NULL checks:**\n\n```typescript\n// WHERE deleted_at IS NULL\nawait DB.table('users').whereNull('deleted_at').get()\n\n// WHERE deleted_at IS NOT NULL\nawait DB.table('users').whereNotNull('deleted_at').get()\n```\n\nAlso available as `orWhereNull` / `orWhereNotNull`.\n\n**Grouped conditions (parentheses):**\n\nPass a callback to `where()` to create a parenthesized group. Inside the callback the full `where*` / `orWhere*` API is available:\n\n```typescript\n// WHERE (name = 'Alice' OR name = 'Bob') AND active = 1\nawait DB.table('users')\n  .where((group) => group.where('name', 'Alice').orWhere('name', 'Bob'))\n  .where('active', 1)\n  .get()\n\n// WHERE (age IN (25, 30)) AND active = 1\nawait DB.table('users')\n  .where((q) => q.whereIn('age', [25, 30]))\n  .where('active', 1)\n  .get()\n\n// WHERE (age BETWEEN 18 AND 40 OR nickname IS NULL)\nawait DB.table('users')\n  .where((q) => q.whereBetween('age', [18, 40]).orWhereNull('nickname'))\n  .get()\n```\n\nNest groups as deep as needed:\n\n```typescript\n// WHERE (role = 'admin' OR (role = 'editor' AND verified = 1))\nawait DB.table('users')\n  .where((group) =>\n    group\n      .where('role', 'admin')\n      .orWhere((inner) => inner.where('role', 'editor').where('verified', 1))\n  )\n  .get()\n```\n\n`orWhere()` also accepts a callback, producing an OR-connected group.\n\n**Column comparisons — `whereColumn` / `orWhereColumn`:**\n\nCompare two columns against each other instead of against a scalar value:\n\n```typescript\n// WHERE updated_at > created_at\nawait DB.table('users').whereColumn('updated_at', '>', 'created_at').get()\n\n// WHERE col_a = col_b  (operator defaults to =)\nawait DB.table('items').whereColumn('col_a', 'col_b').get()\n\n// OR variant\nawait DB.table('items').whereColumn('a', 'b').orWhereColumn('a', '>', 'b').get()\n```\n\n`whereColumn` / `orWhereColumn` are also available inside grouped-condition callbacks:\n\n```typescript\nawait DB.table('items')\n  .where((q) => q.whereColumn('a', 'b').orWhereColumn('a', '>', 'b'))\n  .get()\n```\n\n---\n\n### Conditional clauses — `when`\n\n`when(condition, callback)` applies query modifications only when `condition` is truthy. This keeps dynamic query building readable without `if` statements scattered through the chain:\n\n```typescript\nconst onlyActive = true\nconst minAge = 18\n\nconst users = await DB.table('users')\n  .when(onlyActive, (q) => q.where('active', 1))\n  .when(minAge != null, (q) => q.where('age', '>=', minAge))\n  .get()\n```\n\nWhen `condition` is falsy the callback is skipped and the chain continues unchanged. `when` works on `DataTable`, `SelectQuery` and `EntityQuery` (entity queries).\n\n---\n\n### Sorting — ORDER BY\n\n```typescript\n// ORDER BY name ASC\nawait DB.table('users').orderBy('name').get()\n\n// ORDER BY age DESC\nimport { OrderByDirection } from '@neogroup/neorm'\nawait DB.table('users').orderBy('age', OrderByDirection.DESC).get()\n\n// ORDER BY age DESC  (shorthand — no import needed)\nawait DB.table('users').orderByDesc('age').get()\n\n// Multiple sort fields\nawait DB.table('users')\n  .orderBy('country', OrderByDirection.ASC)\n  .orderByDesc('age')\n  .get()\n```\n\n---\n\n### Pagination — LIMIT & OFFSET\n\n```typescript\n// LIMIT 10\nawait DB.table('users').limit(10).get()\n\n// LIMIT 10 OFFSET 20  (page 3)\nawait DB.table('users').limit(10).offset(20).get()\n\n// OFFSET only (SQLite emits LIMIT -1 automatically)\nawait DB.table('users').offset(5).get()\n```\n\n---\n\n### Counting — count()\n\n`count()` returns the number of records that match the current query as a plain `number`. It honours `where` conditions, joins, group-by and having, while ignoring any `limit` / `offset` / `orderBy`.\n\n```typescript\n// SELECT COUNT(*) AS aggregate FROM users\nconst total = await DB.table('users').count()\n\n// SELECT COUNT(*) AS aggregate FROM users WHERE active = 1\nconst active = await DB.table('users').where('active', 1).count()\n```\n\nCombine with `distinct()` and a column to count distinct values:\n\n```typescript\n// SELECT COUNT(DISTINCT country) AS aggregate FROM users\nconst countries = await DB.table('users').distinct().count('country')\n```\n\nWhen the query has a `groupBy`, `count()` returns the number of groups.\n\n---\n\n### Aggregates — sum() / avg() / min() / max()\n\nThe same shape as `count()`: a scalar straight out of the query, honouring `where`, joins and having, ignoring `limit` / `offset` / `orderBy`.\n\n```typescript\n// SELECT SUM(amount) AS aggregate FROM orders WHERE paid = 1\nconst revenue = await DB.table('orders').where('paid', 1).sum('amount')   // number\n\n// SELECT AVG(amount) AS aggregate FROM orders\nconst ticket = await DB.table('orders').avg('amount')                     // number | null\n\n// SELECT MIN(created_at) AS aggregate FROM orders\nconst first = await DB.table('orders').min('created_at')\nconst last = await DB.table('orders').max('created_at')\n```\n\nEmpty result sets differ on purpose: `sum()` returns `0`, while `avg()`, `min()` and `max()` return `null` — the average of no rows is undefined, not zero.\n\n`min()` and `max()` hand the value back exactly as the driver produced it, with no cast applied, because they are as useful over dates and text as over numbers. Pass the type you expect for convenience:\n\n```typescript\nconst latest = await DB.table('orders').max<string>('created_at')\n```\n\nAll four accept a qualified column or a field object, same as everywhere else:\n\n```typescript\nawait DB.table('employees')\n  .innerJoin('sales', 'employees.id', 'sales.employee_id')\n  .sum({ name: 'amount', table: 'sales' })\n```\n\nFor a value **per group**, these scalars are the wrong tool — ask for the aggregate in `select()` and read the rows back, as shown in [Grouping — GROUP BY & HAVING](#grouping--group-by--having).\n\n---\n\n### Paginating — paginate()\n\n`paginate(perPage = 15, page = 1)` runs a `COUNT` for the total plus a windowed `SELECT` for the requested page, and returns both the records and the navigation metadata — modelled after Laravel's length-aware paginator.\n\n```typescript\n// Page 2, 15 records per page\nconst result = await DB.table('users').orderBy('name').paginate(15, 2)\n```\n\nThe returned object has the shape:\n\n```typescript\n{\n  data: DataSet[]   // records for this page\n  total: number     // total matching records (ignores limit/offset)\n  perPage: number   // records requested per page\n  currentPage: number\n  lastPage: number  // always >= 1\n  from: number | null // 1-based index of the first row, null when empty\n  to: number | null   // 1-based index of the last row, null when empty\n}\n```\n\n`where` conditions and ordering are respected for both the total count and the page query:\n\n```typescript\nconst result = await DB.table('users')\n  .where('active', 1)\n  .orderBy('age')\n  .paginate(10, 1)\n\nconsole.log(result.total)       // e.g. 42\nconsole.log(result.lastPage)    // e.g. 5\nconsole.log(result.data.length) // up to 10\n```\n\n---\n\n### Grouping — GROUP BY & HAVING\n\n```typescript\n// SELECT country, COUNT(*) AS total FROM users GROUP BY country\nawait DB.table('users')\n  .select('country', 'COUNT(*) AS total')\n  .groupBy('country')\n  .get()\n\n// GROUP BY + HAVING\n// HAVING COUNT(*) > 5\nawait DB.table('users')\n  .select('country', 'COUNT(*) AS total')\n  .groupBy('country')\n  .having('COUNT(*)', '>', 5)\n  .get()\n```\n\n`having()` and `orHaving()` accept the same signatures as `where()`.\n\n---\n\n### Joins\n\n```typescript\n// INNER JOIN orders ON users.id = orders.user_id\nawait DB.table('users')\n  .innerJoin('orders', 'users.id', 'orders.user_id')\n  .get()\n\n// LEFT JOIN\nawait DB.table('users')\n  .leftJoin('orders', 'users.id', 'orders.user_id')\n  .get()\n```\n\nFields follow the `'table.field'` notation — the builder parses and quotes each component according to the engine (e.g. backticks in MySQL). Object form is also accepted for finer control:\n\n```typescript\n.innerJoin('orders', { name: 'id', table: 'users' }, { name: 'user_id', table: 'orders' })\n```\n\nAvailable join methods: `join()`, `innerJoin()`, `leftJoin()`, `rightJoin()`, `outerJoin()`, `crossJoin()`.\n\nJoin with table alias:\n\n```typescript\nawait DB.table('users')\n  .innerJoin('orders', 'users.id', 'orders.user_id', 'o')\n  .select('users.name', 'o.total')\n  .get()\n```\n\n---\n\n### Distinct\n\n```typescript\n// SELECT DISTINCT country FROM users\nawait DB.table('users').distinct().select('country').get()\n```\n\n---\n\n### Field aliases & functions\n\nRaw string fields support `'table.field'` notation and `'FUNC(table.field)'` — the builder parses and quotes each component using the engine's rules:\n\n```typescript\n// SELECT users.name, COUNT(orders.id) AS order_count FROM ...\nawait DB.table('users')\n  .select('users.name', 'COUNT(orders.id) AS order_count')\n  .innerJoin('orders', 'users.id', 'orders.user_id')\n  .groupBy('users.id')\n  .get()\n```\n\nObject form is also available for precise control:\n\n```typescript\n// SELECT COUNT(*) AS total FROM users\nawait DB.table('users')\n  .select({ name: '*', function: 'COUNT', alias: 'total' })\n  .get()\n\n// SELECT MAX(age) AS max_age FROM users\nawait DB.table('users')\n  .select({ name: 'age', function: 'MAX', alias: 'max_age' })\n  .get()\n```\n\n---\n\n### Table alias\n\n```typescript\n// FROM users AS u\nawait DB.table('users').alias('u').get()\n```\n\n---\n\n## INSERT, UPDATE, DELETE\n\n**INSERT:**\n\n```typescript\n// Using set() — chainable\nconst rowsAffected = await DB.table('users')\n  .set('name', 'Alice')\n  .set('email', 'alice@example.com')\n  .set('age', 30)\n  .insert()\n\n// Passing a fields object directly (Laravel-style)\nconst rowsAffected = await DB.table('users')\n  .insert({ name: 'Alice', email: 'alice@example.com', age: 30 })\n```\n\n**UPDATE:**\n\n```typescript\n// Using set() — chainable\nconst rowsAffected = await DB.table('users')\n  .where('id', 7)\n  .set('active', 0)\n  .update()\n\n// Passing a fields object directly\nconst rowsAffected = await DB.table('users')\n  .where('id', 7)\n  .update({ active: 0, name: 'Bob' })\n```\n\n**DELETE:**\n\n```typescript\n// DELETE FROM users WHERE active = 0\nconst rowsAffected = await DB.table('users').where('active', 0).delete()\n```\n\n> ⚠️ Omitting `where()` on `update()` and `delete()` will affect **all rows** in the table.\n\n---\n\n## Raw queries\n\nWhen you need full control over the SQL string, use `DB.query()` and `DB.execute()` directly on the active source:\n\n```typescript\n// Raw SELECT\nconst rows = await DB.query(\n  'SELECT * FROM users WHERE age > ? AND active = ?',\n  [18, 1]\n)\n\n// Raw execute (INSERT / UPDATE / DELETE / DDL)\nconst affected = await DB.execute(\n  'UPDATE users SET active = ? WHERE last_login < ?',\n  [0, '2023-01-01']\n)\n```\n\nTo target a specific source, use `DB.source()`:\n\n```typescript\nconst rows = await DB.source('reporting').query('SELECT * FROM analytics')\n```\n\n---\n\n## Schema builder (migrations)\n\nThe `Schema` facade creates, alters and drops tables through a fluent, database-agnostic API modelled after Laravel's `Schema`. You describe a table once and NeORM compiles it to the right DDL for the active source — SERIAL/BIGSERIAL and native `INTEGER[]`/`JSONB` on PostgreSQL, `AUTO_INCREMENT`/backtick identifiers/`JSON` on MySQL, and `INTEGER PRIMARY KEY AUTOINCREMENT`/`TEXT` on SQLite. The engine is resolved from the active `DataSource`, so the same migration runs everywhere.\n\n```typescript\nimport { Schema } from '@neogroup/neorm'\n```\n\n### Creating tables\n\n`Schema.create()` receives the table name and a callback that configures a `Blueprint`. Each column method returns a `ColumnDefinition` you can chain modifiers on:\n\n```typescript\nawait Schema.create('oauth_access_tokens', (table) => {\n  table.string('id', 100).primary()\n  table.unsignedBigInteger('userId').index()\n  table.integer('clientId')\n  table.text('scopes').nullable()\n  table.boolean('revoked').default(false)\n  table.dateTime('expiresAt').nullable()\n})\n```\n\nUse `createIfNotExists()` to emit `CREATE TABLE IF NOT EXISTS` (handy for idempotent migrations):\n\n```typescript\nawait Schema.createIfNotExists('users', (table) => {\n  table.increments('id')\n  table.string('email', 255)\n  table.timestamp('createdAt').useCurrent()\n})\n```\n\n### Column types\n\nColumns are **NOT NULL by default** (call `.nullable()` to allow nulls), exactly like Laravel.\n\n| Method                          | PostgreSQL         | MySQL                     | SQLite                          |\n|---------------------------------|--------------------|---------------------------|---------------------------------|\n| `increments('id')`              | `SERIAL PRIMARY KEY` | `INT UNSIGNED AUTO_INCREMENT PRIMARY KEY` | `INTEGER PRIMARY KEY AUTOINCREMENT` |\n| `bigIncrements('id')` / `id()`  | `BIGSERIAL PRIMARY KEY` | `BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY` | `INTEGER PRIMARY KEY AUTOINCREMENT` |\n| `string(name, length = 255)`    | `VARCHAR(n)`       | `VARCHAR(n)`              | `VARCHAR(n)`                    |\n| `char(name, length)`            | `CHAR(n)`          | `CHAR(n)`                 | `CHAR(n)`                       |\n| `text(name)`                    | `TEXT`             | `TEXT`                    | `TEXT`                          |\n| `integer(name)`                 | `INTEGER`          | `INT`                     | `INTEGER`                       |\n| `unsignedInteger(name)`         | `INTEGER`          | `INT UNSIGNED`            | `INTEGER`                       |\n| `bigInteger(name)`              | `BIGINT`           | `BIGINT`                  | `INTEGER`                       |\n| `unsignedBigInteger(name)`      | `BIGINT`           | `BIGINT UNSIGNED`         | `INTEGER`                       |\n| `smallInteger` / `tinyInteger`  | `SMALLINT`         | `SMALLINT` / `TINYINT`    | `INTEGER`                       |\n| `boolean(name)`                 | `BOOLEAN`          | `TINYINT(1)`              | `INTEGER`                       |\n| `float(name)`                   | `REAL`             | `FLOAT`                   | `REAL`                          |\n| `double(name)`                  | `DOUBLE PRECISION` | `DOUBLE`                  | `REAL`                          |\n| `decimal(name, total, places)`  | `NUMERIC(t, p)`    | `DECIMAL(t, p)`           | `NUMERIC(t, p)`                 |\n| `date` / `time`                 | `DATE` / `TIME`    | `DATE` / `TIME`           | `DATE` / `TIME`                 |\n| `dateTime(name)`                | `TIMESTAMP`        | `DATETIME`                | `TIMESTAMP`                     |\n| `timestamp(name)`               | `TIMESTAMP`        | `TIMESTAMP`               | `TIMESTAMP`                     |\n| `json(name)`                    | `JSON`             | `JSON`                    | `TEXT`                          |\n| `jsonb(name)`                   | `JSONB`            | `JSON`                    | `TEXT`                          |\n| `uuid(name)`                    | `UUID`             | `CHAR(36)`                | `TEXT`                          |\n| `integerArray(name)`            | `INTEGER[]`        | `JSON`                    | `TEXT`                          |\n\n`table.timestamps()` adds nullable `createdAt` / `updatedAt` columns in one call.\n\n### Column modifiers\n\nChainable on any column:\n\n```typescript\ntable.string('email', 255).nullable()        // allow NULL\ntable.integer('status').default(1)            // DEFAULT literal\ntable.boolean('active').default(true)         // engine boolean literal (true / 1)\ntable.integerArray('roles').default([])       // '{}' on Postgres, '[]' on SQLite\ntable.timestamp('createdAt').useCurrent()     // DEFAULT CURRENT_TIMESTAMP\ntable.string('slug', 120).unique()            // single-column UNIQUE\ntable.unsignedBigInteger('userId').index()    // single-column index\ntable.string('id', 100).primary()             // add to primary key\ntable.default(Schema.raw('NOW()'))            // raw SQL default\n```\n\n`.notNullable()`, `.unsigned()`, `.comment()`, `.after()` and `.change()` are also available.\n\n### Indexes & foreign keys\n\nDeclare them at the blueprint level. Foreign keys are emitted **inline** in `CREATE TABLE`, so they work on SQLite too:\n\n```typescript\nawait Schema.create('tournaments', (table) => {\n  table.increments('id')\n  table.integer('organizationId')\n  table.integer('ownerId')\n  table.string('name', 150)\n\n  // composite unique + named index\n  table.unique(['organizationId', 'name'])\n  table.index('organizationId', 'idx_tournaments_org')\n\n  // foreign keys\n  table.foreign('organizationId').references('id').on('organizations')\n  table.foreign('ownerId').references('id').on('users').onDelete('cascade')\n})\n```\n\n`onDelete()` / `onUpdate()` accept any action (`'cascade'`, `'set null'`, `'restrict'`, …). Shortcuts: `cascadeOnDelete()`, `nullOnDelete()`, `restrictOnDelete()`, `cascadeOnUpdate()`. Pass an explicit name as the second argument of `index()` / `unique()` / `foreign()` or via `.name(...)`.\n\n### Updating tables\n\n`Schema.table()` alters an existing table — add or drop columns, add indexes/foreign keys, rename columns:\n\n```typescript\nawait Schema.table('users', (table) => {\n  table.string('nickname', 100).nullable()                     // ADD COLUMN\n  table.integer('loginCount').default(0)\n  table.foreign('roleId').references('id').on('roles')         // ADD CONSTRAINT … FOREIGN KEY\n  table.renameColumn('phone', 'phoneNumber')                   // RENAME COLUMN\n  table.dropColumn('legacyField')                              // DROP COLUMN\n})\n```\n\n> **SQLite note:** SQLite's `ALTER TABLE` is limited — adding a foreign key, dropping a constraint, or changing a column in place is not supported and raises a clear error. Declare those inside `Schema.create()` instead.\n\n### Dropping & renaming\n\n```typescript\nawait Schema.drop('some_table')\nawait Schema.dropIfExists('temp_table')\nawait Schema.rename('old_name', 'new_name')\n\nif (await Schema.hasTable('users')) {\n  // …\n}\n```\n\nEvery `Schema` call runs on the active source and honours any in-progress transaction. Target a specific source with `Schema.connection('reporting').create(...)`.\n\n### Engine-aware types\n\n`integerArray()`, `json()`/`jsonb()` and `boolean()` are the key to portable migrations: a list column becomes native `INTEGER[]` on PostgreSQL but JSON-encoded `TEXT` on SQLite, and the `array`/`json` entity casts read it back transparently. This lets a single migration file target PostgreSQL in production and SQLite in tests without branching on the driver.\n\n---\n\n## Advanced queries with SelectQuery\n\nFor queries that go beyond a single table — unions, subqueries, or complex joins — build a `SelectQuery` directly and pass it to `source.query()`.\n\n### UNION / UNION ALL\n\n```typescript\nimport { DB } from '@neogroup/neorm'\n\n// SELECT name FROM users WHERE active = 1\n// UNION\n// SELECT name FROM users WHERE age > 50\nconst query = DB.selectQuery('users')\n  .select('name')\n  .where('active', 1)\n  .union(\n    DB.selectQuery('users').select('name').where('age', '>', 50)\n  )\n\nconst rows = await DB.source('primary').query(query)\n```\n\n`union()` removes duplicates (standard SQL `UNION`). Use `unionAll()` to keep them:\n\n```typescript\nconst query = DB.selectQuery('orders')\n  .select('user_id')\n  .where('status', 'paid')\n  .unionAll(\n    DB.selectQuery('orders').select('user_id').where('status', 'refunded')\n  )\n```\n\nChain multiple unions:\n\n```typescript\nconst query = DB.selectQuery('table_a').select('id')\n  .union(DB.selectQuery('table_b').select('id'))\n  .union(DB.selectQuery('table_c').select('id'))\n```\n\n### Subqueries\n\nA `SelectQuery` can be used as a value in a `where()` condition:\n\n```typescript\nconst activeUserIds = DB.selectQuery('users').select('id').where('active', 1)\n\nconst orders = await DB.source('primary').query(\n  DB.selectQuery('orders').where('user_id', 'IN', activeUserIds)\n)\n```\n\n---\n\n## Connections & transactions\n\n### Explicit connection\n\nObtain a connection explicitly when you need full control over its lifecycle:\n\n```typescript\nconst conn = await DB.connection()\n\ntry {\n  await conn.beginTransaction()\n\n  await conn.execute('INSERT INTO accounts (user_id, balance) VALUES (?, ?)', [1, 1000])\n  await conn.execute('UPDATE accounts SET balance = balance - ? WHERE user_id = ?', [200, 2])\n\n  await conn.commitTransaction()\n} catch (err) {\n  await conn.rollbackTransaction()\n} finally {\n  await conn.close()\n}\n```\n\n`executeTransaction()` on a connection handles begin/commit/rollback automatically:\n\n```typescript\nconst conn = await DB.connection()\n\nawait conn.executeTransaction(async (tx) => {\n  await tx.execute('INSERT INTO logs (event) VALUES (?)', ['login'])\n  await tx.execute('UPDATE users SET last_login = NOW() WHERE id = ?', [userId])\n  // throws → automatic rollback; resolves → automatic commit\n})\n\nawait conn.close()\n```\n\n### DB shorthand methods\n\n`DB` exposes convenience wrappers that delegate directly to the active source's connection, so you don't need to manage a connection object for simple cases:\n\n```typescript\n// One-shot query / execute\nconst rows    = await DB.query('SELECT * FROM users WHERE active = ?', [1])\nconst affected = await DB.execute('DELETE FROM logs WHERE created_at < ?', ['2024-01-01'])\n\n// Auto-managed transaction (recommended)\nawait DB.executeTransaction(async (tx) => {\n  await tx.execute('INSERT INTO logs (event) VALUES (?)', ['login'])\n  await tx.execute('UPDATE users SET last_login = NOW() WHERE id = ?', [userId])\n})\n\n// Manual transaction control\nawait DB.beginTransaction()\ntry {\n  await DB.execute('INSERT INTO ...')\n  await DB.commitTransaction()\n} catch (err) {\n  await DB.rollbackTransaction()\n}\n```\n\n---\n\n## Entities (Active Record)\n\nEntities are Eloquent-style Active Record models that map a class to a database table. Every entity extends the abstract **`BaseEntity`** class and is annotated with TypeScript decorators. `BaseEntity` provides all the static query methods (`find`, `where`, `with`, …) — fully typed — plus the `save()` and `delete()` instance methods.\n\n> Enable `\"experimentalDecorators\": true` and `\"useDefineForClassFields\": false` in your `tsconfig.json`.\n\n### Defining an Entity\n\nExtend `BaseEntity`, annotate the class with `@Entity` and mark its columns with `@Column`. The decorators register the table metadata; `BaseEntity` supplies querying and persistence.\n\n```typescript\nimport {\n  BaseEntity, Entity, Column,\n  HasOne, HasMany, BelongsTo, HasOneThrough, HasManyThrough\n} from '@neogroup/neorm'\n\n@Entity()                          // table name defaults to lowercase class name + 's' → 'users'\nclass User extends BaseEntity {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n\n  @Column()\n  name!: string\n\n  @Column()\n  email!: string\n\n  @Column({ cast: 'number' })\n  age!: number\n\n  @Column({ cast: 'boolean' })\n  active!: boolean\n\n  @HasMany(() => Order, 'userId')\n  orders?: Order[]\n\n  @HasOne(() => Profile, 'userId')\n  profile?: Profile | null\n\n  // Computed attributes work as plain JS getters — no extra decorator needed\n  get displayName(): string {\n    return `${this.name} (${this.email})`\n  }\n}\n\n@Entity()\nclass Order extends BaseEntity {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n\n  @Column()\n  userId!: number\n\n  @Column({ cast: 'number' })\n  total!: number\n\n  @BelongsTo(() => User, 'userId')\n  user?: User\n}\n```\n\n**`@Column` options:**\n\n| Option          | Type       | Description |\n|-----------------|------------|-------------|\n| `columnName`    | `string`   | Database column name. Defaults to the property name. |\n| `cast`          | `CastType` | Coerce the value when reading from the DB (see [Casts](#casts)). |\n| `primaryKey`    | `boolean`  | Marks this column as the primary key. |\n| `autoGenerated` | `boolean`  | Column is DB-managed (e.g. `AUTOINCREMENT`). Excluded from INSERT/UPDATE; the generated value is written back to the instance after INSERT. |\n\nWhen a custom table name or primary key column name is needed, pass options to `@Entity`:\n\n```typescript\n@Entity({ table: 'shipping_addresses' })\nclass ShippingAddress extends BaseEntity {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n  // ...\n}\n```\n\nTo target a specific registered data source (by name) instead of the active one:\n\n```typescript\nDB.register('archive', archiveSource)\n\n@Entity({ source: 'archive' })   // the entity operates on DB.source('archive')\nclass ArchiveUser extends BaseEntity {\n  // ...\n}\n```\n\n---\n\n### Querying\n\nAll `DataTable` query methods are available as static methods inherited from `BaseEntity`, returning a chainable `EntityQuery<T>`. They are fully typed — `User.get()` returns `Promise<User[]>` with no casts needed:\n\n```typescript\n// Fetch all\nconst users = await User.get()          // User[]\n\n// Find by primary key\nconst user = await User.find(1)         // User | null\n\n// First match\nconst admin = await User.where('role', 'admin').first()\n\n// Chained conditions\nconst adults = await User.where('active', 1)\n  .whereNotNull('email')\n  .orderBy('name')\n  .limit(20)\n  .get()\n```\n\nThe full `where*` / `orWhere*` API, `select()`, `orderBy()`, `orderByDesc()`, `limit()`, `offset()`, `groupBy()`, `having()`, `orHaving()`, `distinct()`, and `whereColumn()` are all supported.\n\n**Counting and paginating** work exactly like on `DataTable`, but field names are resolved against the entity's columns and `paginate()` returns hydrated entity instances (loading any `with()` relations):\n\n```typescript\n// Count\nconst total = await User.count()                       // number\nconst active = await User.where('active', true).count() // number\n\n// Paginate — data is User[]\nconst page = await User.where('active', true)\n  .orderBy('name')\n  .with('country')\n  .paginate(15, 2)\n\nconsole.log(page.total, page.lastPage)\nconsole.log(page.data)        // User[] (page 2), each with .country loaded\n```\n\n`paginate()` returns the same metadata shape described in [Paginating — paginate()](#paginating--paginate), with `data` typed as `T[]`.\n\n**Aggregates** work the same way, and this is the point of asking the entity instead of the table: they apply the entity's global scopes (registered from `booted()` with `addGlobalScope`), so they answer *\"the total over the rows you are allowed to see\"* rather than *\"the total in the table\"*.\n\n```typescript\nconst revenue = await Order.sum('amount')                    // number\nconst ticket = await Order.avg('amount')                     // number | null\nconst firstOrder = await Order.min<Date>('createdAt')        // Date | null\n\n// Scope plus the query's own conditions\nconst paid = await Order.where('paid', true).sum('amount')\n\n// Same aggregate, scope lifted\nconst everything = await Order.withoutGlobalScopes().sum('amount')\n```\n\nField names are resolved against the entity's columns, so a property mapped to a different column name (`@Column({ columnName: 'settled_at' }) settledAt`) is aggregated by passing the **property**.\n\n---\n\n### Scoped aggregates & raw projections — toBase()\n\n`get()` hydrates every row through the entity's declared columns. That is right for a row of the table and wrong for a projection: an alias the query invented has nowhere to land, and the real columns were never selected, so this hands back an empty entity rather than a total.\n\n```typescript\n// ✗ Ranking has no `total` column — the alias is dropped on hydration\nconst [row] = await Ranking.select('SUM(points) AS total').get()\nrow.total  // does not exist\n```\n\n`toBase()` is the way down to the underlying `DataTable` **with the global scopes already applied**, so the rows come back raw while the scoping still holds:\n\n```typescript\nconst totals = await (await Ranking.where('userId', userId).toBase())\n  .select('categoryId', 'SUM(points) AS total')\n  .groupBy('categoryId')\n  .get()\n\ntotals[0].total  // as the driver returned it\n```\n\nIt is `async` because a global scope may be asynchronous — one that reads the current session, for instance — so the scopes can only be folded in by awaiting. The `DataTable` you get back is the query's own: keep chaining on it, and do not reuse the `EntityQuery` afterwards.\n\nFor a scalar you do not need it — `sum()` / `avg()` / `min()` / `max()` / `count()` already return one. Use `toBase()` when the result is a **set of rows** that is not a set of entities: grouped aggregates above all.\n\nScoped `HAVING` needs no escape hatch, since `count()` counts groups:\n\n```typescript\n// How many categories has this player scored more than 100 points in?\nconst categories = await Ranking.where('userId', userId)\n  .groupBy('categoryId')\n  .having('SUM(points)', '>', 100)\n  .count()\n```\n\n---\n\n### Saving & deleting\n\nEvery entity inherits the `save()` and `delete()` instance methods from `BaseEntity`:\n\n```typescript\n// INSERT — autoGenerated PK is written back after insert\nconst user = new User()\nuser.name   = 'Alice'\nuser.email  = 'alice@example.com'\nuser.age    = 30\nuser.active = true\nawait user.save()\nconsole.log(user.id)  // populated from lastInsertId\n\n// UPDATE — detected by the presence of a primary key value\nuser.age = 31\nawait user.save()\n\n// DELETE — throws if the primary key is not set\nawait user.delete()\n```\n\n---\n\n### Casts\n\nDeclare `cast` on `@Column` to automatically convert raw DB values when hydrating a row:\n\n| Cast type   | Description                                            |\n|-------------|--------------------------------------------------------|\n| `'number'`  | `Number(value)`                                        |\n| `'boolean'` | `true` for `1`, `'1'`, `'true'`; `false` otherwise    |\n| `'string'`  | `String(value)`                                        |\n| `'json'`    | `JSON.parse(value)` on read, `JSON.stringify` on write |\n| `'date'`    | `new Date(value)`                                      |\n\nBooleans stored as integers (SQLite, MySQL) are handled transparently.\n\n---\n\n### Relationships\n\nUse relationship decorators to declare associations between entities:\n\n```typescript\n// HasOne(related, foreignKey, localKey = 'id')\n// HasMany(related, foreignKey, localKey = 'id')\n// BelongsTo(related, foreignKey, localKey = 'id')\n// HasOneThrough(related, through, foreignKey, throughForeignKey, localKey, throughLocalKey)\n// HasManyThrough(related, through, foreignKey, throughForeignKey, localKey, throughLocalKey)\n\n@Entity({ table: 'countries' })\nclass Country extends BaseEntity {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n\n  @HasMany(() => User, 'countryId')\n  users?: User[]\n\n  // Reach Users' Orders through the Users table\n  @HasManyThrough(() => Order, () => User, 'userId', 'countryId')\n  orders?: Order[]\n}\n```\n\nThe `related` and `through` arguments are lazy callbacks (`() => ClassName`) to avoid circular-dependency issues when models reference each other.\n\n---\n\n### Eager loading — `with()`\n\nPass relation names to `with()` to load related entities in a single extra query per relation (avoids N+1):\n\n```typescript\n// Preload orders for each user\nconst users = await User.with('orders').get()\nusers.forEach(u => console.log(u.orders))  // Order[] attached\n\n// Multiple relations\nconst users = await User.with('orders', 'profile').get()\n\n// Dot-notation for nested eager loading\n// Loads orders → users → countries in 3 total queries\nconst orders = await Order.with('user.country').get()\norders.forEach(o => console.log(o.user.country))\n```\n\n`with()` is chainable after any `where*` or ordering method:\n\n```typescript\nconst users = await User.where('active', 1).with('orders').orderBy('name').get()\n```\n\n---\n\n### Joining via relationships\n\nUse `joinRelationship` / `innerJoinRelationship` / `leftJoinRelationship` to add SQL JOINs derived from relationship definitions:\n\n```typescript\n// INNER JOIN orders ON users.id = orders.userId\nconst users = await User.innerJoinRelationship('orders')\n  .select('users.*', 'COUNT(orders.id) AS orderCount')\n  .groupBy('users.id')\n  .get()\n\n// LEFT JOIN\nconst users = await User.leftJoinRelationship('profile').get()\n```\n\nThese are available as static methods on every Entity and also on `EntityQuery`:\n\n```typescript\nconst query = User.where('active', 1).leftJoinRelationship('profile')\n```\n\n---\n\n### Existence checks — `whereHas` / `orWhereHas`\n\n`whereHas(relation, callback?)` filters the query to only include records that have at least one matching related record. It generates a correlated `WHERE EXISTS (SELECT 1 FROM …)` subquery — no JOIN duplicates, no extra columns needed.\n\n```typescript\n// Users who have at least one order\nconst users = await User.whereHas('orders').get()\n\n// Users who have at least one order for a specific product\nconst users = await User.whereHas('orders', (q) => q.where('product', 'Widget')).get()\n\n// Users who have a profile (hasOne)\nconst users = await User.whereHas('profile').get()\n\n// Countries that have at least one order (hasManyThrough)\nconst countries = await Country.whereHas('orders').get()\n```\n\nThe optional callback receives an `EntityQuery` scoped to the **related** entity with full field-name resolution, so property names and the full `where*` API are available:\n\n```typescript\n// Users with an order totalling more than $50\nconst users = await User.whereHas('orders', (q) =>\n  q.where('amount', '>', 50)\n).get()\n\n// Users with an active order placed this year\nconst users = await User.whereHas('orders', (q) =>\n  q.where('active', 1).where('year', new Date().getFullYear())\n).get()\n```\n\n`orWhereHas` adds the existence check as an OR condition:\n\n```typescript\n// Users who are admins OR have at least one order\nconst users = await User.where('role', 'admin').orWhereHas('orders').get()\n\n// Users named 'Charlie' OR who have a 'Widget' order\nconst users = await User\n  .where('name', 'Charlie')\n  .orWhereHas('orders', (q) => q.where('product', 'Widget'))\n  .get()\n```\n\nBoth methods are available as static methods on every `BaseEntity` subclass and can be chained freely with any other query method:\n\n```typescript\nconst users = await User\n  .where('active', 1)\n  .whereHas('orders')\n  .orderBy('name')\n  .limit(10)\n  .get()\n```\n\nSupported relationship types: `hasOne`, `hasMany`, `belongsTo`, `hasOneThrough`, `hasManyThrough`.\n\n---\n\n### Entities without BaseEntity\n\nExtending `BaseEntity` is optional. Any plain class decorated with `@Entity` and `@Column` works identically — all query, hydration, and persistence logic lives in `EntityRepository`, not in `BaseEntity`. `BaseEntity` is just a thin convenience layer that delegates to the repository.\n\nTo work with a plain entity, obtain its repository via `Repository.get()` and call the same methods on it:\n\n```typescript\nimport { Entity, Column, BelongsTo, HasMany, Repository } from '@neogroup/neorm'\n\n@Entity()\nclass Country {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n\n  @Column()\n  name!: string\n\n  @Column()\n  code!: string\n\n  @HasMany(() => User, 'countryId')\n  users?: User[]\n}\n\n@Entity()\nclass User {\n  @Column({ primaryKey: true, autoGenerated: true })\n  id!: number\n\n  @Column()\n  name!: string\n\n  @Column()\n  countryId!: number\n\n  @BelongsTo(() => Country, 'countryId')\n  country?: Country\n}\n```\n\n**Querying** — call the same fluent API through the repository:\n\n```typescript\nconst repo = Repository.get(User)\n\nconst users  = await repo.get()                          // User[]\nconst user   = await repo.find(1)                        // User | null\nconst admins = await repo.where('role', 'admin').first() // User | null\n\nconst sorted = await repo\n  .where('active', 1)\n  .orderByDesc('name')\n  .limit(20)\n  .get()\n\n// Eager loading, whereHas, joins — all available\nconst users = await repo.with('country').whereHas('orders').get()\n```\n\n**Saving & deleting** — pass the instance to `save()` and `delete()`:\n\n```typescript\nconst repo = Repository.get(User)\n\n// INSERT\nconst user = new User()\nuser.name      = 'Alice'\nuser.countryId = 1\nawait repo.save(user)\nconsole.log(user.id)  // populated from lastInsertId\n\n// UPDATE\nuser.name = 'Alice Updated'\nawait repo.save(user)\n\n// DELETE\nawait repo.delete(user)\n```\n\nBoth approaches — `BaseEntity` subclasses and plain classes — can coexist in the same application and share the same data sources. Choose whichever fits your architecture: `BaseEntity` for the Active Record style, `Repository.get()` for a more explicit, repository-pattern style.\n\n---\n\n## Debug mode\n\nEnable SQL logging on a data source to print every statement and its bindings to the console:\n\n```typescript\nsource.setDebugEnabled(true)\n```\n\nExample output:\n\n```\nSQL: SELECT * FROM users WHERE active = ? AND age > ?;   [\"1\", 18]\n```\n\nRead-only mode prevents any write operations from reaching the database — useful for testing:\n\n```typescript\nsource.setReadonly(true)\n```\n\n---\n\n## Extending the library\n\n### Custom data source\n\nImplement `DataSource` to connect any database engine:\n\n```typescript\nimport { Connection, DataSource } from '@neogroup/neorm'\n\nclass MyConnection implements Connection {\n  async query(sql: string, bindings?: any[]): Promise<any[]> { /* ... */ }\n  async execute(sql: string, bindings?: any[]): Promise<number> { /* ... */ }\n  async lastInsertId(): Promise<number> { /* ... */ }\n  async beginTransaction(): Promise<void> { /* ... */ }\n  async commitTransaction(): Promise<void> { /* ... */ }\n  async rollbackTransaction(): Promise<void> { /* ... */ }\n  async close(): Promise<void> { /* ... */ }\n}\n\nclass MyDataSource extends DataSource {\n  protected async requestConnection(): Promise<Connection> {\n    return new MyConnection(/* ... */)\n  }\n  async close(): Promise<void> { /* ... */ }\n}\n```\n\n### Custom query builder\n\nOverride `DefaultQueryBuilder` to adapt SQL generation for your engine:\n\n```typescript\nimport { DefaultQueryBuilder, Statement, Table } from '@neogroup/neorm'\n\nclass MyQueryBuilder extends DefaultQueryBuilder {\n  protected buildTable(table: Table, statement: Statement) {\n    // e.g. wrap table names in double-brackets for SQL Server\n    statement.sql += typeof table === 'string' ? `[${table}]` : `[${table.name}]`\n  }\n}\n```\n\nPass your custom builder to the data source constructor:\n\n```typescript\nclass MyDataSource extends DataSource {\n  constructor() {\n    super(new MyQueryBuilder())\n  }\n  // ...\n}\n```\n\n---\n\n## Contact\n\nFor bugs or feature requests open an issue on [GitHub](https://github.com/luismanuelamengual/NeORM/issues) or contact the author at luismanuelamengual@gmail.com.\n","readmeFilename":"README.md"}