{"_id":"litedbmodel","_rev":"57-f7eef5316942fba066d49ed863efd209","name":"litedbmodel","dist-tags":{"alpha":"2.1.0","latest":"2.2.7"},"versions":{"0.1.0":{"name":"litedbmodel","version":"0.1.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.1.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"8c1da8f86cf49dadf158b476f286230661f4a858","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.1.0.tgz","fileCount":87,"integrity":"sha512-NQ6+GxTbPwjj8EM5q/aXlcD6mWLWDrp404/15eWulET8Ql7X9K51fheYNSKsZs4y92D1M08HpPwVrOVDICwJug==","signatures":[{"sig":"MEQCIGFqyyqs/tAD20nSxyyv0HaJgZTUe9NSYYgw9lZWKj77AiAJjVG/9pvclMa5HYivd+XDPdoyW/u5N3FM+jau1ULIgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542904},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"354afd1783936dd9a1d276fb92e43a2c478974fa","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.1.0_1767148658152_0.48699249428348157","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"litedbmodel","version":"0.9.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.9.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"9782f2e227284ae4b317997a443d67bac973fe7e","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.9.0.tgz","fileCount":87,"integrity":"sha512-OeIb7Lj1dt0MmcQ7bcfQvVa9KWmcOhRUiyW9+U+kPqAUOgE8kzdz9Pzes4RUXuOHvjdomoUyML45KaNxT8Q6gA==","signatures":[{"sig":"MEYCIQDjjE4+qeDvDKkvTmxBSPxC9UUfmhlAFcFsd4ThgS0WFwIhAIMskyn/viWd4Z2vbx4sV5zynXSv40uYfj4XHGQB/LRo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":542872},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"ce18b2f807043026cbcfe0bcdd58793e752d0b06","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.9.0_1767152219702_0.6241201304649469","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"litedbmodel","version":"0.10.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.10.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"f642389fae2258d0d5de9052880d98dd516db373","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.10.0.tgz","fileCount":87,"integrity":"sha512-KzujJ3VMnqyBnaFdKFd1QsnJMBom/96yMt5WQLfMrwChh91dbg+xbFf9+AqtSnI0PM58yLkHF4FRv2lXIaWxqA==","signatures":[{"sig":"MEUCIQCveOMFvJoXs4urs42B2a8TDdZGSlIlWp7jdnvLbCmPvgIgWgTavS2M5mGzzEx6egvmslCqU/zIy46o79dFGEIxGxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":549982},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"f978f6c172fc88a9b9932da4b3589bec09a6177a","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.10.0_1767157367782_0.946798283717196","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"litedbmodel","version":"0.11.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.11.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"56845d6c9ed58942d4160f1ccb0bc93c28023018","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.11.0.tgz","fileCount":87,"integrity":"sha512-q274Nl/bRbQHCSGKsGAlXJoqvgS6r9kTpnx/3+SX4dedBm7vvKOOK/zNZ12Qe2jlRuIb1Zturir6aXHHvOBINg==","signatures":[{"sig":"MEUCIHCN7usTpCp84vOzhAchqYHuRmG6WymXeEaj99ObJSCBAiEAqMHjCb3meK8KsxhicYL1cBBZeXEAFnCcaq308aDhaTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561779},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"de0b283f7cff24f039514c6524572b21707f6d87","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.11.0_1767166724819_0.03569203233942586","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"litedbmodel","version":"0.12.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.12.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"c635fb04f6dd805b155570e1351632d20dd1e64a","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.12.0.tgz","fileCount":87,"integrity":"sha512-mzSKP1ZArfUn6rN6wLjd9YdWBqVHOoWL1Zz9g/nyBYpGRRxV5xAA47VKA+duGDyCPM1F8vBFihta3MJqrMNAHg==","signatures":[{"sig":"MEYCIQDKk3/1AsJUjfNkQFrhVBf8fD2M1ptcFh1OlJJisaANXQIhAIY7xIH4VPS1uG5/GkNm5neDXlGbQ5Pgev0bdD49W/wv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":577260},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"2ddeba8b26bf2f1a2b8ce563d82c334e9a2e05d5","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.12.0_1767172752187_0.8614130352843334","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"litedbmodel","version":"0.13.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.13.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"2ed1379fe18821a28deacd44d42e2dd69da5d004","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.13.0.tgz","fileCount":87,"integrity":"sha512-4zBNvAmRqe8HW/HgT6Y6EXTow3DRigeocUVm2T7tII46h/exDOHUUI6qQeQ4RuzEgV2lKzvQQJKhuAcc92zM6A==","signatures":[{"sig":"MEUCIFkNhrNZBOnpwyO0iUG8MhfB7Snnz6LFVwNwcr6pry64AiEA8OGeDUO/oJs1Jn9X+ELDLHdbU5g/aQCJjWHooToaPqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":587900},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"af024c35a9acf3bbee94e882300647b8d49ae8bf","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.13.0_1767224886015_0.1165018189378324","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"litedbmodel","version":"0.13.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.13.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"b5b873c533fda236bf4048360137b94159d829cc","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.13.1.tgz","fileCount":87,"integrity":"sha512-wgOhedTvT4Etj/1wv5Twspkwguakb5uxYHJuDM29NBaJxi+s5EB6Tyt+hgOQ6PoUamBdpRZ0znATt8gmZeyzVQ==","signatures":[{"sig":"MEYCIQCXFOJZESp3BM5OF8SeBFZTiELQzcldymFYlCM0Kiz3EQIhAKnrvfqcapo391WpvWZY/VyfeTu+R7NYElLgfA+KDVyC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":588646},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"}},"gitHead":"476db845c6eb842afd6d83652f7ee2a9d936837e","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.13.1_1767230106205_0.5825691492493268","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"litedbmodel","version":"0.14.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.14.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"d4b33d2a5a9c9db8c075ec2539a846ff6e1c40cd","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.14.0.tgz","fileCount":91,"integrity":"sha512-uKtupDEMgJH47RFMIXn83E5YZaZeYwoDv9gf3glL6EKE8z5LNi7WpSj2myJVVwqjRAjdxcuWa1H8vrVfWNpGqw==","signatures":[{"sig":"MEUCIQDqPXhdJ3nc5fh1JWNziaQeOm/8VfBbfmgeLJBuDr+HiAIgUCDOqRZT6rk7nTwy/RqC3JcAzZz7uh8wVvBI3trhHpU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":619569},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"a33fba5f6b806ce3409d86d758169cd3a0269ba5","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.14.0_1767237669732_0.49405813806951304","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"litedbmodel","version":"0.15.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.15.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"c2463b00f2b7e5039d7b76c3f2f34fb72b99f394","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.15.0.tgz","fileCount":91,"integrity":"sha512-bCJSAhdwqn5O8wTQcveFwtc/Ro2HzlFoXC5c/vH/y8wq5mDrsg2N3KkIVOl53r1UfgKqAhXrIUWvk94AWdExPw==","signatures":[{"sig":"MEYCIQD2ooOYGHGeeNY4eWT6YGUz/qE6O1E9tHPnO7MIg4GjqwIhAJzFE9yP5qogWeC/6szBz4tC9zjvC0P1I3TKMGxnLvcd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":660277},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f461a7c8c8f844426d18f2dbf1b62bf3dd10734b","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.15.0_1767273950822_0.41981498152569285","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"litedbmodel","version":"0.16.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.16.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"6a53f6da7944ade9667e05434643353fd3ee06b2","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.16.0.tgz","fileCount":91,"integrity":"sha512-wYhRZMMRI17xlP4fV/A1+A5iw7QMzFPyP/3/y/T4nMRQmyIYz+0iG4ukxOl31JBaCedkle0BzNx+/ryEJNu2XQ==","signatures":[{"sig":"MEQCIEQ2bsKgB6pcckgXWbTpnf9H+2DPCOSw9sLvTRuomk7mAiBvLCj+Pku7JZJPyBxj/UKvpjlsoMFeEDglsNITH3lf7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":660808},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"fc1dc0dc1591afd53866f05409139ab6476413da","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.16.0_1767275797497_0.2280951461301035","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"litedbmodel","version":"0.17.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.17.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"a58bc68705f290ce05f43c00d4fc086a628d68ba","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.17.0.tgz","fileCount":91,"integrity":"sha512-P3YFoKZKit6GtYk0qItI2pCE5q3CJzdrfi2r0F8NIc3P3v9RAfUuZ3uXBAdJR//a3E5TqqT0JH9DKtl8jN7T5w==","signatures":[{"sig":"MEUCIQCRZ4QDtVS8k5y7dtzvvmhlj9mio/UItfp7YU6HcO2WQAIgHxUQzYmlkRjgheKSyJJETfaj/1YAVg6hei4cumaz9AU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668520},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"003c9b69d9fa95186528d76f70531c34e8022afa","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.17.0_1767279748937_0.18954258011396785","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"litedbmodel","version":"0.18.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.18.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"9e7f66296013bbf2ff410f02b6b3e54ae9adff30","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.18.0.tgz","fileCount":91,"integrity":"sha512-R6Jzyazhdn4zHoOaVov7KiobScje16nKckc9Tp1qUCcqFi3RLA3flo/3oaQ6IsQliNQ4ZZRYHFThv8w2b9CJFg==","signatures":[{"sig":"MEQCIFH6P6ynJ7k0jSdInfDjR4KR9z6SJLlsQOFEkeLXNppBAiA9Tg+8IuFEdxY/1pqGkonn27nqJmYxu1uhPhpoA2IVhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":701866},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"7c6b22ad2f9d66d5e17248c127b99f06dc1eb35e","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.18.0_1767321845743_0.28639070684207213","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"litedbmodel","version":"0.19.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"1e5045601c5bb3ab04ce7667495ab5eef4c59579","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.0.tgz","fileCount":91,"integrity":"sha512-x4IqUanVFAC3MTIehrqSGaU6zOns0TX6htt/zdgxcg8j17ElZqmjvokNcN67NdmGjrIoLDPmFrce10D+XKw53g==","signatures":[{"sig":"MEUCIQCTZrd+rXIVJeJpZQTYpFdW9pib97nWYjjXRvkGbhq+6AIgIRSTLDnaUdYthbfB1UoiQ2VlxfYFgL+V15FOGavk1kk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745315},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"c2bef359d2c92316a17dff725d4f6646ffd1353f","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.0_1767329684513_0.5222735001542587","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"litedbmodel","version":"0.19.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"dbe36ec63a21a08f0de3f657ce7b33ff653228d0","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.1.tgz","fileCount":91,"integrity":"sha512-KVs+Jqj7JB5Wqx1Ul35OZ62xh6kYlSU9G7NcIfgOrZc6smGIkBN2Un1EzVey7M9O1xzWnwXbnCsgJCYdTESMaw==","signatures":[{"sig":"MEQCIAbLi3gnOEaySnMPq+A4OdZzgCbbTNyJvAIjhPMxfor3AiAOTkQWOPgPPyxva3+SbnULee19ntZZyrPQpOejXg22sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":745315},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f7f2c67283899c8a49d4c1c43436a2d579303f90","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.1_1767330271367_0.6495407415101302","host":"s3://npm-registry-packages-npm-production"}},"0.19.2":{"name":"litedbmodel","version":"0.19.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"aeabf0cfe38ee4b2dc685a75f74ca2c91a950d67","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.2.tgz","fileCount":91,"integrity":"sha512-mHW54un87K2BrRIy/9hZnbjIedzl65h6xktwOLzEZEANe8ZhPLgLorhBVT+cj8Q36LAruCJKa1y/JoTSetMQkg==","signatures":[{"sig":"MEQCIBiqPNzsSXN/6caf7Ov63oZD802dKs9aunAYPt5q/ddzAiBN5edPH1z+pP1eTvtAQARcM3yH/JVG/JJScjryw8Qlig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":749536},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f2f59a8e3b22bf7259f9b83e68beaf6867e167c0","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.2_1767330432293_0.015490922170078747","host":"s3://npm-registry-packages-npm-production"}},"0.19.3":{"name":"litedbmodel","version":"0.19.3","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.3","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"3bb1d096ecf33c12ee1c41272dcb081268bb525b","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.3.tgz","fileCount":91,"integrity":"sha512-JmUPwg2ilrnwRFbHJ01LTo4M57rOL7zfrsJkCi37U4D0FnvvBzxtuQa+KkjSZ+ujd42vS6S0FCx52c4FvR8wmw==","signatures":[{"sig":"MEQCIGV7A72VmqOYjJKMRoNvz7qWh/cG75su+8Ojn5LipLV3AiBL6Sxl1g4UpPR/nthrD6/pzKPZTaVbHIejzP/7WE4E/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":750476},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"0698b517ddf2200e624518ba4256f9c11b467a31","scripts":{"lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.3_1767330620725_0.08768359383188962","host":"s3://npm-registry-packages-npm-production"}},"0.19.4":{"name":"litedbmodel","version":"0.19.4","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.4","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"0c719ed83c08e53ad4af73a497ca95b961447148","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.4.tgz","fileCount":91,"integrity":"sha512-86+/qbFMhglDFiFsAXKQS3aL4eAdPjIZ3GFnCRSEPyCJTNfuVGxZnBurj7O1kcOesYsi8PX/MN7PWbcyo6gSKQ==","signatures":[{"sig":"MEUCIF/ta5SmnRB3pUyyGtd3vjBZBVKu2aCJblpYRuuPwehNAiEA3knL+DfhR/n87ZgB2FdT3uFvUrk8vutfb9Nbz1yguPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762297},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"bb5981142085d505852c2c0578ed893379172f9c","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.4_1767835528834_0.1266267088810682","host":"s3://npm-registry-packages-npm-production"}},"0.19.5":{"name":"litedbmodel","version":"0.19.5","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.5","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"1a3d71333d908f7ff2a6c85cc0efa9aa47f24562","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.5.tgz","fileCount":141,"integrity":"sha512-u5RYeAzaDrfXHWly7WGMUJi8068hsyc0lV7oIVDIQT8u1xMoXXBg7cyUX7J8Yn8su3E5Etzis0lesa3ZdPAX3A==","signatures":[{"sig":"MEQCIB41fyLA5BqvlcyiAOMdzLyUHEZIXNfnu5p8Ap3d3RD6AiBFElaqHAmWkRBviWhlImMIuJK1y4uNS3VxetgbQdj1aA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":985193},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"8591bb082b8f651f9b09c779fc43f7f483b785a7","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.5_1767835925257_0.2724548738143402","host":"s3://npm-registry-packages-npm-production"}},"0.19.6":{"name":"litedbmodel","version":"0.19.6","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.6","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"7d0c25eb31c1c01a32fb45fec0a184f038d83fee","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.6.tgz","fileCount":141,"integrity":"sha512-oTRngseev3OjOytmThpQQakqfj0oIsfBa8ohpV8X/17NtKF86qO+4vhDw6f6HtmHazQvQhP5gZFYRVx5MtG6qQ==","signatures":[{"sig":"MEUCIQC9tA+Wx1pOcUW6bgOHdFkyHT/GRkI1SCAyBqOfAv1BUwIge6/lrngCtOJrnCVjlQ96Rfhz+ZyfNyk2XeYkQ2JnChY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020057},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"657991f72d4a608e26dc8e3227ab20e06c771b92","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.6_1767971852270_0.5327302964173815","host":"s3://npm-registry-packages-npm-production"}},"0.19.7":{"name":"litedbmodel","version":"0.19.7","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.19.7","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"182981edde906eccc5382a22f6a6225e9cd283e5","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.19.7.tgz","fileCount":145,"integrity":"sha512-HyFUIKG1dzZSbt90HbcBrEWE1r9TtRNSfI/99zafiIr3/VpKSTWuh6YOA0JNaf9U4X3wytDR5tZU5nT3irLa5w==","signatures":[{"sig":"MEUCICatS1UTShgdGzT7t2neVUwrCT5xxpwHROmPVVTfm9GjAiEA29ThCZWck9qXjLo0WTSWuxUt3gtzHiB+ir0MDbvRGY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1023490},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"d81ee6698c1a7ca166ee81647bbe6ba6ef867ca0","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.19.7_1767972180219_0.5677406475382425","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"litedbmodel","version":"0.20.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.20.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"06b314bc9fc9498c9acec13ec962f4d5b7d3a485","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.20.0.tgz","fileCount":145,"integrity":"sha512-ROzMv/vwFmnkr2dvUsPM6aAxddMWa1ITgWaiZP9N4eCaIQnNH5TL3oF6Zf7d73cj4miT3zBNxY6htyfHnD5new==","signatures":[{"sig":"MEUCIQDKn4bWwM0RBURAg3m4cVZdMd5BVnuZphTgMkHH8i2GFAIgdP9YmeraZGLr7y5boIwZtB6EnYJgsuwKRW2/HO8UZYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1028516},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"13863ad1bcd8c5dfe6f371686a20932c8fcf81d8","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.20.0_1767975042698_0.2021175419503496","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"litedbmodel","version":"0.20.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.20.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"cb61c66fb4414a0956b29edd5f7fe49c7e9a5c2e","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.20.1.tgz","fileCount":145,"integrity":"sha512-usymYjQj550hMqaAdYrqwrjv4CcqoMwCNHmgBjYF4KWZaQer5+BaRS7CyELJ+jpRmd1YGapXJdxlxP/0u8PTDw==","signatures":[{"sig":"MEUCIQDz8EbUaaO816r0IfVXlDajmLJTjk4p16aokSd1kG3kbwIgVHGrRjezzgwoLNyd1rWiT1OAKYfN293ysN5IsOT7aB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1034573},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f59bd3f900a78dc4d2119e2e71e4d905c0c68bf9","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.20.1_1768006856189_0.28696413384077357","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"litedbmodel","version":"0.21.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.21.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"9650b95adc083470770f566a722dcd4eeb1738f8","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.21.0.tgz","fileCount":156,"integrity":"sha512-NIYiZB031we2ABmeVY+Oz71kJpUFa5CyxCcjD25gcWqVR8gp8OCvhe2yx7TtLDmniueg4PdzyrooCrqBcKtG6Q==","signatures":[{"sig":"MEQCIARUcmCODq49/eBAXoaV7QKiFTFeJGP6KSgQuNeTtIrHAiBbDU0tU+01yqxKoTxnCreYp+u3jPAWk7ryZ13gm5I39g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1095280},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"686b773d4a353c61207f1f14fac4a7a1a46e6d19","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.21.0_1768025988937_0.5762897008217263","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"litedbmodel","version":"0.22.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.22.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"8440f35b8cadbeea98c1b65369cd8bf279aee558","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.22.0.tgz","fileCount":156,"integrity":"sha512-3t1yEFRknTTmceVxZCE3qcYRVsthhX9b7GFTJb0VYTyeZVM7J4NIPDN4Ql1ARPRUgA1oUHBhAtSKQIw35YZjMQ==","signatures":[{"sig":"MEUCIQCoWB0cF4ERBpNe7m/6XjkE4eGS0EJ0Cs8rDcI1sp+H8gIgRMLn8vSCXXjDDS21ZuBnK7VPacjpa1gQj3nW9wGZrVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1111482},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"360827d72d8a5d9f63bcfbb2b04ec1b5a94b95f4","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.22.0_1768113045437_0.1016756934373908","host":"s3://npm-registry-packages-npm-production"}},"0.22.1":{"name":"litedbmodel","version":"0.22.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.22.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"be26a6a3a684b341da9f9ea6eeea8307f1b6b474","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.22.1.tgz","fileCount":156,"integrity":"sha512-PBtulzCN1HuH3Qpvo4yhOMtYULkJT72CPnD2GY1d1yxKsADsSAai0Cs0VXhy/Xf1V/3BstMr/QTFxuP1udIGdw==","signatures":[{"sig":"MEUCIQDfQbp07PQBc5M62rQ1figglaIzhQJObJATK3+8OND9GQIgDBg0TkyN0Ikp1Zsf9Ova8Mc9dCrPdaiXTzQnaxNH/5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1117378},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"d0cdb63a0449920c65c2b90ab6b1890529ad87e6","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.22.1_1768366015597_0.8390714351424493","host":"s3://npm-registry-packages-npm-production"}},"0.22.2":{"name":"litedbmodel","version":"0.22.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.22.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"1bee03999af823d48a18069be60a81a6749af04d","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.22.2.tgz","fileCount":156,"integrity":"sha512-kqSoUWaUjgE/VCX9zCHasPDfAY1K5uRvsHuKj3i1rLL0eFT36CFIdKFLK6Ou6KPDEapoN8+Op6zsBBW+MglujQ==","signatures":[{"sig":"MEUCIEwUOHeCop1rX/d3R5fmTJvFezJyJ/0Qq6IJLB5W0tuMAiEA097fNtW8veJ3wyViHBwhJNCKOS3MBDzW/CXbDe7yuJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1119412},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"af598d86804c0bc3e0b740b76a7118c71f446664","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.19.6","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.22.2_1768367239654_0.32607056555317704","host":"s3://npm-registry-packages-npm-production"}},"0.22.3":{"name":"litedbmodel","version":"0.22.3","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@0.22.3","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"b1f037fc31b7cde75a728fa73a1d33c1d398e174","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-0.22.3.tgz","fileCount":156,"integrity":"sha512-e6vrJFsoMUrLaNSIjWDgqKzlsy8JWsHbXLkpKfOfLP7R8D4VRBO/PhtDlCwA6k7KyF5imu1bgts8pSdhR63Cig==","signatures":[{"sig":"MEQCIDhFjz0/nLcsNPDEmzb0wfPxqpX8F1wB11e9z4XeXH7bAiAq+nMyscel/j2BCug3h9d9frIUvzhieIsUo3oduzsWQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1120868},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"e573e13bc6cc74993a9f9444b07679c7e3bd2592","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_0.22.3_1772245568608_0.5626490412054264","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"litedbmodel","version":"1.0.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.0.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"59ba9f100dc26c0ed353727b5a199c27ac49f2c4","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.0.0.tgz","fileCount":161,"integrity":"sha512-fAeWxEkFzZcQ//ugDg2c3cGa5NU7C1KgiCuXJKJUzf2l2BqHu4A8I8qPVbMpsihlUNXMqdKQIaRD1H7A5T9F4A==","signatures":[{"sig":"MEUCIQCIjRY47OS9dkQWfDdJ137z8YokNGe8XRVZjqVgHierOgIgT4qmJotpuI++N5+0tzZ8CFzSrV4aXMTblSNflI3wH40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1160179},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f0a528660edb9e196d8a27e81e8edc5727973adf","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.0.0_1772873806182_0.4131733617267299","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"litedbmodel","version":"1.0.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.0.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"5a62fddcc4e461d5fe7d6a633165244f54c9fd4c","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.0.1.tgz","fileCount":161,"integrity":"sha512-L5b5mL8wYbdwm/vgtJcy/rbzlO8SgvG2RqQyqMvvrXYUtRngixCtNsANLUFGYKO8q7inwm/EMDvA1ayBluCXaQ==","signatures":[{"sig":"MEUCICcEq6WfltVZjRiA1Jawx1VjrTIruJBofDk8Irxa+vNaAiEAp1vQ8dWgPNytZCzvrAKQPYoheguCdtuHpbrUakAwtok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1167218},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"1ad3c431a2d7713724272679371c8647bc69e599","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.0","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.0.1_1772896709160_0.8788087231618582","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"litedbmodel","version":"1.1.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.1.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"8c18833de3e78925eb2f50ea398a46462818306f","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.1.0.tgz","fileCount":177,"integrity":"sha512-gos7TM5v1/rizrHyvGe9BOOg5eWoOD+Ocmd0dA0B3KofMoglUrIF/GtuKlY2npXhcbc3aTVQ8lfT5wKxj9lvbA==","signatures":[{"sig":"MEYCIQCVlfAUP+4T5RQTwxUTkL1XrBTfzXWHDkhsyEcu8mMrAgIhAI10bixmdohWrwAX/qmYOGtxpqU6i3tMERMcyJ+l9Jt4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1199351},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"3deb11e95ac7fc6ff5f3fbd8239078025fc26106","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.1.0_1774008415121_0.8133702276178689","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"litedbmodel","version":"1.1.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.1.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"1efa9563712b3799ef4719a0f9abd900b8a64268","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.1.1.tgz","fileCount":177,"integrity":"sha512-SVR+KF3wW7KsUvxd3ijg6tWoGwmavHJbLFcsJVjCfWf7rTuS+QTIElgw/eAhipkWMp8VjtJjb+eUuM+hGG/jXw==","signatures":[{"sig":"MEUCIE9B8b9+t+bLv8HM9nmgHttnbZ/vreEsQPdJUivO9lJjAiEA1I2o51wxxt6+E7c9gv4j81NrlCaAKGNp2d4yqV+lVt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200669},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"50678f5acc2f74a07ea11d451e0bd01c7a6f31ae","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.1.1_1774009452402_0.1700764486612063","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"litedbmodel","version":"1.1.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.1.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"2e144434f2483f42bdd77aeed388da6c57f1d530","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.1.2.tgz","fileCount":177,"integrity":"sha512-GqnZG3rS0ImoPZNo7a7gizdpqA/MQoMTmbJERixUhAFlKTZBSOLe6p5jKSgDkVzrB2tBpI/WCmSPVEMEgJsz2Q==","signatures":[{"sig":"MEUCIQC5k18BzBPTk5P51BwWzQ6QzHwt+z97UKc/JnvpeAJzfwIgGAl/tMU4mRuGHrjxejjfhLLXX4N0PbdUmlByxE9WvWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200739},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"2e9f123234b0940657832a7908382f20b8e30ecc","scripts":{"docs":"typedoc","lint":"eslint src --ext .ts","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.1","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^8.54.0","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^1.0.0","embedoc":"^0.9.1","esbuild":"^0.27.2","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","@vitest/coverage-v8":"^1.6.1","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.1.2_1774011257081_0.6178706461311247","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"litedbmodel","version":"1.2.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"fdd1bf182191b85c9f9d3bd1f08e0db6d62814ec","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.0.tgz","fileCount":177,"integrity":"sha512-/lmStAvDXTvvdpPY0Bvjf8ojCOgFPJusksFFHG83jFzztL72QzU+TopOgVGJi9yPbjyk+uYWINyojLOpCa0Lmw==","signatures":[{"sig":"MEYCIQCACH/5+Nl9JZUSshajRR4ykNh+UHyU5Wjl+v7xaFNGuQIhAIQ5P0NFgBnD57eiXP5GTp5PP7nv5SW9A5v1tPTOvCip","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200159},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"ad10f7738d96ab1a5a1f0b86c65ed7dea0c8dd17","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.0_1779835079478_0.6841378103854825","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"litedbmodel","version":"1.2.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"6f9efb6ef6fb5a47fbcde4b9a2d4be9e540997a3","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.1.tgz","fileCount":177,"integrity":"sha512-Hs67dBnZfNKpPQ+D4g2G41ONtkm1TNUzNL/6/oORWUVQ46iy6VPO7wc/mQL4UnrjIZK9o9Z7ShgnnAfd4cT86w==","signatures":[{"sig":"MEQCIFf+RYW59b990thXnXCo75WndZ0xHWMAHiudQhXAePr5AiA/6vD3z4FGAxwTg7jI514RCG1zpOASnqT7IIax/h7dWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200159},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"48742823fd6d8a9f0fa0a6b43c89fdb8d538d457","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.1_1779836404910_0.9022901114914754","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"litedbmodel","version":"1.2.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"8be6fc9648eecd1d2fbe24db2538544ee8086eae","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.2.tgz","fileCount":177,"integrity":"sha512-hnMYuvjhGebl1W2YCIY/W7F1zxWptFKuk9cr5UoD1L4TKy2H2W9A0jwaShEoJFRxFeqKRKaAOwZuF3u881abiA==","signatures":[{"sig":"MEYCIQDvkS/ukpy6Agq7U3saqjPZ9gbIM09yZGL7OTHzh6NBfgIhALbGz8VQcrQ/YJm7n+pNxL2KeE8PgRkvOkpFLqPM+YHr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200159},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"a807e21bd65a6d35fbeecb98b62784165f39dde0","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.2_1779841988954_0.05319792188727823","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"litedbmodel","version":"1.2.3","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.3","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"aa15c32e42086b48e972412ebe32b4ffc01c877b","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.3.tgz","fileCount":177,"integrity":"sha512-fDTDCoKeRmfoa3ElG9XDyvYaalUv9ZRTHddtHEsfXIVX32YsBAfCo6/Jf+OuS21piMREmLA8iVSn0xckzfYWog==","signatures":[{"sig":"MEYCIQCY/KHA9bgrSbBQ7awASN8YJfg/yI8UsTmgYHZa5cRyTgIhAKGJaK/6Su6YYmurLZceyOOx7lyAcRlSNvmyD6G7AZLu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200159},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"eea16e9f7bf4f70522d1b209af32c1a602a5d83c","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.3_1779852513804_0.6438308300772435","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"litedbmodel","version":"1.2.4","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.4","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"82206bc4cf0bd362c4215ab3ac90e058e9a68610","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.4.tgz","fileCount":177,"integrity":"sha512-K10Cy41gvZwj6/p54l/H9nf4KkqjJ0A3n0+dJ6fwjwL+82YVXFcxpwuWUyo2FfgF64sakz0jJ3bQQ9PaO2lyXw==","signatures":[{"sig":"MEYCIQD7AYMELyTVcZAO3Qy8JNsIivVpmaW8GWYp6Nn5P05MzQIhAKOjTqzGna6AA3OvNnP6zhpv+Vs3YpM5J2JQCzSw4aTt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200159},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"cc06d9d108e6de4bb737a00591d7fcd3fb8c8932","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"20.20.2","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.4_1779852787487_0.0690235455358994","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"litedbmodel","version":"1.2.5","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.5","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"c5a20195b5f66c1049563e6d2028ba15244260ee","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.5.tgz","fileCount":177,"integrity":"sha512-MTn+NS+bgd0jeDIZJaXhsskNV58suzSs477wiivx0tyn/Z98qhkE5ihw9sbERHiJz7EzIZ4N4MosRJ43diILSg==","signatures":[{"sig":"MEQCIFgsKH+rpza6BfgFbNlOilGj9pzASAxrXPjrJufwkV3YAiAumdJFiP2svNO7WQGBog6bKun6mz79rS1wg7nTmjU2KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200499},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"6885b8b6e080b70177f5953d3e3fdaf7e6c59ac4","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.5_1780340525251_0.598810439072998","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"litedbmodel","version":"1.2.6","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.6","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"657d873e1ba83459ac84d0cab8cc6394dd1202fb","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.6.tgz","fileCount":177,"integrity":"sha512-j8Ygr0BfBOsKYcsTQhrY2JR4V4tPK9jzwYj0IHZF6inrYhgTdpZKeeFaJDSoBC22ZgSx8rA1dzm5ZNyycdQK4A==","signatures":[{"sig":"MEUCIBN9N6/EA4vOIimW2LvxJgySuVxweSypUQa7p56AoTz7AiEAu0YBOK94s/qTHqbcQYbjYTVUXFKONhFQxQDGMOEm/pE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1201569},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"be54d41896a77abc1796214a0c70cedb7fc131bc","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.6_1780347336865_0.9908894301782694","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"litedbmodel","version":"1.2.7","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.7","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"f8c2bbf36702219c93db73879eb64d1fbbb208f2","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.7.tgz","fileCount":181,"integrity":"sha512-o8AVAE3O43UYrbZ47E1xb7VImhEAjPlxeq8q7m3+Iopb/6Ss6FY++5avX/bvpUh+FcSvmaZ2kuQmkaZQ5HIGXw==","signatures":[{"sig":"MEYCIQDd+9rwdpx0HW/Nr4skaimnMP71t9TUKoqxpKAOaQWWTwIhAPFaiwtuU4NB7LwoAxTlBshetJEMTeOAv9HcBPSTby5t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1217781},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f215a1a688047d5c2805df5d9e7ef950ab2d41b1","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.7_1780371786583_0.8739083976384017","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"litedbmodel","version":"1.2.8","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.8","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"1e047553f01390eab5f7f8ded340d8f0cd73bda6","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.8.tgz","fileCount":182,"integrity":"sha512-9iZ03MZ9g3uSe2HqdOzgTXnNX/RJBFhwfm+vHCay7jjiq+IRgcWwgwx8apmQ4r/LnYyIy4N+sR8wf+JKc0ZVYA==","signatures":[{"sig":"MEUCIDDK78B97yXfmkMyX7dJVNcPnQlqs7n8Eq4hriYx8nJ6AiEA3rQ5e3IFw59ZCyAbJ7CgdZV4xCw9723vCnSk8kVlbL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222730},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"171f4d76f4c1c0e9c743251d6601fa4a56969dea","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.27.2","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.8_1781924160371_0.8842114951324784","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"litedbmodel","version":"1.2.9","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.9","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"2001d1934cadfa8455f3da5ae0556a788fdab892","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.9.tgz","fileCount":182,"integrity":"sha512-djNEfa4Sym5BXRiBPV7bF/Ac323zt1gFx5UvgtDmsk1Q0iRFjQONxUOQZlnnAZbjXjUDuKCEtoT29mxWew2fyw==","signatures":[{"sig":"MEUCIE8VtBgPEtr8dkQB3FboJjLLVZxQvbaOTixHPVOcL2ZEAiEAqZ15bleqYOAN0L+U2EMEcOWj2hnKutNhKN7y0BvDLMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222776},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"73e6fd167d0b713ff0822106b9920d3d00fc109c","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.9_1781925640903_0.34893381452064","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"litedbmodel","version":"1.2.10","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@1.2.10","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel.ts#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel.ts/issues"},"dist":{"shasum":"84e1d3eb03330cc933bbb46a659194bf9344fead","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-1.2.10.tgz","fileCount":182,"integrity":"sha512-JiQj5FCVKRoDg3ReGSiyu2304jAkCvrPSrJ9073vF7oEu9x+01qW5g0uOqRaEGXhBCgLOHQ4Sws+6Oy4v7pZUw==","signatures":[{"sig":"MEQCIHkcDUMq+LNQiH96z3Sd0+Ceabvu6pgYoZXeaoZsQQ1nAiBAq83kJHXpTKWI6sT3xNOelpY5DNCT8DvlObH0Jwd1oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222777},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"5a3c93310e153a94d22365692f94e7ec52e8d907","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:coverage":"vitest run --coverage","prepublishOnly":"npm run clean && npm run build","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.ts.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.22.3","dependencies":{"reflect-metadata":"^0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_1.2.10_1781933310099_0.7095759482413511","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"litedbmodel","version":"2.0.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.0.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"90501f7ea12f38524e7541060617f92b3245cb8c","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.0.0.tgz","fileCount":263,"integrity":"sha512-kFGRPmAjVpabWXZDr9F4Z7s7xsxdVH27+Q5Ai/u6BkRp4wRgMG7ZHnb1WdhQF35kFEXae1clUeqwajrV39wJnQ==","signatures":[{"sig":"MEUCIQD6quoFVhl6i7mYLCii8Jck1c7UTsg9kkg48CxQ4FlkegIgC9DI8xHpxSLZvPSlJBF64Mle7pNJtwLEmXlvn9IYBQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1988418},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"f78ec2c2f69157a5eb0394aa8a023592e31fb7d2","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","conformance:run":"npm run build:scp && tsx conformance/vectors-run.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","conformance:codegen":"npm run build:scp && tsx conformance/codegen/codegen-runner.ts","conformance:vectors":"npm run build:scp && tsx conformance/vectors-runner.ts","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.0.0_1783639048023_0.9519287027481285","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"litedbmodel","version":"2.0.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.0.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"947631c13561356eed06642289ae5ebbcd57b04d","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.0.1.tgz","fileCount":318,"integrity":"sha512-N4DSTM2No3JOV5thvm9HCjXupVw7NPrwHEBC+fqEalAzbZ3emRASDwcoLN0cAp1qTJDrWkbs6c4Ps7qGdXF+iA==","signatures":[{"sig":"MEUCIQCxDOM/n2BrkwIKFV3Utz1YVtBN70DxWhmRvEO50BG9CgIgZ+04T/1M4abVYf+a1wK3FVtRE6sAnRMqyKH7Xv5ruYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2779855},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"0a59cac6c51034cab20331a78594c20aef0b5bdc","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","conformance:run":"npm run build:scp && tsx conformance/vectors-run.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","conformance:codegen":"npm run build:scp && tsx conformance/codegen/codegen-runner.ts","conformance:vectors":"npm run build:scp && tsx conformance/vectors-runner.ts","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.2.3"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.0.1_1783738084441_0.48055584798748585","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"litedbmodel","version":"2.0.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.0.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"452e3150811c690155400d71485ab38731f28a04","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.0.2.tgz","fileCount":330,"integrity":"sha512-nyj7cKsQ7K29vJyTpQYI9vmVtyqOh13ez7mD4gF3RqxG0R1Dwqyi3d9E1kMg9zGlFsUejCO3lREFFtMyQiDdPw==","signatures":[{"sig":"MEYCIQCoXPNuY74YqSSApRsn87Uyo10zOARqFHxFVZM5rWCZnwIhAIC2jP5nRvu3dJup4tKuIhz56MRoCdR0yz61GVGFj0QE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3242465},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"a420c49151b10dcbfee5157b88c4dd3e07677d94","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","conformance:run":"npm run build:scp && tsx conformance/vectors-run.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","conformance:codegen":"npm run build:scp && tsx conformance/codegen/codegen-runner.ts","conformance:vectors":"npm run build:scp && tsx conformance/vectors-runner.ts","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.0.2_1783940860283_0.5834714415250848","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"litedbmodel","version":"2.1.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.1.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"fbc308138665e76515fb929d5165a7f87011a535","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.1.0.tgz","fileCount":326,"integrity":"sha512-wYZWrTVXri0q2XDomnlZRSQ+X8Z9QaUAmxhw5sxhq9L8qICeCWX27DpL8fgOt1dR4fqmBTnBfeGAk7GWOWZgDA==","signatures":[{"sig":"MEUCIA6kWjkXxlux7Q6v5jq9bXCfGCSRB/wbIYBDg7CoIYmHAiEAuDdCBbREifDHz0hs2k9JL3wi/Pikna0Uh6/kjFOAVV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3297628},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"3118aa151ba735cde1b9088835b1fe0ed7e70c0e","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","parity:capture":"TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","parity:execute":"npm run build:scp && TEST_DB_HOST=localhost TEST_DB_PORT=5433 TEST_MYSQL_PORT=3307 vitest run test/parity/orm-execute-parity.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","conformance:run":"npm run build:scp && tsx conformance/vectors-run.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","conformance:codegen":"npm run build:scp && tsx conformance/codegen/codegen-runner.ts","conformance:vectors":"npm run build:scp && tsx conformance/vectors-runner.ts","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","parity:execute:docker":"npm run docker:livedb:up && sleep 5 && npm run parity:execute; e=$?; npm run docker:livedb:down; exit $e","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","bench:coverage:roundtrip":"npm run build:scp && tsx benchmark/crosslang/coverage-roundtrip.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","bench:coverage:roundtrip:docker":"npm run docker:livedb:up && sleep 5 && npm run bench:coverage:roundtrip; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.2.0"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.8.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.1.0_1784155129472_0.8967165272626896","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"litedbmodel","version":"2.2.0","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.0","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"2169bc153cb599efae33f9e46d5801339fb09b62","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.0.tgz","fileCount":355,"integrity":"sha512-scbq04ErBxrsz2Yx4dyWkthYlycpcSSyZ5RnZvo4ixgUYBBBj4u9vGkWssxFyXDq4ygIFX5ykze2dPEL1qes+g==","signatures":[{"sig":"MEQCIDKFETCTmWANCp5FkGZMgDzrVEHScUKqL7jHQR80RacDAiA6q9RkSVVpqtoyvcuYFYT4lRFpYQ/6UcoDj6FIboqbFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3595924},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"844849e01718fe8c62d634b6ae6a21ebd4bb7abf","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","parity:capture":"TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.17"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.0_1785240377305_0.8530549928156927","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"litedbmodel","version":"2.2.1","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.1","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"205d706243f960226e8ea61939520903098c04e6","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.1.tgz","fileCount":355,"integrity":"sha512-FMRRoyKi6WIBoHYhDCBZOFBzmNOnrMgiSeG8EL3zvF8ocnFeyqKi+aOg78MyQQrQik4MG0jQB4Do8f1y3cvLwg==","signatures":[{"sig":"MEUCIDjHWIq8hYZi17rk4HsOEoULZhyY1qSBFj7nbQrL4vosAiEAllzJO6Gp/1dotA9iX8iBoOgK6JlcpC8foftgXHE0rM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3599407},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"4cbc7bf6b20a8e93f7211c5a3c2c77c77efef504","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","parity:capture":"TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.17"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.1_1785285367643_0.677582797150428","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"litedbmodel","version":"2.2.2","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.2","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"a7492b9dd74f4b699839f54790848f5701ee5474","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.2.tgz","fileCount":355,"integrity":"sha512-+clu6g6OGLfiUTjj9H0wXQV8wBsEJdL/0wExn7uQS5fSRfMBmiUuLWqsaF6N/ZANdrNk+imur242Po8dYp07ow==","signatures":[{"sig":"MEQCIDU788lV6ZlT+5ffrW9rvGYz3ebNDHzE6uWlJo3t6GxrAiB7UsMyBWQU2yH++VlmtxyzgPGyRdJuHhe1DPxQHIhmZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3607269},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"153c32236089a4fc4e0ee96baa09ec94886c3d7a","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","test:ci":"vitest run test/unit","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","parity:capture":"TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.18"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.2_1785302919852_0.018163205029059437","host":"s3://npm-registry-packages-npm-production"}},"2.2.3":{"name":"litedbmodel","version":"2.2.3","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.3","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"49e92ec4b40d40ced07d7be22100e1f0adf6f09f","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.3.tgz","fileCount":345,"integrity":"sha512-haVPPXLe2fqQ8i2DGlXUBwh11l4hJ9rzeApkVyzJQ1viI5jwwNh91UkELfYk2O5lCVpRakRECKdRBBQ4Vsyrlw==","signatures":[{"sig":"MEUCIQDUXiaVIhGRDTluJ37XawNeTlvqAVpVJe6XjdRCrXZwpAIgG/Vai588i6z9Wm4wsgHLo7WVruvSG8dhUtd2k41m/fg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3460427},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"6f8866a7516be61248c45adef32ffb0fb63aa7c3","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","go:test":"node scripts/check-go-test-skips.mjs","py:test":"node scripts/check-python-test-skips.mjs","ts:test":"node scripts/check-ts-test-skips.mjs","php:test":"node scripts/check-php-test-skips.mjs","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","rust:test":"node scripts/check-rust-test-skips.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","spec:check":"node scripts/check-spec-refs.mjs","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","types:check":"node scripts/check-test-types.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","go:fmt:check":"node scripts/check-go-fmt.mjs","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","tracked:check":"node scripts/check-tracked-files.mjs","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","parity:capture":"PARITY_CAPTURE_WRITE=1 TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","go:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd go && exec go run ./conformance/livedb --check-coverage'","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","rust:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd rust && exec cargo run --quiet -p livedb_runner --features livedb -- --check-coverage'","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"npm run docker:up && sleep 3 && npm run test:integration; npm run docker:down","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","conformance:dispatch:check":"npm run go:dispatch:check && npm run rust:dispatch:check"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.18"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.3_1785473729781_0.12299780784194425","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"litedbmodel","version":"2.2.4","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.4","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"661b664c54428e77b7df1abc364a0cbaf087f81c","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.4.tgz","fileCount":348,"integrity":"sha512-rDpdcD1G5JrftyQ4/0F3kioFGVjOc2ziZnGbJ7MbH/z+qLb0DgfIp9YiVCHHanV49QOS6M6CxYr+sALmjH9/4A==","signatures":[{"sig":"MEYCIQDLiF6cd+1//HJaS+2IH2UmZyNB5Z4IrVxpWiugOsuYEgIhAI6Udy8XXngJoN2eAs9lBMdTjJbmLKyaHLHIbmKElVyp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3480420},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"7435f11922881f7766540b14a842abc91819cd4f","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","verify":"node scripts/verify-local.mjs","go:test":"node scripts/check-go-test-skips.mjs","py:test":"node scripts/check-python-test-skips.mjs","ts:test":"node scripts/check-ts-test-skips.mjs","php:test":"node scripts/check-php-test-skips.mjs","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","rust:test":"node scripts/check-rust-test-skips.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","spec:check":"node scripts/check-spec-refs.mjs","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","types:check":"node scripts/check-typechecked-trees.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","go:fmt:check":"node scripts/check-go-fmt.mjs","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","tracked:check":"node scripts/check-tracked-files.mjs","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","deps:installed":"node scripts/check-installed-deps.mjs","parity:capture":"PARITY_CAPTURE_WRITE=1 TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","docs:bench:check":"node scripts/check-bench-docs.mjs","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","go:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd go && exec go run ./conformance/livedb --check-coverage'","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","rust:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd rust && exec cargo run --quiet -p livedb_runner --features livedb -- --check-coverage'","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"docker compose -f docker-compose.test.yml run --rm --build test-integration; e=$?; npm run docker:down; exit $e","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","conformance:dispatch:check":"npm run go:dispatch:check && npm run rust:dispatch:check"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.18"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","js-yaml":"4.3.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.4_1785563808010_0.19635436017666885","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"litedbmodel","version":"2.2.5","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.5","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"0bcd4e233fb244c6bb34f7ff6f39382ebebd8115","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.5.tgz","fileCount":348,"integrity":"sha512-Ii+46dvQ41sHLDTnJg8uAII8bihR2r/52ruqgUKVav/vwJu4Mhj1cgb1PWYdyMx8oW/BwPXwvi1BqkyNlfhKDA==","signatures":[{"sig":"MEUCIC2JxTEhcFnmFNiQsbxlsaShFJnTSflDUI2aLQt26DOgAiEA9XT6YJ6enRQk1xPaeqeU6Bb0GV+aytw2uNfDO12TvxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3480420},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"b6f0b87a33de50d6d2bfcb3460f4c7ce4194b7d6","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","verify":"node scripts/verify-local.mjs","go:test":"node scripts/check-go-test-skips.mjs","py:test":"node scripts/check-python-test-skips.mjs","ts:test":"node scripts/check-ts-test-skips.mjs","php:test":"node scripts/check-php-test-skips.mjs","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","rust:test":"node scripts/check-rust-test-skips.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","spec:check":"node scripts/check-spec-refs.mjs","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","types:check":"node scripts/check-typechecked-trees.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","go:fmt:check":"node scripts/check-go-fmt.mjs","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","tracked:check":"node scripts/check-tracked-files.mjs","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","deps:installed":"node scripts/check-installed-deps.mjs","parity:capture":"PARITY_CAPTURE_WRITE=1 TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","docs:bench:check":"node scripts/check-bench-docs.mjs","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","go:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd go && exec go run ./conformance/livedb --check-coverage'","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","rust:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd rust && exec cargo run --quiet -p livedb_runner --features livedb -- --check-coverage'","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"docker compose -f docker-compose.test.yml run --rm --build test-integration; e=$?; npm run docker:down; exit $e","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","conformance:dispatch:check":"npm run go:dispatch:check && npm run rust:dispatch:check"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"4.3.0","postcss":"8.5.24","linkify-it":"5.0.2","brace-expansion":"5.0.8"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.18"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","js-yaml":"4.3.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.5_1785567792065_0.4157311352974409","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"litedbmodel","version":"2.2.6","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","_id":"litedbmodel@2.2.6","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"homepage":"https://github.com/foo-ogawa/litedbmodel#readme","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"dist":{"shasum":"0cc01d8ba2552b852cb5e148bfcec18920022aa3","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.6.tgz","fileCount":348,"integrity":"sha512-B0lEjOG3tVeSfijzar9nCvOqfYlYITFrU+oMdfzAUnp/Kz5qEUUC7S4P0SB+OOj5lxPyM1XJRIreaGobHMWk8A==","signatures":[{"sig":"MEQCIBkc5Fg/dCTQGVZnccTp92IqOjWQT/mLAEDQfZaUI+rXAiAm5nwsH5HsiqrdbmPL64VrX9lIChphQUPIX5N5vA1bWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3480425},"main":"dist/index.cjs","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"gitHead":"41f326ce5d90fb84e4aa83d6928deaf3d8902039","scripts":{"docs":"typedoc","lint":"eslint src","test":"vitest run","build":"tsc && node scripts/build-scp.mjs","clean":"rm -rf dist","watch":"tsc -w","verify":"node scripts/verify-local.mjs","go:test":"node scripts/check-go-test-skips.mjs","py:test":"node scripts/check-python-test-skips.mjs","ts:test":"node scripts/check-ts-test-skips.mjs","php:test":"node scripts/check-php-test-skips.mjs","build:scp":"node scripts/build-scp.mjs","docker:up":"docker compose -f docker-compose.test.yml up -d","pkg:check":"node scripts/check-package-entrypoints.mjs","rust:test":"node scripts/check-rust-test-skips.mjs","test:unit":"vitest run test/unit","deps:check":"node scripts/check-no-local-deps.mjs","docs:watch":"typedoc --watch","native:gen":"bash benchmark/crosslang/gen-native.sh generate","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","spec:check":"node scripts/check-spec-refs.mjs","test:watch":"vitest","docker:down":"docker compose -f docker-compose.test.yml down","gates:check":"node scripts/check-reachable-test-gates.mjs","types:check":"node scripts/check-typechecked-trees.mjs","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","go:fmt:check":"node scripts/check-go-fmt.mjs","sync:versions":"node scripts/sync-versions.mjs","test:coverage":"vitest run --coverage","tracked:check":"node scripts/check-tracked-files.mjs","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","deps:installed":"node scripts/check-installed-deps.mjs","parity:capture":"PARITY_CAPTURE_WRITE=1 TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","prepublishOnly":"npm run clean && npm run build","conformance:gen":"vitest run --config conformance/vitest.config.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","docs:bench:check":"node scripts/check-bench-docs.mjs","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","go:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd go && exec go run ./conformance/livedb --check-coverage'","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","rust:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd rust && exec cargo run --quiet -p livedb_runner --features livedb -- --check-coverage'","sync:versions:check":"node scripts/sync-versions.mjs --check","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","test:integration:docker":"docker compose -f docker-compose.test.yml run --rm --build test-integration; e=$?; npm run docker:down; exit $e","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","conformance:dispatch:check":"npm run go:dispatch:check && npm run rust:dispatch:check"},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"overrides":{"js-yaml":"^4.3.0","postcss":"^8.5.24","linkify-it":"^5.0.2","brace-expansion":"^5.0.9"},"repository":{"url":"git+https://github.com/foo-ogawa/litedbmodel.git","type":"git"},"_npmVersion":"10.9.8","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","directories":{},"_nodeVersion":"22.23.1","dependencies":{"reflect-metadata":"^0.2.2","behavior-contracts":"^0.11.18"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.3","tsx":"^4.22.3","eslint":"^9.39.4","mysql2":"^3.16.0","terser":"^5.44.1","vitest":"^4.1.7","embedoc":"^0.9.1","esbuild":"^0.28.1","globals":"^17.6.0","js-yaml":"^4.3.0","typedoc":"^0.28.15","@types/pg":"^8.10.9","typescript":"^5.3.0","@types/node":"^20.10.0","better-sqlite3":"^11.0.0","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.7","@types/better-sqlite3":"^7.6.8","typedoc-plugin-markdown":"^4.9.0"},"peerDependencies":{"pg":"^8.0.0","mysql2":"^3.0.0","better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"mysql2":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/litedbmodel_2.2.6_1785993575331_0.44270829537498013","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"litedbmodel","version":"2.2.7","description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","main":"dist/index.cjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"},"./drivers":{"types":"./dist/drivers/index.d.ts","default":"./dist/drivers/index.js"},"./scp":{"types":"./dist/scp/index.d.ts","import":"./dist/scp/index.mjs","require":"./dist/scp/index.cjs"},"./eslint-plugin":{"default":"./eslint-plugin/index.js"}},"scripts":{"build":"tsc && node scripts/build-scp.mjs","build:scp":"node scripts/build-scp.mjs","watch":"tsc -w","clean":"rm -rf dist","test":"vitest run","test:unit":"vitest run test/unit","test:integration":"TEST_DB_HOST=localhost vitest run test/integration","parity:capture":"PARITY_CAPTURE_WRITE=1 TEST_DB_HOST=localhost TEST_DB_PORT=5433 vitest run test/parity/v1-sql-golden.test.ts","parity:scp":"vitest run test/parity/v2-scp-parity.test.ts","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src","docs":"typedoc","docs:watch":"typedoc --watch","prepublishOnly":"npm run clean && npm run build","docker:up":"docker compose -f docker-compose.test.yml up -d","docker:down":"docker compose -f docker-compose.test.yml down","docker:reset":"docker compose -f docker-compose.test.yml down -v && docker compose -f docker-compose.test.yml up -d","test:integration:docker":"docker compose -f docker-compose.test.yml run --rm --build test-integration; e=$?; npm run docker:down; exit $e","sync:versions":"node scripts/sync-versions.mjs","sync:versions:check":"node scripts/sync-versions.mjs --check","deps:check":"node scripts/check-no-local-deps.mjs","deps:installed":"node scripts/check-installed-deps.mjs","gates:check":"node scripts/check-reachable-test-gates.mjs","go:fmt:check":"node scripts/check-go-fmt.mjs","ts:test":"node scripts/check-ts-test-skips.mjs","py:test":"node scripts/check-python-test-skips.mjs","php:test":"node scripts/check-php-test-skips.mjs","go:test":"node scripts/check-go-test-skips.mjs","rust:test":"node scripts/check-rust-test-skips.mjs","pkg:check":"node scripts/check-package-entrypoints.mjs","types:check":"node scripts/check-typechecked-trees.mjs","tracked:check":"node scripts/check-tracked-files.mjs","spec:check":"node scripts/check-spec-refs.mjs","docs:bench:check":"node scripts/check-bench-docs.mjs","vendor:bc-php":"node scripts/vendor-behavior-contracts-php.mjs","vendor:bc-php:check":"node scripts/vendor-behavior-contracts-php.mjs --check","go:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd go && exec go run ./conformance/livedb --check-coverage'","rust:dispatch:check":"LITEDBMODEL_LIVEDB_VECTORS=\"$PWD/conformance/vectors-livedb/livedb.json\" sh -c 'cd rust && exec cargo run --quiet -p livedb_runner --features livedb -- --check-coverage'","conformance:dispatch:check":"npm run go:dispatch:check && npm run rust:dispatch:check","conformance:gen":"vitest run --config conformance/vitest.config.ts","conformance:gen:livedb":"vitest run --config conformance/vitest.livedb.config.ts","conformance:check:livedb":"LIVEDB_GEN_MODE=check vitest run --config conformance/vitest.livedb.config.ts","conformance:livedb":"tsx conformance/livedb-run.ts","docker:livedb:up":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml up -d postgres mysql","docker:livedb:down":"docker compose -f docker-compose.test.yml -f docker-compose.livedb.yml down -v","conformance:livedb:docker":"npm run docker:livedb:up && sleep 5 && npm run conformance:gen:livedb && npm run conformance:livedb; e=$?; npm run docker:livedb:down; exit $e","native:gen":"bash benchmark/crosslang/gen-native.sh generate","bench:codegen:drift":"bash benchmark/crosslang/gen-native.sh check","verify":"node scripts/verify-local.mjs"},"keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"author":{"name":"foo-ogawa"},"license":"MIT","homepage":"https://github.com/foo-ogawa/litedbmodel#readme","repository":{"type":"git","url":"git+https://github.com/foo-ogawa/litedbmodel.git"},"dependencies":{"behavior-contracts":"^0.11.18","reflect-metadata":"^0.2.2"},"devDependencies":{"@types/better-sqlite3":"^7.6.8","@types/node":"^20.10.0","@types/pg":"^8.10.9","@vitest/coverage-v8":"^4.1.11","better-sqlite3":"^11.0.0","embedoc":"^0.14.8","esbuild":"^0.28.1","eslint":"^9.39.4","globals":"^17.6.0","js-yaml":"^4.3.2","mysql2":"^3.24.4","pg":"^8.11.3","terser":"^5.44.1","tsx":"^4.22.3","typedoc":"^0.28.15","typedoc-plugin-markdown":"^4.9.0","typescript":"^5.3.0","typescript-eslint":"^8.60.0","vitest":"^4.1.11"},"peerDependencies":{"better-sqlite3":"^9.0.0 || ^10.0.0 || ^11.0.0","mysql2":"^3.0.0","pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true},"better-sqlite3":{"optional":true},"mysql2":{"optional":true}},"engines":{"node":">=18.0.0"},"overrides":{"js-yaml":"^4.3.2","csv-parse":"^7.0.2","linkify-it":"^5.0.2","postcss":"^8.5.24","brace-expansion":"^5.0.9"},"_id":"litedbmodel@2.2.7","gitHead":"0a277fb1b03004545cb8e788574f69044ccf96ff","bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-UP+JhJdFrtNFxmAh2OonLUfT5u13EmQbtcfseUkALFqNINMN/alXQ8fDHUzlRcYXhV/BnV7Kq5LXCPL+wi+gBg==","shasum":"561d0d2a400004dd0fce2525152523ba04b7e40e","tarball":"https://registry.npmjs.org/litedbmodel/-/litedbmodel-2.2.7.tgz","fileCount":351,"unpackedSize":3526469,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJwj2UREkT3zBDfqjkwkK6oYV2LXL/9VRYY1FuNbZ3OQIgARqATAYxKtb8Q8MIu8dudthPw66iEOEb4jeNm/HpVAg="}]},"_npmUser":{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"},"directories":{},"maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/litedbmodel_2.2.7_1789001194378_0.18794180990071796"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-31T02:37:37.719Z","modified":"2026-09-10T00:46:34.735Z","0.1.0":"2025-12-31T02:37:38.359Z","0.9.0":"2025-12-31T03:36:59.878Z","0.10.0":"2025-12-31T05:02:47.925Z","0.11.0":"2025-12-31T07:38:44.971Z","0.12.0":"2025-12-31T09:19:12.320Z","0.13.0":"2025-12-31T23:48:06.199Z","0.13.1":"2026-01-01T01:15:06.420Z","0.14.0":"2026-01-01T03:21:09.923Z","0.15.0":"2026-01-01T13:25:50.970Z","0.16.0":"2026-01-01T13:56:37.684Z","0.17.0":"2026-01-01T15:02:29.099Z","0.18.0":"2026-01-02T02:44:05.937Z","0.19.0":"2026-01-02T04:54:44.698Z","0.19.1":"2026-01-02T05:04:31.536Z","0.19.2":"2026-01-02T05:07:12.509Z","0.19.3":"2026-01-02T05:10:20.920Z","0.19.4":"2026-01-08T01:25:29.023Z","0.19.5":"2026-01-08T01:32:05.515Z","0.19.6":"2026-01-09T15:17:32.470Z","0.19.7":"2026-01-09T15:23:00.424Z","0.20.0":"2026-01-09T16:10:42.969Z","0.20.1":"2026-01-10T01:00:56.416Z","0.21.0":"2026-01-10T06:19:49.140Z","0.22.0":"2026-01-11T06:30:45.665Z","0.22.1":"2026-01-14T04:46:55.810Z","0.22.2":"2026-01-14T05:07:19.862Z","0.22.3":"2026-02-28T02:26:08.884Z","1.0.0":"2026-03-07T08:56:46.426Z","1.0.1":"2026-03-07T15:18:29.363Z","1.1.0":"2026-03-20T12:06:55.370Z","1.1.1":"2026-03-20T12:24:12.642Z","1.1.2":"2026-03-20T12:54:17.261Z","1.2.0":"2026-05-26T22:37:59.676Z","1.2.1":"2026-05-26T23:00:05.089Z","1.2.2":"2026-05-27T00:33:09.164Z","1.2.3":"2026-05-27T03:28:33.975Z","1.2.4":"2026-05-27T03:33:07.649Z","1.2.5":"2026-06-01T19:02:05.419Z","1.2.6":"2026-06-01T20:55:37.102Z","1.2.7":"2026-06-02T03:43:06.812Z","1.2.8":"2026-06-20T02:56:00.529Z","1.2.9":"2026-06-20T03:20:41.081Z","1.2.10":"2026-06-20T05:28:30.239Z","2.0.0":"2026-07-09T23:17:28.190Z","2.0.1":"2026-07-11T02:48:04.673Z","2.0.2":"2026-07-13T11:07:40.482Z","2.1.0":"2026-07-15T22:38:49.620Z","2.2.0":"2026-07-28T12:06:17.482Z","2.2.1":"2026-07-29T00:36:07.858Z","2.2.2":"2026-07-29T05:28:40.031Z","2.2.3":"2026-07-31T04:55:29.985Z","2.2.4":"2026-08-01T05:56:48.210Z","2.2.5":"2026-08-01T07:03:12.268Z","2.2.6":"2026-08-06T05:19:35.517Z","2.2.7":"2026-09-10T00:46:34.571Z"},"bugs":{"url":"https://github.com/foo-ogawa/litedbmodel/issues"},"author":{"name":"foo-ogawa"},"license":"MIT","homepage":"https://github.com/foo-ogawa/litedbmodel#readme","keywords":["orm","postgresql","mysql","sqlite","database","typescript","data-access-layer","active-record","type-safe"],"repository":{"type":"git","url":"git+https://github.com/foo-ogawa/litedbmodel.git"},"description":"A lightweight TypeScript ORM for PostgreSQL, MySQL, and SQLite with Active Record pattern","maintainers":[{"name":"foo-ogawa","email":"ogawa@foo-log.co.jp"}],"readme":"# litedbmodel\n\n[![npm version](https://img.shields.io/npm/v/litedbmodel.svg)](https://www.npmjs.com/package/litedbmodel)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**[📖 API Documentation](https://github.com/foo-ogawa/litedbmodel/blob/main/docs/api/README.md)** ·\n**[📐 v2 Architecture (SCP / multi-language)](./docs/architecture.md)**\n\n**Production-safe SQL-first Database Access Layer for AI-assisted development.**\n\nlitedbmodel keeps SQL predictable, behavior reviewable, and operations safe — priorities that matter most when AI agents and humans co-develop production systems. Supports PostgreSQL, MySQL, and SQLite.\n\n\n## Philosophy\n\n### SQL is not the enemy — opacity is.\nMost ORMs hide SQL behind abstractions that are hard to debug and hard to tune.\nlitedbmodel keeps SQL visible and controllable: generated queries are intentionally simple, and complex cases use real SQL via `query()` / `execute()`.\n\n### Make performance the default, not a post-mortem\n- Lazy relations are supported, but **N+1 is prevented automatically** via batch loading.\n- Per-parent limiting is done at the **SQL level** (efficient “top-N per group” patterns).\n- Write operations default to **no RETURNING** for throughput; request PKs via `PkeyResult` only when needed.\n\n### Production safety over convenience magic\n- Supports **reader/writer routing** for read replicas and replication-lag-aware reads.\n- Write operations (`create/createMany, update/updateMany, delete`) require an explicit **transaction boundary**.\n- Configurable **hard limits** detect accidental over-fetching early.\n\n### Refactoring-friendly, without sacrificing SQL control\n- Column references are **symbol-based** (`Model.column`) so IDE rename/find-references work.\n- Conditions are **type-safe tuples** (`[Column, value]`), with a `sql` tagged template for operators (`[sql\\`${Col} > ?\\`, value]`). An ESLint plugin catches mistakes TS cannot.\n\n> See [Design Philosophy](./docs/BENCHMARK.md#litedbmodels-design-philosophy) for detailed comparison with query-centric ORMs.\n\n### DX redefined for AI-assisted development\n\nlitedbmodel is not optimized for traditional ORM convenience.\nIt is optimized for AI-assisted development where predictable SQL, reviewable behavior, transaction safety, and operational stability matter more than hiding SQL behind abstractions.\n\n---\n\n## Why AI-friendly?\n\nAI agents generate and modify database code at scale. When that code reaches production, you need guarantees — not hope.\n\n- **SQL is predictable** — generated queries are simple and reviewable; no hidden query plan changes from abstraction layers\n- **No hidden queries** — what you write is what runs; there are no implicit loads or lazy surprises\n- **Transaction boundaries are explicit** — no implicit writes; every mutation requires a declared transaction\n- **Hard limits prevent accidental over-fetching** — configurable guards catch runaway queries before they hit production\n- **Reader/writer separation enforces safe defaults** — reads go to replicas, writes require transactions on the writer\n- **Every DB access is reviewable and auditable** — the SQL you see in code is the SQL that executes\n\n---\n\n## Production Safety Features\n\n| Feature | What it does |\n|---------|-------------|\n| **Transaction-required writes** | `create`, `update`, `delete` throw outside a transaction — no accidental writes |\n| **Hard query limits** | `findHardLimit` / `hasManyHardLimit` cap result sets and throw `LimitExceededError` |\n| **N+1 prevention** | Automatic batch loading for lazy relations — no manual eager-loading needed |\n| **Reader/writer separation** | Reads route to replicas; sticky-writer after transactions handles replication lag |\n| **SQL visibility** | Generated SQL is intentionally simple; complex queries use real SQL via `query()` / `execute()` |\n\n---\n\n## Key Features\n\n### SQL Control & Modeling\n- Predictable generated SQL (readable, hand-written style)\n- Raw SQL escape hatch: `Model.query()` / `DBModel.execute()`\n- Query-based models for complex reads (aggregations, JOINs, CTEs)\n\n### Performance by Default\n- Transparent N+1 prevention (automatic batch loading for lazy relations)\n- SQL-level per-parent limit for relations\n- Subqueries: IN/EXISTS with correlated conditions\n\n### Operational Readiness\n- Reader/Writer separation with sticky-writer reads after transactions (replication-lag-aware)\n- Transactions with retry options (e.g., deadlock retry)\n- Safety guards: `findHardLimit` / `hasManyHardLimit`\n\n### Developer Experience\n- Symbol-based columns + tuple conditions for refactoring safety\n- Declarative `SKIP` pattern for optional fields/conditions\n- Middleware for cross-cutting concerns (logging, auth, tenant isolation)\n- Multi-database support (portable tuple API; raw SQL is dialect-dependent)\n\n## When litedbmodel is a good fit\n\nChoose litedbmodel if you:\n- Build **large or high-throughput** services where SQL tuning and explain plans matter\n- Want ORM ergonomics, but refuse to lose the ability to write/own SQL\n- Operate with **read replicas** and care about replication lag and routing rules\n- Need safe defaults against “oops, loaded 10M rows” and N+1 regressions\n- Prefer a model-centric approach (list/detail + relations) with predictable behavior\n\n## When it may NOT be a good fit\n\nlitedbmodel may be a poor fit if you:\n- Want a “fully abstracted” ORM that hides SQL entirely\n- Prefer a query-builder DSL as the primary interface (rather than SQL/tuple conditions)\n- Need database-agnostic portability for complex raw SQL (dialect differences are real)\n\n## Non-goals\n\nNon-goals are deliberate trade-offs to keep SQL predictable and operations safe.\nlitedbmodel is intentionally **not** trying to be a “do-everything” ORM.\n\n- **100% database-agnostic SQL**: complex queries are expected to use real SQL, and SQL dialect differences are real.\n- **Migrations as a built-in feature**: schema migrations are out of scope (use your preferred migration tool).\n- **Hiding SQL behind a large abstraction layer**: we prioritize predictable SQL over a fully abstracted API.\n- **Automatic eager-loading everywhere**: relations are lazy by default; performance characteristics should stay explicit and controllable.\n\n---\n\n## Installation\n\n```bash\nnpm install litedbmodel reflect-metadata\n\n# Plus your database driver:\nnpm install pg            # PostgreSQL\nnpm install mysql2        # MySQL\nnpm install better-sqlite3  # SQLite\n```\n\n### TypeScript configuration\n\nModels work under **either** decorator protocol, with no other compiler setting required:\n\n```jsonc\n// TC39 standard decorators — the TypeScript 5 default, and what esbuild / tsx / vite / Next.js emit.\n{ \"compilerOptions\": { \"target\": \"ES2022\" } }\n\n// Legacy decorators — also supported.\n{ \"compilerOptions\": { \"target\": \"ES2022\", \"experimentalDecorators\": true } }\n```\n\n`emitDecoratorMetadata` is **not** used and does not need to be enabled. Every column states its own\ntype through its `@column.*` family, so the same model source produces the same model whether it is\ncompiled by `tsc`, esbuild, `tsx` or `vite`.\n\nOne difference the compiler forces, on relations only: standard decorators reject a decorated\n`declare` field (`TS1206`), so write `posts!: Promise<Post[]>` there; legacy decorators keep\n`declare posts: Promise<Post[]>`.\n\n### Code Generation (optional)\n\n[**litedbmodel-gen**](https://www.npmjs.com/package/litedbmodel-gen) generates model column definitions from SQL DDL (`schema.sql`). Column definitions inside markers are auto-updated when the schema changes; hand-written code (relations, methods, exports) is preserved.\n\n```bash\nnpm install -D litedbmodel-gen embedoc\nnpx embedoc init && npx litedbmodel-gen init\nnpx embedoc generate --datasource schema   # scaffold model files\nnpx embedoc build                          # sync column definitions\n```\n\n## Quick Start\n\n```typescript\nimport 'reflect-metadata';\nimport { DBModel, model, column } from 'litedbmodel';\n\n// 1. Define model\n@model('users')\nclass UserModel extends DBModel {\n  @column.number() id?: number;\n  @column.text() name?: string;\n  @column.text() email?: string;\n  @column.boolean() is_active?: boolean;\n}\nexport const User = UserModel.asModel();  // Adds type-safe column references\n\n// 2. Configure database\nDBModel.setConfig({\n  host: 'localhost',\n  database: 'mydb',\n  user: 'user',\n  password: 'pass',\n  // driver: 'mysql',    // for MySQL\n  // driver: 'sqlite',   // for SQLite (use database: './data.db')\n});\n\n// 3. CRUD operations\nawait User.create([\n  [User.name, 'John'],\n  [User.email, 'john@example.com'],\n]);\nawait User.update([[User.id, 1]], [[User.name, 'Jane']]);\nawait User.delete([[User.is_active, false]]);\n\n// Read operations\nconst users = await User.find([[User.is_active, true]]);\nconst john = await User.findOne([[User.email, 'john@example.com']]);\n\n// With returning: true → get PkeyResult for re-fetching\nconst created = await User.create([...], { returning: true });\nconst [newUser] = await User.findById(created);\n```\n\n---\n\n## Model Options\n\nThe `@model` decorator accepts optional configuration for default behaviors:\n\n```typescript\n@model('entries', {\n  order: () => Entry.created_at.desc(),      // DEFAULT_ORDER\n  filter: () => [[Entry.is_deleted, false]], // FIND_FILTER (auto-applied)\n  select: 'id, title, created_at',           // SELECT_COLUMN\n  updateTable: 'entries_writable',           // UPDATE_TABLE_NAME (for views)\n})\nclass EntryModel extends DBModel {\n  @column.number() id?: number;\n  @column.text() title?: string;\n  @column.datetime() created_at?: string;\n  @column.boolean() is_deleted?: boolean;\n}\nexport const Entry = EntryModel.asModel();\n```\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `order` | `() => OrderSpec` | Default ORDER BY for `find()` |\n| `filter` | `() => Conds` | Auto-applied WHERE conditions |\n| `select` | `string` | Default SELECT columns |\n| `updateTable` | `string` | Table name for INSERT/UPDATE |\n| `group` | `() => Column \\| string` | Default GROUP BY |\n\n> **Note:** Options using model columns (`order`, `filter`, `group`) require lazy evaluation `() =>` because the model isn't fully defined when the decorator runs.\n\n---\n\n## Column Decorators\n\n### Declared Types\n\n**A column states its own type.** The `@column.*` family is the single source of truth: it decides\nboth the TypeScript type you declare and the value `find()` gives back, on every toolchain and under\neither decorator protocol. Nothing is inferred from the TypeScript type annotation.\n\n| DB column type | Decorator | Declared TS type | Value `find()` returns |\n|---|---|---|---|\n| `TEXT` / `VARCHAR` / `CHAR` / `ENUM` | `@column.text()` | `string` | the driver string, uncast |\n| `REAL` / `FLOAT` / `DOUBLE` | `@column.number()` | `number` | JS number (bc `float`) |\n| `NUMERIC` / `DECIMAL` / `MONEY` | `@column.text()` | `string` | the **exact decimal string** — a JS number destroys `NUMERIC(38,10)` |\n| `BOOLEAN` | `@column.boolean()` | `boolean` | JS boolean |\n| `INTEGER` / `BIGINT` / `SERIAL` … | `@column.bigint()` | `bigint` | a JS **bigint** — behavior-contracts' `int` value model (checked i64) |\n| `TIMESTAMP` / `TIMESTAMPTZ` / `DATETIME` | `@column.datetime()` | `string` | the column's **own textual form**, never a TZ-shifted `Date` — with the offset when the column carries one (`timestamptz` → `2024-06-15 10:30:00+00`), without it when it does not (`timestamp` → `2024-06-15 10:30:00`) |\n| `DATE` | `@column.date()` | `string` | `'YYYY-MM-DD'` — a calendar date has no timezone |\n| `UUID` | `@column.uuid()` | `string` | the UUID string (adds `::uuid` casts on PostgreSQL) |\n| `JSON` / `JSONB` | `@column.json<T>()` | `T` | parsed JSON |\n| `TEXT[]` | `@column.stringArray()` | `string[]` | `string[]` |\n| `INT[]` | `@column.intArray()` | `number[]` | `number[]` |\n| `NUMERIC[]` | `@column.numericArray()` | `(number \\| null)[]` | `(number \\| null)[]` |\n| `BOOLEAN[]` | `@column.booleanArray()` | `(boolean \\| null)[]` | `(boolean \\| null)[]` |\n| `TIMESTAMP[]` | `@column.datetimeArray()` | `(string \\| null)[]` | element-wise the same TZ-attached string `@column.datetime()` returns |\n| `BYTEA` / `BLOB` / a vendor type | `@column.passthrough()` | `unknown` | the driver's value, uncast |\n| anything else | `@column.custom(cast, serialize?)` | whatever `cast` returns | whatever `cast` returns |\n\n```typescript\n@model('users')\nclass UserModel extends DBModel {\n  @column.number({ primaryKey: true, autoIncrement: true }) id?: number;\n  @column.text() name?: string;\n  @column.text('mail_addr') email?: string;   // property `email`, column `mail_addr`\n  @column.boolean() is_active?: boolean;\n  @column.datetime() created_at?: string;     // reads back a string, so it is declared a string\n  @column.date() birth_date?: string;         // 'YYYY-MM-DD'\n  @column.bigint() large_id?: bigint;         // every integer width — bc's `int`\n}\n```\n\n**An integer column is one type at every width.** behavior-contracts has a single integer type — `int`,\na JS `bigint` on the TS plane, checked i64 — and the drivers are configured to produce exactly that\n(`configurePgDeboxTypeParsers`, `mysqlDeboxPoolOptions`, better-sqlite3 `safeIntegers`). A `SMALLINT`\nand a `BIGINT` therefore read back the same way, and no value is ever rounded on the way in.\n\n`JSON.stringify` refuses a `bigint` — that is JavaScript, not this library. Convert at the boundary:\n\n```ts\nJSON.stringify(row, (_k, v) => (typeof v === 'bigint' ? v.toString() : v));\n```\n\nWrites accept the natural JS value: `[[User.created_at, new Date()]]` serializes a `Date`, and\n`[[User.large_id, 9007199254740993n]]` a `bigint`. Dates read back as strings so a row compares\nwithout a timezone shift.\n\nSQLite is the exception to the decimal row: it stores no fixed-precision type, so its driver hands\nback a JS number whatever the column says, and the value is already rounded before litedbmodel sees it.\n\nParse a datetime when you need a `Date`: `new Date(user.created_at)`. PostgreSQL returns\n`2024-06-15 10:30:00+00` — a space, not a `T`; `new Date()` accepts that form as-is. Do not \"repair\"\nit into `2024-06-15T10:30:00+00`, which is an `Invalid Date` (a `T` form needs `+00:00`).\n\nA string from a column with **no** timezone (`timestamp`, MySQL `datetime`) has no offset to parse, so\n`new Date()` reads it as LOCAL time. Declare the column `timestamptz` when the value is an instant —\nthat is a schema decision no client-side conversion can substitute for.\n\n### Column Options\n\nEvery family takes the same argument: a column name, or an options object.\n\n```typescript\n@column.text('db_column_name') prop?: string;         // Custom column name (string shorthand)\n@column.text({ columnName: 'db_col' }) prop?: string; // Custom column name (object form)\n@column.number({ primaryKey: true }) id?: number;     // Mark as primary key\n@column.number({ primaryKey: true, columnName: 'user_id' }) id?: number; // Both options\n@column.number({ primaryKey: true, autoIncrement: true }) id?: number;   // Server-assigned key\n```\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `columnName` | `string` | Database column name (defaults to property name) |\n| `primaryKey` | `boolean` | Mark as part of primary key (for `getPkey()`) |\n| `autoIncrement` | `boolean` | The server assigns the value (`AUTO_INCREMENT` / `SERIAL` / `IDENTITY`) — a write does not supply it |\n\nA model that declares no primary key is treated as having an auto-increment `id`. Declare the key\nwhenever that is not true: on MySQL, which has no native `RETURNING`, a `returning` write recovers\nthe rows it wrote from the declared key — by the auto-increment range for a server-assigned key, and\nby the values the write itself bound for a UUID, a client-supplied, or a composite key.\n\n### Date vs DateTime: Important Distinction\n\nDatabases distinguish date-only from datetime columns, and so do the decorators. Both read back as a\nstring, but a different one — pick the family that matches the column:\n\n```typescript\n// ✅ Correct usage\n@column.datetime() updated_at?: string;   // TIMESTAMP column → '2024-06-15 10:30:00+00'\n@column.date() settlement_date?: string;  // DATE column      → '2024-06-15'\n\n// ❌ Wrong: a DATE column read through the datetime family carries a time that is not in the column\n@column.datetime() settlement_date?: string;\n```\n\n**Serialization behavior on write** (PostgreSQL):\n- `@column.datetime()` → ISO 8601 UTC: `2024-06-15T10:30:00.000Z`\n- `@column.date()` → date string: `2024-06-15`\n\n### Date Utility Functions\n\n`formatLocalDate` and `formatUTCDate` convert a `Date` object to a `YYYY-MM-DD` string. Use these when constructing date values for queries or conditions:\n\n```typescript\nimport { formatLocalDate, formatUTCDate } from 'litedbmodel';\n\n// Format using local timezone (matches @column.date() behavior)\nformatLocalDate(new Date());  // '2024-06-15' (in local timezone)\n\n// Format using UTC\nformatUTCDate(new Date());    // '2024-06-15' (in UTC)\n\n// Typical use: query with today's local date\nconst today = formatLocalDate(new Date());\nconst meals = await Meal.find([Meal.date, today]);\n```\n\n---\n\n## CRUD Operations\n\n### PkeyResult Type\n\nWrite operations can optionally return a `PkeyResult` object:\n\n```typescript\ninterface PkeyResult {\n  key: Column[];       // Key column(s) used to identify rows\n  values: unknown[][]; // 2D array of key values\n}\n\n// Single PK example\n{ key: [User.id], values: [[1], [2], [3]] }\n\n// Composite PK example\n{ key: [TenantUser.tenant_id, TenantUser.id], values: [[1, 100], [1, 101]] }\n```\n\n**Default behavior:** `returning: false` — returns `null` for better performance.  \n**With `returning: true`:** Returns `PkeyResult` with affected primary keys.\n\n> **Note:** `PkeyResult.key` always contains primary key column(s), regardless of `keyColumns` used in `updateMany`.\n\n### create / createMany\n\n```typescript\n// Default: returns null (no RETURNING)\nawait User.create([\n  [User.name, 'John'],\n  [User.email, 'john@example.com'],\n]);\n\n// With returning: true → returns PkeyResult\nconst result = await User.create([\n  [User.name, 'John'],\n  [User.email, 'john@example.com'],\n], { returning: true });\n// result: { key: [User.id], values: [[1]] }\n\n// Multiple records\nconst result = await User.createMany([\n  [[User.name, 'John'], [User.email, 'john@example.com']],\n  [[User.name, 'Jane'], [User.email, 'jane@example.com']],\n], { returning: true });\n// result: { key: [User.id], values: [[1], [2]] }\n\n// Fetch created records if needed\nconst [user] = await User.findById(result);\n```\n\n### update / updateMany\n\n```typescript\n// Default: returns null (no RETURNING)\nawait User.update(\n  [[User.status, 'pending']],        // conditions\n  [[User.status, 'active']],         // values\n);\n\n// With returning: true → returns PkeyResult\nconst result = await User.update(\n  [[User.status, 'pending']],\n  [[User.status, 'active']],\n  { returning: true }\n);\n// result: { key: [User.id], values: [[1], [2], [3]] }\n\n// Bulk update with different values per row\nconst result = await User.updateMany([\n  [[User.id, 1], [User.name, 'John'], [User.email, 'john@example.com']],\n  [[User.id, 2], [User.name, 'Jane'], [User.email, 'jane@example.com']],\n], { keyColumns: [User.id], returning: true });\n// result: { key: [User.id], values: [[1], [2]] }\n\n// Fetch updated records if needed\nconst users = await User.findById(result);\n```\n\n**Generated SQL for updateMany:**\n\n| Database | SQL |\n|----------|-----|\n| PostgreSQL | `UPDATE ... FROM UNNEST($1::int[], $2::text[], ...) AS v(...) WHERE t.id = v.id` |\n| MySQL 8.0.19+ | `UPDATE ... JOIN (VALUES ROW(?, ?, ?), ...) AS v(...) ON ... SET ...` |\n| SQLite 3.33+ | `WITH v(...) AS (VALUES (...), ...) UPDATE ... FROM v WHERE ...` |\n\n### delete\n\n```typescript\n// Default: returns null (no RETURNING)\nawait User.delete([[User.is_active, false]]);\n\n// With returning: true → returns PkeyResult\nconst result = await User.delete([[User.is_active, false]], { returning: true });\n// result: { key: [User.id], values: [[4], [5]] }\n```\n\n### findById\n\nFetch records by primary key. Accepts `PkeyResult` format for efficient batch loading:\n\n```typescript\n// Single record\nconst [user] = await User.findById({ values: [[1]] });\n\n// Multiple records\nconst users = await User.findById({ values: [[1], [2], [3]] });\n\n// Composite PK\nconst [entry] = await TenantUser.findById({\n  values: [[1, 100]]  // [tenant_id, id]\n});\n\n// Use with update/delete result\nconst result = await User.update(...);\nconst users = await User.findById(result);\n```\n\n**Generated SQL:**\n\n| Database | Single PK | Composite PK |\n|----------|-----------|--------------|\n| PostgreSQL | `WHERE id = ANY($1::int[])` | `WHERE (col1, col2) IN (SELECT * FROM UNNEST(...))` |\n| MySQL | `WHERE id IN (?, ?, ?)` | `JOIN (VALUES ROW(...), ...) AS v ON ...` |\n| SQLite | `WHERE id IN (?, ?, ?)` | `WITH v AS (VALUES ...) ... JOIN v ON ...` |\n\n### Upsert (ON CONFLICT)\n\n```typescript\n// Insert or ignore\nawait User.create(\n  [[User.name, 'John'], [User.email, 'john@example.com']],\n  { onConflict: User.email, onConflictIgnore: true }\n);\n\n// Insert or update\nawait User.create(\n  [[User.name, 'John'], [User.email, 'john@example.com']],\n  { onConflict: User.email, onConflictUpdate: [User.name] }\n);\n\n// Composite unique key\nawait UserPref.create(\n  [[UserPref.user_id, 1], [UserPref.key, 'theme'], [UserPref.value, 'dark']],\n  { onConflict: [UserPref.user_id, UserPref.key], onConflictUpdate: [UserPref.value] }\n);\n```\n\n### Behavior Notes\n\n#### PkeyResult Semantics\n\n| Aspect | Behavior |\n|--------|----------|\n| **Order** | Matches database `RETURNING` order (not guaranteed across DBs; `findById(result)` order is also unspecified) |\n| **update result** | Contains PKs of **matched rows** (rows matching WHERE condition, regardless of whether values actually changed) |\n| **delete result** | Contains PKs of **deleted rows** |\n| **Duplicates** | No duplicates (each row appears once; MySQL pre-SELECT uses `DISTINCT`) |\n| **Empty result** | `{ key: [...], values: [] }` when no rows affected (not `null`) |\n\n> **Note:** For MySQL (no `RETURNING`), when `returning: true`:\n> - `update`/`delete`: Executes pre-SELECT (with `DISTINCT`) to get PKs, then executes the operation (2 queries in same transaction)\n> - `updateMany`: Executes update, then SELECT to get PKs of affected rows (2 queries in same transaction)\n> - When `returning: false` (default): Single query, returns `null`\n\n#### Batch Limits\n\n`createMany` and `updateMany` do **not** auto-split large batches. Users are responsible for chunking:\n\n```typescript\n// Recommended: chunk large batches (DB-dependent limits)\nconst BATCH_SIZE = 1000;  // Adjust based on your DB and row size\nfor (let i = 0; i < rows.length; i += BATCH_SIZE) {\n  const chunk = rows.slice(i, i + BATCH_SIZE);\n  await User.updateMany(chunk, { keyColumns: [User.id] });\n}\n```\n\n| Database | Practical Limits |\n|----------|------------------|\n| PostgreSQL | ~32,767 parameters per query |\n| MySQL | `max_allowed_packet` (default 64MB), ~65,535 placeholders |\n| SQLite | 999 variables (compile-time `SQLITE_MAX_VARIABLE_NUMBER`) |\n\n#### updateMany keyColumns Contract\n\n| Requirement | Description |\n|-------------|-------------|\n| **Must be unique** | `keyColumns` must uniquely identify rows (primary key or unique constraint) |\n| **Must exist in rows** | Every row must include all `keyColumns` |\n| **Non-key columns** | Columns not in `keyColumns` become `SET` clause values |\n\n```typescript\n// ✅ Valid: keyColumns is primary key\nawait User.updateMany([\n  [[User.id, 1], [User.name, 'John']],\n], { keyColumns: [User.id] });\n\n// ✅ Valid: keyColumns is unique constraint\nawait User.updateMany([\n  [[User.email, 'john@example.com'], [User.name, 'John']],\n], { keyColumns: [User.email] });  // If email has UNIQUE constraint\n\n// ❌ Invalid: keyColumns missing from row\nawait User.updateMany([\n  [[User.name, 'John']],  // Missing User.id!\n], { keyColumns: [User.id] });\n```\n\n---\n\n## Type-Safe Conditions\n\n### Column Tuples (recommended for equality/simple conditions)\n\nThe simplest and most type-safe form. The value type is validated at compile time:\n\n```typescript\nawait User.find([\n  [User.status, 'active'],           // status = 'active'\n  [User.is_active, true],            // is_active = TRUE\n]);\nawait User.find([[User.email, 'john@example.com']]);\n```\n\n### `sql` Tagged Template (for operators, LIKE, BETWEEN, IS NULL, etc.)\n\nUse the `sql` tagged template for conditions that need operators. The `sql` tag extracts the Column reference, producing a type-safe fragment.\nSee [sql Tagged Template Literal](./docs/sql-tagged-template.md) for full reference.\n\n```typescript\nimport { sql } from 'litedbmodel';\n\nawait User.find([\n  [sql`${User.age} > ?`, 18],                          // age > 18\n  [sql`${User.age} BETWEEN ? AND ?`, [18, 65]],        // age BETWEEN 18 AND 65\n  [sql`${User.name} LIKE ?`, '%test%'],                 // name LIKE '%test%'\n  [sql`${User.status} IN (?)`, ['active', 'pending']],  // status IN ('active', 'pending')\n  sql`${User.deleted_at} IS NULL`,                       // deleted_at IS NULL (no value needed)\n]);\n```\n\nValues can also be embedded directly in the template. The `sql` tag automatically extracts them as parameterized values:\n\n```typescript\nawait User.find([\n  sql`${User.age} > ${18}`,\n  sql`${User.name} LIKE ${'%test%'}`,\n  sql`${User.deleted_at} IS NULL`,\n]);\n```\n\n### OR Conditions and ORDER BY\n\n```typescript\nawait User.find([\n  [User.is_active, true],\n  User.or(\n    [[User.role, 'admin']],\n    [[User.role, 'moderator']],\n  ),\n], { order: User.created_at.desc() });\n```\n\n> **ESLint Plugin:** Use `litedbmodel/eslint-plugin` to catch mistakes that TypeScript cannot:\n> - Wrong model columns (e.g., `User.find([[Post.id, 1]])`)\n> - Hardcoded column names instead of `${Model.column}`\n> - The wrong relation declaration for your decorator protocol (`declare` vs `!`)\n\n---\n\n## Subquery Conditions\n\nIN/NOT IN and EXISTS/NOT EXISTS subqueries with composite key support.\nKey pairs use the same format as relation decorators: `[[parentCol, targetCol], ...]`\n\n```typescript\nimport { parentRef } from 'litedbmodel';\n\n// IN subquery - key pairs: [[parentCol, targetCol]]\nawait User.find([\n  User.inSubquery([[User.id, Order.user_id]], [\n    [Order.status, 'paid']\n  ])\n]);\n// → WHERE users.id IN (SELECT orders.user_id FROM orders WHERE orders.status = 'paid')\n\n// Composite key IN subquery\nawait User.find([\n  User.inSubquery([\n    [User.id, Order.user_id],\n    [User.group_id, Order.group_id],\n  ], [[Order.status, 'active']])\n]);\n// → WHERE (users.id, users.group_id) IN (SELECT orders.user_id, orders.group_id FROM orders WHERE orders.status = 'active')\n\n// NOT IN subquery\nawait User.find([\n  User.notInSubquery([[User.id, BannedUser.user_id]])\n]);\n// → WHERE users.id NOT IN (SELECT banned_users.user_id FROM banned_users)\n\n// Correlated subquery with parentRef\nawait User.find([\n  User.inSubquery([[User.id, Order.user_id]], [\n    [Order.tenant_id, parentRef(User.tenant_id)],\n    [Order.status, 'completed']\n  ])\n]);\n// → WHERE users.id IN (SELECT orders.user_id FROM orders WHERE orders.tenant_id = users.tenant_id AND orders.status = 'completed')\n\n// EXISTS subquery (conditions determine target table)\nawait User.find([\n  [User.is_active, true],\n  User.exists([\n    [Order.user_id, parentRef(User.id)]\n  ])\n]);\n// → WHERE is_active = TRUE AND EXISTS (SELECT 1 FROM orders WHERE orders.user_id = users.id)\n\n// NOT EXISTS subquery\nawait User.find([\n  User.notExists([\n    [Complaint.user_id, parentRef(User.id)]\n  ])\n]);\n// → WHERE NOT EXISTS (SELECT 1 FROM complaints WHERE complaints.user_id = users.id)\n```\n\n---\n\n## Declarative SKIP Pattern\n\nConditional fields without if-statements:\n\n```typescript\nimport { SKIP } from 'litedbmodel';\n\n// ❌ Imperative\nconst updates = [];\nif (body.name !== undefined) updates.push([User.name, body.name]);\nif (body.email !== undefined) updates.push([User.email, body.email]);\nawait User.update([[User.id, id]], updates);\n\n// ✅ Declarative with SKIP\nawait User.update([[User.id, id]], [\n  [User.name, body.name ?? SKIP],\n  [User.email, body.email ?? SKIP],\n  [User.updated_at, new Date()],\n]);\n```\n\nWorks for conditions too:\n\n```typescript\nawait User.find([\n  [User.deleted, false],\n  query.name ? [sql`${User.name} LIKE ?`, `%${query.name}%`] : SKIP,\n  [User.status, query.status ?? SKIP],\n]);\n```\n\n**SKIP Behavior by Operation**:\n\n| Operation | SKIP Behavior |\n|-----------|---------------|\n| `find` / `findOne` / `count` | Condition excluded from WHERE |\n| `create` / `update` | Column excluded from INSERT/UPDATE |\n| `createMany` | Column excluded → DB DEFAULT applied |\n| `updateMany` | Column excluded → existing value retained |\n\n```typescript\n// createMany - SKIPped columns get DEFAULT value\nawait User.createMany([\n  [[User.name, 'John'], [User.email, 'john@test.com']],\n  [[User.name, 'Jane'], [User.email, SKIP]],  // email = DEFAULT\n]);\n\n// updateMany - SKIPped columns unchanged\nawait User.updateMany([\n  [[User.id, 1], [User.email, 'new@test.com'], [User.status, SKIP]],  // status unchanged\n  [[User.id, 2], [User.email, SKIP], [User.status, 'active']],       // email unchanged\n], { keyColumns: User.id });\n```\n\n**Batch SQL Strategy by Database**:\n\n| Database | createMany | updateMany |\n|----------|------------|------------|\n| PostgreSQL | Grouped `UNNEST` INSERT per SKIP pattern | `UNNEST` + `CASE WHEN skip_flag` |\n| MySQL | Grouped `VALUES ROW` INSERT per SKIP pattern | `JOIN VALUES ROW` + `IF(skip_flag)` |\n| SQLite | Grouped `VALUES` INSERT per SKIP pattern | `CASE WHEN key=? THEN col ELSE ?` |\n\nRecords with the same SKIP pattern are batched together for efficient INSERT. Each database uses native batch syntax while ensuring SKIPped columns receive DEFAULT values (createMany) or retain existing values (updateMany).\n\n> **Note on `createMany` with SKIP:** `createMany` groups records by their SKIP pattern and issues a separate INSERT per group, because SQL does not allow mixing `DEFAULT` with array-based bulk insert (`UNNEST`). `updateMany` does not have this limitation — it handles SKIP in a single query using boolean flags. For best performance with `createMany`, prefer providing explicit values for all columns instead of using SKIP.\n\n---\n\n## Relation Decorators\n\nDefine relations declaratively with type-safe decorators:\n\n```typescript\nimport { DBModel, model, column, hasMany, belongsTo, hasOne } from 'litedbmodel';\n\n@model('users')\nclass UserModel extends DBModel {\n  @column.number() id?: number;\n  @column.text() name?: string;\n\n  // Legacy decorators: declare a relation with 'declare' (not '!'), so TypeScript emits no instance\n  // field to shadow the getter. Standard decorators reject a decorated 'declare' field (TS1206) —\n  // write `posts!: Promise<Post[]>` there; the library removes the shadowing field itself.\n  @hasMany(() => [User.id, Post.author_id])\n  declare posts: Promise<Post[]>;\n\n  @hasOne(() => [User.id, UserProfile.user_id])\n  declare profile: Promise<UserProfile | null>;\n}\nexport const User = UserModel.asModel();\n\n@model('posts')\nclass PostModel extends DBModel {\n  @column.number() id?: number;\n  @column.number() author_id?: number;\n  @column.text() title?: string;\n\n  @belongsTo(() => [Post.author_id, User.id])\n  declare author: Promise<User | null>;\n\n  @hasMany(() => [Post.id, Comment.post_id])\n  declare comments: Promise<Comment[]>;\n}\nexport const Post = PostModel.asModel();\n\n// Usage\nconst post = await Post.findOne([[Post.id, 1]]);\nconst author = await post.author;       // Lazy loaded\nconst comments = await post.comments;   // Lazy loaded\n```\n\n> **Important — the relation declaration depends on your decorator protocol:**\n>\n> - **Legacy decorators**: write `declare posts: Promise<Post[]>`. A field written `posts!: …` emits a\n>   class field that shadows the prototype getter, and the relation reads back as `undefined`.\n> - **Standard (TC39) decorators**: write `posts!: Promise<Post[]>`. A decorated `declare` field does\n>   not compile (`TS1206`), and litedbmodel removes the shadowing field itself.\n>\n> `litedbmodel/eslint-plugin` enforces whichever applies. It reads `experimentalDecorators` from your\n> TypeScript program when type-aware linting is on; otherwise set it explicitly:\n> `\"litedbmodel/require-declare-for-relations\": [\"error\", { \"decorators\": \"standard\" }]`.\n\n### With Options (order, where, limit)\n\n```typescript\n@hasMany(() => [User.id, Post.author_id], {\n  order: () => Post.created_at.desc(),\n  where: () => [[Post.is_deleted, false]],\n})\ndeclare activePosts: Promise<Post[]>;\n\n// Per-parent limit - fetch only N records per parent key\n@hasMany(() => [User.id, Post.author_id], {\n  limit: 5,\n  order: () => Post.created_at.desc(),\n})\ndeclare recentPosts: Promise<Post[]>;  // Each user gets their 5 most recent posts\n```\n\nThe `limit` option applies SQL-level limiting **per parent key** during batch loading:\n- **PostgreSQL**: Uses `LATERAL JOIN` for efficient per-group limiting\n- **MySQL/SQLite**: Uses `ROW_NUMBER() OVER (PARTITION BY ...)` window function\n\nThis is more efficient than fetching all records and filtering in application code.\n\n> **Important:** Always use `order` with `limit`. Without ordering, the \"which N records\" is non-deterministic and may vary between queries.\n\n### Composite Key Relations\n\n```typescript\n@model('tenant_posts')\nclass TenantPostModel extends DBModel {\n  @column.number({ primaryKey: true }) tenant_id?: number;\n  @column.number({ primaryKey: true }) id?: number;\n  @column.number() author_id?: number;\n\n  @belongsTo(() => [\n    [TenantPost.tenant_id, TenantUser.tenant_id],\n    [TenantPost.author_id, TenantUser.id],\n  ])\n  declare author: Promise<TenantUser | null>;\n}\n```\n\n### Transparent N+1 Prevention\n\nWhen `find()` returns multiple records, batch loading is **automatic** — no eager loading specification needed:\n\n```typescript\nconst users = await User.find([]);  // Auto batch context created\n\nfor (const user of users) {\n  const posts = await user.posts;   // First access batch loads ALL users' posts\n}\n// Total: 2 queries instead of N+1!\n```\n\nWrite natural code (`await user.posts`); litedbmodel handles the optimization.\n\n---\n\n## Query Limits (Safety Guards)\n\nPrevent accidental loading of too many records with configurable hardLimits:\n\n```typescript\n// Global configuration\nDBModel.setConfig(config, {\n  findHardLimit: 1000,       // find() throws if > 1000 records\n  hasManyHardLimit: 10000,   // hasMany throws if > 10000 records total (batch)\n});\n\n// Or update later\nDBModel.setLimitConfig({ findHardLimit: 500, hasManyHardLimit: 5000 });\n```\n\nWhen limits are exceeded, `LimitExceededError` is thrown:\n\n```typescript\nimport { LimitExceededError } from 'litedbmodel';\n\ntry {\n  const users = await User.find([]);  // May throw if too many records\n} catch (e) {\n  if (e instanceof LimitExceededError) {\n    console.log(`Limit ${e.limit} exceeded: got ${e.actualCount} records`);\n  }\n}\n```\n\n**Per-relation hardLimit override:**\n\nYou can override the global `hasManyHardLimit` for specific relations:\n\n```typescript\n@hasMany(() => [User.id, Post.author_id], {\n  hardLimit: 500,   // Override global hasManyHardLimit for this relation\n})\ndeclare posts: Promise<Post[]>;\n\n@hasMany(() => [User.id, Log.user_id], {\n  hardLimit: null,  // Disable limit check for this relation\n})\ndeclare logs: Promise<Log[]>;\n```\n\n> **Note:** `findHardLimit` and `hasManyHardLimit` are safety guards implemented as `LIMIT N+1` at SQL level. If the result exceeds the limit, it throws immediately — this minimizes data transfer while detecting overflow. For explicit SQL-level limiting (e.g., \"N records per parent\"), use the `limit` option described in [With Options](#with-options-order-where-limit).\n\n---\n\n## Transactions\n\n```typescript\n// Basic\nawait DBModel.transaction(async () => {\n  const user = await User.findOne([[User.id, 1]]);\n  await Account.update([[Account.user_id, user.id]], [[Account.balance, 100]]);\n});\n\n// With return value\nconst user = await DBModel.transaction(async () => {\n  return await User.create([[User.name, 'Alice']]);\n});\n\n// Auto-retry on deadlock\nawait DBModel.transaction(\n  async () => { /* ... */ },\n  { retryOnError: true, retryLimit: 3 }\n);\n\n// Preview mode (rollback after execution)\nawait DBModel.transaction(\n  async () => { /* ... */ },\n  { rollbackOnly: true }\n);\n```\n\n---\n\n## Middleware\n\nClass-based middleware for cross-cutting concerns.\n\n### Call Flow\n\nAll database operations flow through the middleware system:\n\n```mermaid\nflowchart TD\n    subgraph \"High-Level API\"\n        find[\"find()\"]\n        findOne[\"findOne()\"]\n        findById[\"findById()\"]\n        count[\"count()\"]\n        create[\"create()\"]\n        createMany[\"createMany()\"]\n        update[\"update()\"]\n        updateMany[\"updateMany()\"]\n        delete[\"delete()\"]\n    end\n    \n    subgraph RelationAPI[\"Relation API\"]\n        belongsTo[\"@belongsTo\"]\n        hasMany[\"@hasMany\"]\n        hasOne[\"@hasOne\"]\n    end\n    \n    subgraph \"Middle-Level API\"\n        query[\"query()\"]\n    end\n    \n    subgraph \"Low-Level API\"\n        execute[\"execute()\"]\n    end\n    \n    subgraph \"Database\"\n        DB[(DB)]\n    end\n    \n    find --> query\n    findOne --> query\n    findById --> execute\n    \n    belongsTo --> query\n    hasMany --> query\n    hasOne --> query\n    \n    count --> execute\n    create --> execute\n    createMany --> execute\n    update --> execute\n    updateMany --> execute\n    delete --> execute\n    \n    query --> execute\n    execute --> DB\n    \n    style RelationAPI fill:#e0e0e0,stroke:#999\n```\n\n**Middleware hooks:**\n- **Method-level**: `find`, `findOne`, `findById`, `count`, `create`, `createMany`, `update`, `updateMany`, `delete`\n- **Instantiation-level**: `query` — returns model instances from raw SQL\n- **SQL-level**: `execute` — intercepts ALL SQL queries (SELECT, INSERT, UPDATE, DELETE)\n\n> **Note:** Relation API (`@belongsTo`, `@hasMany`, `@hasOne`) bypasses method-level middleware hooks and calls `query()` directly. To intercept relation queries, use Instantiation-level (`query`) middleware.\n\n### Example\n\n```typescript\n// Simple logger (no state needed)\nconst LoggerMiddleware = DBModel.createMiddleware({\n  execute: async function(next, sql, params) {\n    console.log('SQL:', sql);\n    return next(sql, params);\n  }\n});\n\n// With per-request state (fully type-safe)\nconst TenantMiddleware = DBModel.createMiddleware({\n  // Initial state for each request (deep-cloned per request)\n  state: { tenantId: 0, queryCount: 0 },\n  \n  // Hook signature: (model, next, ...args) for method-level hooks\n  find: async function(model, next, conditions, options) {\n    // `this` is typed as { tenantId: number; queryCount: number }\n    this.queryCount++;\n    const tenantCol = (model as { tenant_id?: Column }).tenant_id;\n    if (tenantCol) {\n      conditions = [[tenantCol, this.tenantId], ...conditions];\n    }\n    return next(conditions, options);\n  }\n});\n\n// Register\nDBModel.use(LoggerMiddleware);\nDBModel.use(TenantMiddleware);\n\n// Per-request usage (type-safe)\nTenantMiddleware.getCurrentContext().tenantId = req.user.tenantId;\nconsole.log(TenantMiddleware.getCurrentContext().queryCount);\n```\n\n**State lifecycle:** Each HTTP request gets its own copy of the `state` object via `AsyncLocalStorage`. States are isolated between concurrent requests and automatically cleaned up when the request ends.\n\n---\n\n# Advanced Features\n\n## Raw SQL Methods\n\nWhen `find()` isn't enough, use real SQL directly. No query builder translation needed.\n\n> **Portability note:** Tuple API (`find()`, `create()`, `update()`) and relation loading are DB-portable (config-only switching). Raw SQL via `query()` is your escape hatch for DB-specific optimizations—you control the dialect (placeholders, functions, type casts).\n\n### Model.query() — SQL with Type-Safe Results\n\nExecute any SQL and get typed model instances. The SQL you write is exactly what runs.\n\n```typescript\n// Complex JOIN with subquery - returns User[] with full type safety\nconst activeUsers = await User.query(`\n  SELECT u.* \n  FROM users u\n  INNER JOIN (\n    SELECT user_id, COUNT(*) as order_count\n    FROM orders\n    WHERE created_at >= $1\n    GROUP BY user_id\n    HAVING COUNT(*) >= $2\n  ) active ON u.id = active.user_id\n  WHERE u.status = 'active'\n  ORDER BY active.order_count DESC\n`, [lastMonth, minOrders]);\n\n// Window functions, CTEs, recursive queries - anything PostgreSQL supports\n@model('user_rankings')\nclass UserRankingModel extends DBModel {\n  @column.number() user_id?: number;\n  @column.number() score?: number;\n  @column.number() rank?: number;\n  @column.number() percentile?: number;\n}\nconst UserRanking = UserRankingModel.asModel();\n\nconst rankings = await UserRanking.query(`\n  WITH ranked AS (\n    SELECT \n      user_id,\n      score,\n      RANK() OVER (PARTITION BY category ORDER BY score DESC) as rank,\n      PERCENT_RANK() OVER (PARTITION BY category ORDER BY score) as percentile\n    FROM user_scores\n    WHERE created_at >= $1\n  )\n  SELECT * FROM ranked WHERE rank <= 100\n`, [startDate]);\n// rankings: UserRanking[] - full IDE autocomplete, type checking\n```\n\n### DBModel.execute() - Non-Model Operations\n\nUse `execute()` for DDL, maintenance, and operations that don't return model instances.\nAccepts either raw SQL strings or `sql` tagged templates:\n\n```typescript\nimport { sql } from 'litedbmodel';\n\n// With sql tag — parameters are co-located\nawait DBModel.execute(sql`SELECT process_daily_aggregates(${targetDate})`);\nawait DBModel.execute(sql`SELECT pg_notify(${'events'}, ${JSON.stringify(payload)})`);\n\n// Raw SQL strings for DDL and maintenance\nawait DBModel.execute('REFRESH MATERIALIZED VIEW CONCURRENTLY monthly_sales_summary');\nawait DBModel.execute('VACUUM ANALYZE orders');\nawait DBModel.execute('CREATE INDEX CONCURRENTLY idx_orders_date ON orders(created_at)');\n```\n\n### When to Use Each Method\n\n| Method | Use Case | Returns |\n|--------|----------|---------|\n| `Model.find()` | Simple queries with conditions | `Model[]` |\n| `Model.query()` | Complex SQL returning model data | `Model[]` |\n| `DBModel.execute()` | DDL, maintenance, procedures | `{ rows, rowCount }` |\n| Query-Based Models | Reusable complex queries | `Model[]` via `find()` |\n\n---\n\n## Query-Based Models\n\nDefine models backed by complex SQL queries instead of simple tables.\nUse `find()`, `findOne()`, `count()` on JOINs, aggregations, CTEs, and analytics queries.\n\n### Basic Concept\n\n```typescript\nimport { DBModel, model, column } from 'litedbmodel';\n\n@model('user_stats')  // Alias for the CTE\nclass UserStatsModel extends DBModel {\n  @column.number() id?: number;\n  @column.text() name?: string;\n  @column.number() post_count?: number;\n  @column.number() comment_count?: number;\n  @column.datetime() last_activity?: string;\n\n  // Define the base query\n  static QUERY = `\n    SELECT \n      u.id,\n      u.name,\n      COUNT(DISTINCT p.id) AS post_count,\n      COUNT(DISTINCT c.id) AS comment_count,\n      GREATEST(MAX(p.created_at), MAX(c.created_at)) AS last_activity\n    FROM users u\n    LEFT JOIN posts p ON u.id = p.user_id\n    LEFT JOIN comments c ON u.id = c.user_id\n    WHERE u.deleted_at IS NULL\n    GROUP BY u.id, u.name\n  `;\n}\nexport const UserStats = UserStatsModel.asModel();\n\n// Use find() with additional conditions\nconst topContributors = await UserStats.find([\n  [sql`${UserStats.post_count} >= ?`, 10],\n  [sql`${UserStats.last_activity} > ?`, lastWeek],\n], { order: UserStats.post_count.desc(), limit: 100 });\n```\n\n### Generated SQL (CTE-based)\n\nWhen `find()` is called, the QUERY becomes a CTE (WITH clause):\n\n```sql\nWITH user_stats AS (\n  SELECT \n    u.id,\n    u.name,\n    COUNT(DISTINCT p.id) AS post_count,\n    COUNT(DISTINCT c.id) AS comment_count,\n    GREATEST(MAX(p.created_at), MAX(c.created_at)) AS last_activity\n  FROM users u\n  LEFT JOIN posts p ON u.id = p.user_id\n  LEFT JOIN comments c ON u.id = c.user_id\n  WHERE u.deleted_at IS NULL\n  GROUP BY u.id, u.name\n)\nSELECT * FROM user_stats\nWHERE post_count >= $1 AND last_activity > $2\nORDER BY post_count DESC\nLIMIT 100\n```\n\n### Parameterized Queries with `sql` Tag\n\nFor queries that need runtime parameters, use the `sql` tagged template with `withQuery()`. Parameters are co-located with SQL — no manual `$1`/`$2` numbering or DB dialect differences:\n\n```typescript\nimport { sql } from 'litedbmodel';\n\n@model('sales_report')\nclass SalesReportModel extends DBModel {\n  @column.number() product_id?: number;\n  @column.text() product_name?: string;\n  @column.number() total_quantity?: number;\n  @column.number() total_revenue?: number;\n  @column.number() order_count?: number;\n\n  static forPeriod(startDate: string, endDate: string) {\n    return this.withQuery(sql`\n      SELECT \n        p.id AS product_id,\n        p.name AS product_name,\n        SUM(oi.quantity) AS total_quantity,\n        SUM(oi.quantity * oi.unit_price) AS total_revenue,\n        COUNT(DISTINCT o.id) AS order_count\n      FROM products p\n      INNER JOIN order_items oi ON p.id = oi.product_id\n      INNER JOIN orders o ON oi.order_id = o.id\n      WHERE o.status = 'completed'\n        AND o.created_at >= ${startDate} \n        AND o.created_at < ${endDate}\n      GROUP BY p.id, p.name\n    `);\n  }\n}\nexport const SalesReport = SalesReportModel.asModel();\n\n// Usage\nconst Q1Report = SalesReport.forPeriod('2024-01-01', '2024-04-01');\nconst topProducts = await Q1Report.find([\n  [sql`${SalesReport.total_revenue} > ?`, 10000],\n], { order: SalesReport.total_revenue.desc() });\n```\n\nThe `sql` tag automatically converts interpolated values to `?` placeholders and extracts them as parameters. The internal dialect conversion (`?` → `$1`/`$2` for PostgreSQL) is handled transparently.\n\n### Type-Safe Column References in QUERY\n\nUse the `sql` tag with Column references and **Model classes** for refactoring safety. Columns and table names are embedded directly in SQL; they are not parameterized:\n\n```typescript\nimport { sql } from 'litedbmodel';\n\n@model('user_activity')\nclass UserActivityModel extends DBModel {\n  @column.number() user_id?: number;\n  @column.text() user_name?: string;\n  @column.number() total_posts?: number;\n\n  static QUERY = sql`\n    SELECT \n      ${User.id} AS user_id,\n      ${User.name} AS user_name,\n      COUNT(${Post.id}) AS total_posts\n    FROM ${User}\n    LEFT JOIN ${Post} ON ${User.id} = ${Post.user_id}\n    GROUP BY ${User.id}, ${User.name}\n  `;\n}\n```\n\nPassing a Model class (`${User}`) in the `sql` tag expands to its `TABLE_NAME`. This is consistent with column references (`${User.id}` → column name).\n\n### Use Cases\n\n| Use Case | Example |\n|----------|---------|\n| **Aggregations** | User stats, sales reports, leaderboards |\n| **Analytics** | Cohort analysis, funnel metrics, trend data |\n| **Denormalized Views** | Pre-joined data for read-heavy operations |\n| **Time-Series** | Period-based summaries with window functions |\n| **Recursive Queries** | Organizational hierarchies, category trees |\n\n### Design Considerations\n\n1. **Read-Only**: Query-based models don't support `create()`, `update()`, `delete()`\n2. **CTE vs Subquery**: CTE approach produces cleaner, more readable SQL\n3. **Parameter Ordering**: QUERY params come first, then `find()` condition params\n4. **Caching**: Consider materializing frequently-used query models as actual views\n\n---\n\n## Reader/Writer Separation\n\nFor production deployments with read replicas, litedbmodel supports automatic connection routing.\n\n### Configuration\n\n```typescript\nDBModel.setConfig(\n  { host: 'reader.db.example.com', database: 'mydb', ... },  // reader (default)\n  {\n    writerConfig: { host: 'writer.db.example.com', database: 'mydb', ... },\n    \n    // Keep using writer after transaction (default: true)\n    // Avoids stale reads due to replication lag\n    useWriterAfterTransaction: true,\n    \n    // Duration to keep using writer after transaction (ms, default: 5000)\n    writerStickyDuration: 5000,\n  }\n);\n```\n\n### Connection Routing Rules\n\n| Context | Connection | Write Allowed |\n|---------|------------|---------------|\n| Inside `transaction()` | Writer | ✅ Yes |\n| Inside `withWriter()` | Writer | ❌ No (SELECT only) |\n| After transaction (within sticky duration) | Writer | ❌ No |\n| Normal query | Reader | ❌ No |\n\n**Important:** Write operations (`create()`, `update()`, `delete()`) require a transaction. Attempting to write outside a transaction throws an error.\n\n### Transaction Options\n\n```typescript\n// Override global useWriterAfterTransaction per transaction\nawait DBModel.transaction(\n  async () => {\n    await User.create([[User.name, 'John']]);\n  },\n  { \n    useWriterAfterTransaction: false,  // Don't stick to writer after this transaction\n  }\n);\n```\n\n### Explicit Writer Access (SELECT)\n\nUse `withWriter()` when you need to read from writer to avoid replication lag:\n\n```typescript\n// Read from writer explicitly\nconst user = await DBModel.withWriter(async () => {\n  return await User.findOne([[User.id, 1]]);\n});\n\n// Write inside withWriter() throws error - use transaction() instead\nawait DBModel.withWriter(async () => {\n  await User.create([[User.name, 'Error']]);  // → WriteInReadOnlyContextError\n});\n```\n\n---\n\n## Multi-Database Support\n\nFor applications connecting to multiple databases, use `createDBBase()` to create isolated base classes.\n\n### Setup\n\n```typescript\nimport { DBModel, model, column } from 'litedbmodel';\n\n// Foundation database\nconst BaseDB = DBModel.createDBBase({\n  host: 'base-reader.example.com',\n  database: 'base_db',\n  // ...\n}, {\n  writerConfig: { host: 'base-writer.example.com', database: 'base_db', ... },\n});\n\n// CMS database\nconst CmsDB = DBModel.createDBBase({\n  host: 'cms-reader.example.com',\n  database: 'cms_db',\n  // ...\n}, {\n  writerConfig: { host: 'cms-writer.example.com', database: 'cms_db', ... },\n});\n```\n\n### Model Definition\n\n```typescript\n// Models inherit from their respective database base class\n@model('users')\nclass UserModel extends BaseDB {\n  @column.number() id?: number;\n  @column.text() name?: string;\n}\nexport const User = UserModel.asModel();\n\n@model('articles')\nclass ArticleModel extends CmsDB {\n  @column.number() id?: number;\n  @column.text() title?: string;\n}\nexport const Article = ArticleModel.asModel();\n```\n\n### Independent Transactions\n\nEach database has its own transaction context:\n\n```typescript\n// BaseDB transaction\nawait BaseDB.transaction(async () => {\n  await User.create([[User.name, 'John']]);\n});\n\n// CmsDB transaction (independent)\nawait CmsDB.transaction(async () => {\n  await Article.create([[Article.title, 'Hello World']]);\n});\n\n// Each DB also has independent withWriter()\nconst article = await CmsDB.withWriter(async () => {\n  return await Article.findOne([[Article.id, 1]]);\n});\n```\n\n### Scope Isolation\n\n| Resource | Scope | Description |\n|----------|-------|-------------|\n| Connection Handler | Per DBBase | Each base class has its own connection pool |\n| Transaction Context | Per DBBase | `AsyncLocalStorage` isolated per base class |\n| Writer Context | Per DBBase | `withWriter()` isolated per base class |\n| Sticky Timer | Per DBBase | Writer sticky duration tracked separately |\n| Middlewares | **Global** | Cross-cutting concerns shared across all DBs |\n| Model Registry | **Global** | For relation resolution across databases |\n\n---\n\n# APPENDIX\n\n## Comparison\n\n| Approach | Philosophy |\n|----------|------------|\n| Prisma | Abstraction-first |\n| Drizzle / Kysely | SQL-first |\n| litedbmodel | SQL-first + production safety |\n\n### Feature Comparison\n\n| Feature | litedbmodel | Kysely | Drizzle | TypeORM | Prisma |\n|---------|-------------|--------|---------|---------|--------|\n| **Relation Loading** | On-demand | Manual | Eager/upfront | Eager/upfront | Include |\n| **Complex Queries** | ✅ Real SQL | Builder DSL | Builder DSL | HQL/Builder | Prisma DSL |\n| **Query-Based Models** | ✅ | ❌ | ❌ | Views only | Views only |\n| **Model-Centric Relations** | ✅ On-demand | ❌ | ❌ Eager | ❌ Eager | ❌ Include |\n| **Transparent N+1 Prevention** | ✅ | ❌ Manual | ⚠️ { with } | Eager only | Include |\n| **IDE Refactoring** | ✅ | ❌ | ⚠️ Partial | ❌ | ❌ |\n| **SKIP Pattern** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Extensibility** | Middleware | Plugins | ❌ Manual | Subscribers | Extensions |\n| **Performance** | 🏆 Fastest overall ([benchmarks](./docs/BENCHMARK.md)) | Fast | Fast | Medium | Slow |\n\n> See [COMPARISON.md](./docs/COMPARISON.md) for detailed analysis and [BENCHMARK.md](./docs/BENCHMARK.md) for benchmarks.\n\n---\n\n## Security\n\nlitedbmodel parameterizes values by default via the `sql` tagged template. However, several escape hatches bypass parameterization and embed raw strings directly into SQL:\n\n| API | Risk |\n|-----|------|\n| `sql.raw()` | Embeds string directly — **never pass user input** |\n| `dbRaw()` | Raw SQL expression — trusted code only |\n| `dbImmediate()` | Inline value without parameterization — trusted code only |\n| `dbDynamic()` | Dynamic SQL fragment — trusted code only |\n\n**Safe pattern:** Use the `sql` tagged template for all dynamic values. Values interpolated via `${}` are automatically parameterized.\n\n```typescript\n// Safe — parameterized\nsql`SELECT * FROM users WHERE id = ${userId}`\n\n// UNSAFE — raw string injection\nsql.raw(userInput) // NEVER do this\n```\n\nFor vulnerability reporting, see [SECURITY.md](./SECURITY.md).\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}