{"_id":"najm-storage","_rev":"31-be662c7a3808b839d8f48ad9407d9c46","name":"najm-storage","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.1":{"name":"najm-storage","version":"1.0.1","_id":"najm-storage@1.0.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"99c74ee565afaf128488ca8d531cd4d693469f47","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.0.1.tgz","fileCount":9,"integrity":"sha512-iI+EqpWILgsrYs7eTDBEaqvCaRFYWPefzvVamlBhig1CM2MowfJ3RLM7GO4qZhKmXzUewhBTqjm3R/vPA2OhPA==","signatures":[{"sig":"MEYCIQCl48YVmzlEq2iAv9xqiL7/gLSJF/ccGGQBZpY6B7LaMwIhAPpIERjXBji0BXbd/uJp6wLFO4maCAtUNlBGbmYjGwjY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80008},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"1d826a069087ac4ebf9e8635f49c9c472168a604","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.1","najm-event":"^1.1.2","najm-database":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"*","hono":"^4.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.0.1_1772928359036_0.6487517007817141","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"najm-storage","version":"1.0.2","_id":"najm-storage@1.0.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"fd1912de816c26d2046995b3341b49385407e28f","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.0.2.tgz","fileCount":10,"integrity":"sha512-ad5bo6yiG1WLHV3V3yUVeMOZCRx5cKcHaPMNQA1ExbXciFUngwU30/6QranirwdakpkK2DZdwUECIFmPoSHATw==","signatures":[{"sig":"MEQCIFkKufWvmWHgwbX3TFde5KvWGKia4NbLn7lMZFLfrO9eAiBcbXneYWcD1FJSoFKM1gcYws8dK8ylGtErhFcaXvxqPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102272},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"1d826a069087ac4ebf9e8635f49c9c472168a604","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.1","najm-event":"^1.1.2","najm-database":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.0.2_1772982154798_0.5566607437425244","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"najm-storage","version":"1.1.0","_id":"najm-storage@1.1.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f2348cc813115a69fd67984f99948255f9d2468a","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.0.tgz","fileCount":10,"integrity":"sha512-6Ik8yekgo+UzjBeT24jI0BevyebSpcAWmT0QzGQcka79RJB2RcwfKzxjl6PnFrf81U8HDntibNasl/uYDN5/3Q==","signatures":[{"sig":"MEQCIGJ9ZtZ33+eH75k5xULydSCh+3dBtQso873aQaYuFnWeAiAMrmPuOep5KUk4sJRVbE/nu0jdNYPh1sA2K7GON6U5hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101960},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"e349c12fd257289d3f26545a7cdb9c48172c7871","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.0_1772987755268_0.04075602711757709","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"najm-storage","version":"1.1.1","_id":"najm-storage@1.1.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"02813fc3cf24536045d447de36e9445e8c25b2b1","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.1.tgz","fileCount":10,"integrity":"sha512-hNIx+yWUc2AlwC7LFNviDfx4Ojdj3BW9I4nRusQYy84xF6lpOuGbT1QtMlOVJTzqA3Twkwarjo79GvWgYM/JCA==","signatures":[{"sig":"MEUCIQC9V3DyhccS/rh5kOtUxF7cet4i8BICa/h5tZaI7NB21AIgJqcOa+MUR6P1z3wHPnL+Qy6jglodvgEbBpKrU4tsQyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102167},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"e349c12fd257289d3f26545a7cdb9c48172c7871","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.1_1772989095962_0.09959548987174394","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"najm-storage","version":"1.1.2","_id":"najm-storage@1.1.2","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b67b97c5240cb119059c0a00cd8e40ac076f69f9","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.2.tgz","fileCount":10,"integrity":"sha512-1Og7BRmfuhFgtACEBJcpJNwOCyyc69mwTrAOw89jeDoD65sJ/6qC/rVE6Am+jDfAfaaM/6MSpGpuu3qnHUYLQQ==","signatures":[{"sig":"MEYCIQCzJ+hLj3k59slp2O2VHsMkjgG050PnLOcBV3IbHamrhQIhAIAyDCM399P7etrzph7gk9bkjTSxrf5k+wkh50lCVvRC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102150},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"e349c12fd257289d3f26545a7cdb9c48172c7871","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.2_1772989749110_0.09887525535304542","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"najm-storage","version":"1.1.3","_id":"najm-storage@1.1.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"b52a35ca93739b180c73f576a5a0f88354d552c6","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.3.tgz","fileCount":10,"integrity":"sha512-zpCvs1Co/OhChKyPO8fS5tsK12EsBtspyzeQj1idcw3HDWxqr5G8hpqwy5wgtVLlkjow6nvvrhYW2AxHL0EGnA==","signatures":[{"sig":"MEYCIQCTEV7gxovgDgnFwdbTaAqP1UF0MEF5qwOj2NwHXyYAfAIhAIoh/echDjzd26dDt8FZr0fLtBha94aKAEZWAVS57PPv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102226},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"e349c12fd257289d3f26545a7cdb9c48172c7871","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.3_1772990196831_0.2956118940424919","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"najm-storage","version":"1.0.3","_id":"najm-storage@1.0.3","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"1662daffe44b7e92770bef3fc4ac06d5ddbe131d","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.0.3.tgz","fileCount":10,"integrity":"sha512-RHCFZB4ZBDZShF84hmuqgJtlWS3y/DM/uXWkhkkx7WyX7nAEGeYU4K3GFdqlH5Dl7503RZtxOZ5B4uAeW4L/OQ==","signatures":[{"sig":"MEUCIF9hyFzrcczntWm0Y+rAiQmjZZCyIUyge4sLWJwEKChYAiEAtzyeVr7veI2OjkE24CEdXq38cPJY7vXW3H54mIumWRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109258},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.1","najm-event":"^1.1.2","najm-database":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.0.3_1773870996415_0.7400607166075799","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"najm-storage","version":"1.0.4","_id":"najm-storage@1.0.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"1e30f5b275a597000c2ea44bcca49bb8e6232c74","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.0.4.tgz","fileCount":10,"integrity":"sha512-yxB1u+1EjH39OCSw/0LxE+3nOtMGzkSytDD+QKb+rn1o1UGl6YuFx41l+iFQJBAmJHjgUROGP69wrjEm93tu6w==","signatures":[{"sig":"MEQCIEV6tyXLQkVHB3dKTeILbcBUi+yfbM1DO8b7CG+VBucBAiAB8zJh0mmBVv1X+sVNlLnu2VagGM6JA4gZ55laGGdsgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111101},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.1","najm-event":"^1.1.2","najm-database":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.0.4_1774478144647_0.3656417916069463","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"najm-storage","version":"1.1.4","_id":"najm-storage@1.1.4","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"dd2b758516ef20a4b4f8ce271e57489fb80ef84e","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.4.tgz","fileCount":10,"integrity":"sha512-vvjCorJQRi7xG3z8PjkfHTJ9piiCP3O1ysC9o9qJuo+gYh3Ic5v0uOU7Px7k6R/hNWgUxdcPEA7aIlQLIAOn3Q==","signatures":[{"sig":"MEUCIG/Vy7k2i/8j45MGDlmzfcZpn+D3PAEB/lB1/jQ/z8rpAiEA5qbdo6nlivtlB3BF39s7JdTvAzU6svWEjADCLFu+tZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111101},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"bun":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"bun":"./src/schema/pg.ts","types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"bun":"./src/schema/mysql.ts","types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"bun":"./src/schema/sqlite.ts","types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.1","najm-event":"^1.1.2","najm-database":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.4_1774511942334_0.3664247315898701","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"najm-storage","version":"1.1.5","_id":"najm-storage@1.1.5","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"26240a239379e9793ed16af2db323b360348984f","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.5.tgz","fileCount":10,"integrity":"sha512-f2AIzQzBLF+pGXUvDn7KLJ/apGviv0CaV0xaSLTqq+ZaAp5+GYryvZuVf98xYMFKGpSGLF8NnnD1+/7PGzWmMQ==","signatures":[{"sig":"MEQCIBh7U0Du3nJYa6xAeif6HsXdi1s3OeNtvrz/vW5qOkcyAiAX/Y5JCQLAgJhDuDd45bfBLysX3pm9GYdG4s1LnrWuWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110958},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.2","najm-event":"^1.1.3","najm-database":"^1.1.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.5_1775244053176_0.7867974225464536","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"najm-storage","version":"1.1.6","_id":"najm-storage@1.1.6","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"13e95e6f657178a49d7db56b4ce2a4c1c74e744f","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.6.tgz","fileCount":10,"integrity":"sha512-OJvUfojnG5stlrLiGMTkSan483I7xt+VBOPYRAHVPDCyfuOlJGQXRNHLkjZ3GKBkEyt4ak3Xwouu4sgtPdG98g==","signatures":[{"sig":"MEUCIDxO7ZxqaDF4eCPNd7Y4gg18J+/kRWnHmyDKQcWmFpt1AiEAx7Ul9BtJXvXVJizqLOKabdKHothj+l7woZ5ooWeqDSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110958},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.1.3","najm-event":"^1.1.4","najm-database":"^1.1.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.6_1775245230443_0.47955800409540195","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"najm-storage","version":"1.1.7","_id":"najm-storage@1.1.7","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"504da145b01088baba2f5ced15df4e426702e373","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.7.tgz","fileCount":10,"integrity":"sha512-FKX2aF2XRtP62eQxhqcpt2vFfILJ0ysBZXSoJctDWlLW5uUVf/pOmTJSLfD64sOK9g9hqyx+cpDPsHOZBjApbg==","signatures":[{"sig":"MEYCIQC5i0QpbrS1CIRTgCFKdGV4uETC0CGeMr5gIdm4OkW4pgIhAPeWfjeHkchFGtwg2qhZAJb9cGfAd/3j/XBH8HBaMBP6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111002},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"ac99d8debc8e235e8993aa0c85221a397497c7dc","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.7_1775278447756_0.7434585029976677","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"najm-storage","version":"1.1.8","_id":"najm-storage@1.1.8","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"a36afb35c041ffa36abd04e1d56a4682a6b5187b","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.8.tgz","fileCount":10,"integrity":"sha512-vGefz45gunL5UJ9xRxaQCbXqvgOCnjcJZ2av5VT8DvkT/3DX7FxW7CWEMn/+sozjiE8Xc43ThzFLHpsAW62lbA==","signatures":[{"sig":"MEUCIDGsmUXGIY61tDOVpn2vt9NYNTJv3/rfbkH5k6VVOFXOAiEAm0WN0vXc1QRKpdquVOw5ebdCgY6XSvUtIQkjo9E7XfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112625},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"3df0ce6ebe51fa765ef8bed507ad482603f44da5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"workspace:*","najm-event":"workspace:*","najm-database":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.8_1775479901712_0.19451475147616026","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"najm-storage","version":"1.1.9","_id":"najm-storage@1.1.9","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"ef5ddec179a260c9430ad887a0c6c4d9415b9df1","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.9.tgz","fileCount":10,"integrity":"sha512-LaR8iFsrCbkvzihoYJYffDlycVqYf0AgMVTuTho3AfZmoBCHX1K0uui0/1PsCOZ/oneDp11nH7UA+K717x0LIQ==","signatures":[{"sig":"MEQCIHGv8DnIZK5Ik7J9WXNhWnJyPg7yks6vUml6WcIlPIIuAiAUfI3Ekb4QZflD7ZIv/F1lURLzU+Up1SlPInOoKKn5/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112546},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"3df0ce6ebe51fa765ef8bed507ad482603f44da5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.0","najm-event":"^1.1.4","najm-database":"^1.1.4"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.9_1775479999346_0.51050307944504","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"najm-storage","version":"1.1.10","_id":"najm-storage@1.1.10","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"5e6405722e17f0ab9e8518f9e92ac41692934812","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.10.tgz","fileCount":10,"integrity":"sha512-83T8jWRtC/SAAZ0yOlZ1bxI1S0oPDYbPJ5XPmypkVCuXAlZqMSu9x/40V2SsGxl/0Ctu3cL6N94RbYu87nSy8A==","signatures":[{"sig":"MEUCIFmiF+e6wDV0HMrUr+eYLPsJNFQn1/bXErUK6qxWabnzAiEA03hFGqfnOWTWiUuObFImghhcYuWQBWT3fOP6ZbuRSXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112547},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"0bd9ab17b7bf83a50b90235289906d5c1f40cbd3","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.1","najm-event":"^1.1.5","najm-database":"^1.1.5"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":">=1.0.0","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.10_1775480499143_0.8707533326936927","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"najm-storage","version":"1.1.11","_id":"najm-storage@1.1.11","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"0856c990517a18d45eddd64a83475cb1a8283c58","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.11.tgz","fileCount":10,"integrity":"sha512-55pUwAhTz1Se9RLCG3MrTk1Q2S1uAk88ACIaOSX54NhE5xx+pBT2F60R2iCgcTfvvrTSiEjWRoePAMzovsd6nA==","signatures":[{"sig":"MEYCIQDvUGlUGKEexPiwDxjZ/QV9NELH3fuM81N6ajCxhx+23QIhAIPmC/bK8laX7aopvuZyXQ0KdAJsBNMseD1zYpXQBa/s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112555},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.2","najm-event":"^1.1.6","najm-database":"^1.1.6"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.9","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.11_1775505812976_0.4168803508300496","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"najm-storage","version":"1.1.12","_id":"najm-storage@1.1.12","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f45a566ce6c33f518c82668abdf2c51a65025bfa","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.12.tgz","fileCount":10,"integrity":"sha512-TF6JuW6qXR3P+zIIBrFJg3TWfnnCeHlIfJ6g/f1ren82qADwZ6ijkQsP8U6ug/PMonUlcQBqafbk+rtOXY9aQQ==","signatures":[{"sig":"MEUCIQDKsaQ11jPowTK1jtDKL7Kv25oMXLzdmENp/00x4toSAwIgbueExk3ucitVF5PrxTPMtbr5+7l060k5ew/2OF8Tu1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.2","najm-event":"^1.1.6","najm-database":"^1.1.6"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.9","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.12_1775518532651_0.39574391371309714","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"najm-storage","version":"1.1.13","_id":"najm-storage@1.1.13","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"01c78d165a8db02d2e54fb073fb8c4ea85948d70","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.13.tgz","fileCount":10,"integrity":"sha512-nPgdIwzChVXPTwBw+eCVe24uAWrb2fALpPElnApyXMEOUa1bo5YQFnVxB16y9ihmtFlTrA6EpNfMOaDliwicIQ==","signatures":[{"sig":"MEYCIQCm2v58zOx5SWRBqtEbjtIS0JiwhAxLGJZYnk0/pUjuEwIhAJGQrM7nTSPqYX7OF7Vo9pbDxOGhcx1H5HVLa1a8yI0P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.3","najm-event":"^1.1.7","najm-database":"^1.1.7"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.10","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.13_1775680914643_0.1967183662788694","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"najm-storage","version":"1.1.14","_id":"najm-storage@1.1.14","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"58e3d73c7c3bf5f65d16e873d4f58317e4ac00b3","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.14.tgz","fileCount":10,"integrity":"sha512-YczEM4++0aLl23IKR6NCjWgGJe0Qry21G82WOwIqB0aPY3aUhWGEOGMU/JyUA5GGdJZqz6ieYBPRvxsOfAyQ6w==","signatures":[{"sig":"MEUCIQC6y6wWtC5MIB+ypzd2sdKHKBs20YgV9saMSRWoWmPxYQIgKD/fbT6/jF1EEx4ZbfYiRvsXBFUCZnbrMyTtUKR4Coo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"38d187a71d5e2388c515c12223027d0d78ba8453","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.4","najm-event":"^1.1.8","najm-database":"^1.1.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.11","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.14_1776978984181_0.2431553911467803","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"najm-storage","version":"1.1.15","_id":"najm-storage@1.1.15","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"0f3bab2961f1be7b7290ef50964430ee7c9d4884","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.15.tgz","fileCount":10,"integrity":"sha512-8lf7GifLg4l8YSLb6TR33SAky2ZSfvVRs+8ODV0u2giV5Je7xI+Tjf2NgGZLS7HYqSPIJ9nEME7P3m1jgONUFQ==","signatures":[{"sig":"MEUCIEXnJn+dwfjOKeZ5GiGA7M/hXOgunejCHXtGn2hiP3WEAiEA3yBYH6fAXivYipm3VpXAlHtaaSUv5lYHZms09UCAH0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112598},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"8e2c58b93387647f796ff44a772aeb4b4c639fe5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.6","najm-event":"^1.1.9","najm-database":"^1.1.10"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.12","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.15_1778194347705_0.09690660743482593","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"najm-storage","version":"1.1.16","_id":"najm-storage@1.1.16","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"f8732a20ca884347fc95d6c26018b0a9a2a018a3","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.16.tgz","fileCount":10,"integrity":"sha512-dYOIgzxOozsRH4dHoXaXzP5GeIJ3754m2ZUZi2aOIPWukgzyJriVgui7QkcpbwqBbTP06TMOUxUHdedyJH7a0A==","signatures":[{"sig":"MEUCIHoziKkkkYAfNaZR+8bRGbNm3HTpR0PzCo9pL7XMJDRHAiEA+pE6bm2FW0USi4czTLIluHsSrg0cGm2B8nXEY4zSpfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112599},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"8e2c58b93387647f796ff44a772aeb4b4c639fe5","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.7","najm-event":"^1.1.10","najm-database":"^1.1.11"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.13","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.16_1778194632658_0.8287681552568207","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"najm-storage","version":"1.1.17","_id":"najm-storage@1.1.17","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"2480289feb71ea0b5e6aaaefce7b71aaab87a3b3","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.17.tgz","fileCount":10,"integrity":"sha512-VuaXlFm6HlfzEQhUJmj7Ktzh0ezGtjag860qm+UZRmDg8ayKhYD9Oe+yaH9IZ5uJqKVMdQynIwIL5u4OYpLT+g==","signatures":[{"sig":"MEUCIQDf2UFvTNpSSiTQ2P2PBxFSt8lbiJUJCf/6hlq6sFEoVAIgZkgPGR+aZnUj+CRE8bHWVfjv30Ckf0s0e1YaYA6BRsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112599},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"}},"gitHead":"0a7c265de2d7708e8454e4b54ca99e4fce38e2e0","scripts":{"test":"bun test","build":"tsup","clean":"rimraf dist tsconfig.tsbuildinfo","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"najm-core":"^1.2.8","najm-event":"^1.1.11","najm-database":"^1.1.12"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","najm-mcp":"^0.0.14","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.17_1778660457695_0.6613253949163016","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"name":"najm-storage","version":"1.1.19","_id":"najm-storage@1.1.19","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"7d2f92b68691a36a9f3f5ce3dbd54b11d578f6b5","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.19.tgz","fileCount":13,"integrity":"sha512-S8H61j9Ky4ysV8bUzXBbvemiPPjxL2pHLM9UcYQmbsFUlNm3R+ruAhBhpGbus3ZzNkZRY3JaT7iHwpCmPor1LA==","signatures":[{"sig":"MEUCIQDMbkHgB8XBnz+seumWMliStkepaeIDz+7cEtteOB54iwIgbqiqL4GBblXY9UWqeivYg6QfmoG8XzgGEZwpyvX12lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493722},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"cab272e3042a756316ed943546f91400275974e9","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-ui":"^0.0.7","recharts":"^2.15.0","najm-core":"^1.2.10","najm-event":"^1.1.13","lucide-react":"^0.474.0","najm-database":"^1.1.14","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^3.4.17","@types/react":"^19","autoprefixer":"^10.4.20","@types/react-dom":"^19","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^0.0.16","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.19_1780437693557_0.8416590197703695","host":"s3://npm-registry-packages-npm-production"}},"1.1.20":{"name":"najm-storage","version":"1.1.20","_id":"najm-storage@1.1.20","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"4dde8df1e3866fa6b99b006a575b84b6364f566f","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.20.tgz","fileCount":13,"integrity":"sha512-3W40b9e4n1F00roS/LLOLg9Vx4PmBNLIMRiaKVeR7I+OPpHEltkh12bsYF9u0nGkoCU2yPhyQkvR+ffO2kWzfQ==","signatures":[{"sig":"MEUCIQDcJsMQDsYpgzu2IjA2jTRIjDgLJOL4Rm4ioORcz8Y8DAIgac4B9fI+XdCjxLcnKXYLO9cV+DIW+MnlZqD4uCIZcAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493728},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"cab272e3042a756316ed943546f91400275974e9","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^0.0.7","recharts":"^2.15.0","najm-core":"^1.2.10","najm-event":"^1.1.13","lucide-react":"^0.474.0","najm-database":"^1.1.14","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^3.4.17","@types/react":"^19","autoprefixer":"^10.4.20","@types/react-dom":"^19","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^0.0.16","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.20_1780440478953_0.8025973872944496","host":"s3://npm-registry-packages-npm-production"}},"1.1.21":{"name":"najm-storage","version":"1.1.21","_id":"najm-storage@1.1.21","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"6b0ae7634ab16750ac681a6dd10f34dfcc381d48","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.21.tgz","fileCount":13,"integrity":"sha512-mZrmt7dMd0Dyfw/7tOtEKs1o+Qqfb8RH+vXOTiYYdWgwta9LHJHFzkfm2e+m0JHbAsIcFP0k3ZgfLnntHYlokg==","signatures":[{"sig":"MEYCIQDTWDs+4+Zz/UZ9R4zcGOpIPiKaIpSbkwKE8i6/6LZ4YQIhALrBlpbHbQCQdoWPC5cUq+qeACw8nqAY7mbSw3Otw7Ih","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494959},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"8b9c2bacf60c75c5b42747b258290bb65a0896f9","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^0.0.13","recharts":"^2.15.0","najm-core":"^1.2.11","najm-event":"^1.1.14","lucide-react":"^0.474.0","najm-database":"^1.1.15","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^3.4.17","@types/react":"^19","autoprefixer":"^10.4.20","@types/react-dom":"^19","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^0.0.17","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.21_1781366352531_0.8767721747879293","host":"s3://npm-registry-packages-npm-production"}},"1.1.22":{"name":"najm-storage","version":"1.1.22","_id":"najm-storage@1.1.22","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"df0c6924286bc4aa368d2898b039bafa7ac7d252","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-1.1.22.tgz","fileCount":13,"integrity":"sha512-3+36qy8jlY2YIApi6kiucER4QC/G5oTyRtZWEPHxzFVS75DBFd7Atwfzsga/YHYFAGtxOlgmRu9rNd7Scx2u+Q==","signatures":[{"sig":"MEUCIQDihz5IibPeqZcHglWsuHQ2gePcebUlp0bHcg/pDsTCtAIgYTEyYqx4PPIDrMCLqeqUOHmXtnctM14FprqHlZDolxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":670031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"064f25b375f606c276a5651ea316714354a2a4a4","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"10.9.2","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"23.9.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^0.0.20","recharts":"^2.15.0","najm-core":"^1.2.12","najm-event":"^1.1.15","lucide-react":"^0.474.0","najm-database":"^1.1.16","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^4","@types/react":"^19","@types/react-dom":"^19","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^0.0.18","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_1.1.22_1782078134137_0.9362101210007194","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"najm-storage","version":"2.0.1","license":"MIT","_id":"najm-storage@2.0.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"eb5f9e7ab94c79cada5189d248132e994062f16c","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-2.0.1.tgz","fileCount":13,"integrity":"sha512-NWcRV7u+oU5NwVuyTbouSe4jtavdwtIq622p8BICAjib7Hp5ygpRXZ4DNzQrh8OKuLBxG18m43LiH+ytBoS2Mg==","signatures":[{"sig":"MEYCIQCVpEwfKexYfeUuQT2WGdtUMhmH6Xe/c5jvLKzpnzVMLQIhAJEYK6ocOcjYCJgSjZ8EAZ4Ve7ju+bbeF3TyPSrPn2l1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668973},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"bc3594d46998492318e804ff7f9389b1c7934a43","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.16.0","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"24.18.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^2.0.1","recharts":"^2.15.0","najm-core":"^2.0.1","najm-event":"^2.0.1","lucide-react":"^0.474.0","najm-database":"^2.0.1","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^4","@types/react":"^19","@types/react-dom":"^19","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^2.0.1","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_2.0.1_1783690030271_0.853080517655721","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"najm-storage","version":"2.1.0","license":"MIT","_id":"najm-storage@2.1.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"02f5a535f451f4227feb06f3db0e59905499000e","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-2.1.0.tgz","fileCount":17,"integrity":"sha512-QRP3vEsrHUtApVgjZrsYgtpylyHTRr8d8wXbIVFTXqkJbB93SRoqHSnSO6kyfi6TfGpf/9RgPBpfvDoFaTt4qg==","signatures":[{"sig":"MEQCIBFvj/kzmhlZIQTNyYIB1+sPY1PACYsxkb8oIwuqjMG7AiATx7VDvjU4HfsrINidMEpj8j8IhvkZ4YXwCQXGL8h/Iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699096},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","default":"./dist/client/index.mjs"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./client-db":{"types":"./dist/client-db/index.d.ts","import":"./dist/client-db/index.mjs","default":"./dist/client-db/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"bc3594d46998492318e804ff7f9389b1c7934a43","scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.16.0","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"24.18.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^2.1.4","recharts":"^2.15.0","najm-core":"^2.0.1","najm-event":"^2.0.1","lucide-react":"^0.474.0","najm-database":"^2.0.1","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^4","@types/react":"^19","fake-indexeddb":"^6.0.0","@types/react-dom":"^19","@electric-sql/pglite":"^0.5.4","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^2.0.1","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0","@electric-sql/pglite":">=0.5.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_2.1.0_1783804605563_0.5254154774447772","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"najm-storage","version":"2.1.1","license":"MIT","_id":"najm-storage@2.1.1","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"4221be80055dd9eb17ac9cb8f07bba0b61f10baa","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-2.1.1.tgz","fileCount":17,"integrity":"sha512-P/sEjCWp6zT1VQOAzBixXaxVvqU+dfzuQWAXHB59PVWmju6vY+yxw7q+41xLMlCIZx2GY9RYgDFDInFu0sc+Vg==","signatures":[{"sig":"MEQCIFrAnoUN9kFZYIIoipuC+QY3t5cw+T4B1drRmEshBZugAiB31J8q4s8DOTe/bP8J24nyDjRYzLMZOW9qRJIn5FMZ+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706324},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","default":"./dist/client/index.mjs"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./client-db":{"types":"./dist/client-db/index.d.ts","import":"./dist/client-db/index.mjs","default":"./dist/client-db/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"scripts":{"test":"bun test --preload ./test/studio/setup.ts","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"24.16.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^2.1.23","recharts":"^2.15.0","najm-core":"^2.0.3","najm-event":"^2.0.2","lucide-react":"^0.474.0","najm-database":"^2.0.2","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.1","happy-dom":"^17.6.3","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.1","tailwindcss":"^4","@types/react":"^19","fake-indexeddb":"^6.0.0","@types/react-dom":"^19","@electric-sql/pglite":"^0.5.4","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.0.0","react":">=18","najm-mcp":"^2.0.2","react-dom":">=18","drizzle-orm":"*","reflect-metadata":"^0.2.0","@electric-sql/pglite":">=0.5.0"},"optionalDependencies":{"sharp":"^0.33.0"},"peerDependenciesMeta":{"najm-mcp":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_2.1.1_1784718946915_0.7052572394624921","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"najm-storage","version":"2.2.0","license":"MIT","_id":"najm-storage@2.2.0","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"dist":{"shasum":"8dd4ca81c57f324f050f446ee90b7d97ff03c6e6","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-2.2.0.tgz","fileCount":17,"integrity":"sha512-44LFOYhKuaQTEcE96rBcdROUrgXXIg98J9FYXEDHXUjQYLrhgZG3i50YS23MPbFxz+DOVkGOBL8QRd3bpa/B8w==","signatures":[{"sig":"MEYCIQC+DQZIrNAmi+HCOC6XGDvMfDZN4Mu2WV99CT3HHTkdKQIhANNiKSpVAtgZ1IAHOKHqQaBfF/iMTLQaiL35Dy38RU0q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":719983},"main":"./dist/index.js","type":"module","_from":"file:C:/Users/hdevlop/Desktop/najm/dist-publish/najm-storage-2.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","default":"./dist/client/index.mjs"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./client-db":{"types":"./dist/client-db/index.d.ts","import":"./dist/client-db/index.mjs","default":"./dist/client-db/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"scripts":{"test":"bun test ./test/client ./test/folder-placeholder.test.ts ./test/preview.test.ts ./test/storage-dx.test.ts ./test/tags.test.ts && bun test --preload ./test/studio/setup.ts ./test/studio && bun test --preload ./test/studio/setup.ts ./test/mocked-studio","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_resolved":"C:\\Users\\hdevlop\\Desktop\\najm\\dist-publish\\najm-storage-2.2.0.tgz","_integrity":"sha512-44LFOYhKuaQTEcE96rBcdROUrgXXIg98J9FYXEDHXUjQYLrhgZG3i50YS23MPbFxz+DOVkGOBL8QRd3bpa/B8w==","_npmVersion":"11.13.0","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"_nodeVersion":"24.16.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^2.9.0","recharts":"^2.15.0","najm-core":"^2.0.5","najm-event":"^2.0.2","lucide-react":"^0.474.0","najm-database":"^2.0.3","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.22","najm-mcp":"^2.1.0","happy-dom":"^20.11.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.2","tailwindcss":"^4","@types/react":"^19","fake-indexeddb":"^6.0.0","@types/react-dom":"^19","@electric-sql/pglite":"^0.5.4","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.12.18","react":">=18","najm-mcp":"^2.1.0","react-dom":">=18","drizzle-orm":">=0.45.2","reflect-metadata":"^0.2.0","@electric-sql/pglite":">=0.5.0"},"optionalDependencies":{"sharp":"^0.35.3"},"peerDependenciesMeta":{"najm-mcp":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/najm-storage_2.2.0_1786302585689_0.05818258740111237","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"najm-storage@3.0.0","dist":{"shasum":"6f32683c4132e856f29cb125755d25ab853665b3","tarball":"https://registry.npmjs.org/najm-storage/-/najm-storage-3.0.0.tgz","fileCount":17,"integrity":"sha512-1QYZ8bnVws9h/WdSMSmVkMRXzSwNaPrf2Hja4a+ORXjgFNGuSeNJSfLE0yG+9lgNQAOuRwXxB4guPgJ/WegkVQ==","signatures":[{"sig":"MEYCIQCGET+tGODhWZNbPIUcCZJ0J7riCBnTY0qn/Y5kkZ7EYgIhAOOX5KlN2Bj+ay6ok43qMXgHwQ66FvcvUoexB4kSguEK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBrpTDJe5dO/1ZZnGnQ3b4W9cOKQJh7LIdnRWxVGlM6RAiEAgcbovt/FzhjNrXlSbgtNLy3Gi7neBtpf3SnEA6TTvEc="}],"unpackedSize":730484},"main":"./dist/index.js","name":"najm-storage","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./pg":{"types":"./dist/schema/pg.d.ts","import":"./dist/schema/pg.js","default":"./dist/schema/pg.js"},"./mysql":{"types":"./dist/schema/mysql.d.ts","import":"./dist/schema/mysql.js","default":"./dist/schema/mysql.js"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.mjs","default":"./dist/client/index.mjs"},"./sqlite":{"types":"./dist/schema/sqlite.d.ts","import":"./dist/schema/sqlite.js","default":"./dist/schema/sqlite.js"},"./studio":{"types":"./dist/studio/index.d.ts","import":"./dist/studio/index.mjs","default":"./dist/studio/index.mjs"},"./client-db":{"types":"./dist/client-db/index.d.ts","import":"./dist/client-db/index.mjs","default":"./dist/client-db/index.mjs"},"./package.json":"./package.json","./studio/styles.css":{"import":"./dist/studio/styles.css","default":"./dist/studio/styles.css"}},"gitHead":"8d9c2c83cc6467bbef4f93a897966da9e501e763","license":"MIT","scripts":{"test":"bun test ./test/client ./test/folder-placeholder.test.ts ./test/preview.test.ts ./test/storage-dx.test.ts ./test/tags.test.ts && bun test --preload ./test/studio/setup.ts ./test/studio && bun test --preload ./test/studio/setup.ts ./test/mocked-studio","build":"bun scripts/build.ts","clean":"rimraf dist tsconfig.tsbuildinfo","build:css":"node scripts/build-css.mjs","test:watch":"bun test --watch"},"version":"3.0.0","_npmUser":{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"},"_npmVersion":"11.13.0","description":"File storage plugin for najm framework — local filesystem and database backends","directories":{},"maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"_nodeVersion":"24.16.0","dependencies":{"swr":"^2.3.0","clsx":"^2.1.1","sonner":"^2","najm-kit":"^2.16.12","recharts":"^2.15.0","najm-core":"^3.0.0","najm-event":"^2.0.2","lucide-react":"^0.474.0","najm-database":"^2.0.4","tailwind-merge":"^2.6.0","@tanstack/react-router":"^1.170.8"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.2.1","tsup":"^8.5.1","rimraf":"^6.0.1","postcss":"^8.5.22","najm-mcp":"^2.2.2","happy-dom":"^20.11.1","typescript":"^5.7.3","@types/node":"^25.0.2","drizzle-orm":"^0.45.2","tailwindcss":"^4","@types/react":"^19","fake-indexeddb":"^6.0.0","@types/react-dom":"^19","@electric-sql/pglite":"^0.5.4","@tailwindcss/postcss":"^4","@testing-library/react":"^16.3.2"},"peerDependencies":{"zod":"^4.0.0","hono":"^4.12.18","react":">=18","najm-mcp":"^2.2.2","react-dom":">=18","drizzle-orm":">=0.45.2","reflect-metadata":"^0.2.0","@electric-sql/pglite":">=0.5.0"},"optionalDependencies":{"sharp":"^0.35.3"},"peerDependenciesMeta":{"najm-mcp":{"optional":true},"@electric-sql/pglite":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/najm-storage_3.0.0_1790641051393_0.3145527197472149"}}},"time":{"created":"2026-03-08T00:05:59.035Z","modified":"2026-09-29T00:17:31.627Z","1.0.1":"2026-03-08T00:05:59.219Z","1.0.2":"2026-03-08T15:02:34.934Z","1.1.0":"2026-03-08T16:35:55.419Z","1.1.1":"2026-03-08T16:58:16.116Z","1.1.2":"2026-03-08T17:09:09.256Z","1.1.3":"2026-03-08T17:16:37.012Z","1.0.3":"2026-03-18T21:56:36.554Z","1.0.4":"2026-03-25T22:35:44.836Z","1.1.4":"2026-03-26T07:59:02.457Z","1.1.5":"2026-04-03T19:20:53.371Z","1.1.6":"2026-04-03T19:40:30.596Z","1.1.7":"2026-04-04T04:54:07.902Z","1.1.8":"2026-04-06T12:51:41.859Z","1.1.9":"2026-04-06T12:53:19.500Z","1.1.10":"2026-04-06T13:01:39.307Z","1.1.11":"2026-04-06T20:03:33.134Z","1.1.12":"2026-04-06T23:35:32.863Z","1.1.13":"2026-04-08T20:41:54.780Z","1.1.14":"2026-04-23T21:16:24.455Z","1.1.15":"2026-05-07T22:52:27.855Z","1.1.16":"2026-05-07T22:57:12.787Z","1.1.17":"2026-05-13T08:20:57.841Z","1.1.19":"2026-06-02T22:01:33.734Z","1.1.20":"2026-06-02T22:47:59.105Z","1.1.21":"2026-06-13T15:59:12.662Z","1.1.22":"2026-06-21T21:42:14.279Z","2.0.1":"2026-07-10T13:27:10.394Z","2.1.0":"2026-07-11T21:16:45.697Z","2.1.1":"2026-07-22T11:15:47.090Z","2.2.0":"2026-08-09T19:09:45.840Z","3.0.0":"2026-09-29T00:17:31.478Z"},"license":"MIT","description":"File storage plugin for najm framework — local filesystem and database backends","maintainers":[{"name":"hdevlop","email":"hdevlop.jebara@gmail.com"}],"readme":"# najm-storage\r\n\r\nStorage plugin for Najm with local and database providers. Includes an optional **Storage Studio** admin UI (React) exposed via built-in REST routes, plus browser-side storage modules (`najm-storage/client` and `najm-storage/client-db`).\r\n\r\n## Installation\r\n\r\n```bash\r\nbun add najm-storage\r\n```\r\n\r\n`zod` is a peer dependency and should be installed in the consuming app.\r\n\r\n## Core Exports\r\n\r\n- `storage(config)` plugin factory\r\n- `StorageService`, `StorageValidator`\r\n- `STORAGE_SERVICE` — resolution token for the application's one `StorageService`\r\n- File helpers: `resolveStorageMimeType`, `analyzeFile`, `getReadableFileSize`\r\n- Path helpers: `normalizeStoragePath`, `isSafeStoragePath`, `assertSafeStoragePath`\r\n- Upload validation: `validateUploadInput`\r\n- Schemas: `storageNamespaceSchema`, `storagePathSchema`, `storageUploadSchema`\r\n- DTO mapper: `toStorageFileDto`\r\n\r\n## StorageService Convenience Methods\r\n\r\n- `getInfoOrThrow(namespace, filePath, message?)`\r\n- `deleteOrThrow(namespace, filePath, message?)`\r\n- `saveBase64(namespace, filePath, base64, mimeType?)`\r\n\r\n## Resolving storage from another package\r\n\r\nInside an application, inject `StorageService` as usual. From **another\r\npackage**, resolve `STORAGE_SERVICE` instead:\r\n\r\n```ts\r\nconst STORAGE_SERVICE = Symbol.for('najm:storage:service');\r\n\r\nif (!container.has(STORAGE_SERVICE)) {\r\n  throw new Error('register storage() before this plugin');\r\n}\r\nconst storage = await container.resolve(STORAGE_SERVICE);\r\n```\r\n\r\nA class is only a working DI token while every caller holds the same\r\nconstructor. A package that ships as `dist` resolves `najm-storage` through its\r\nown `node_modules`, while an application may map the specifier to `src` — two\r\nmodule instances, two constructors. `container.resolve(StorageService)` given\r\nthe wrong one does not throw; it builds a **second** service with none of the\r\napplication's configuration, and files go somewhere nothing serves from.\r\n\r\n`storage()` aliases `STORAGE_SERVICE` to its own class, and `Symbol.for` returns\r\nthe identical symbol in every copy, so the token always reaches the one service\r\nthe application booted. Declare the symbol locally, as above, rather than\r\nimporting it — that keeps `najm-storage` out of your module graph when the\r\nfeature that needs it is off.\r\n\r\n## Service-only registration\r\n\r\nApplications that own their upload and delivery controllers can disable the\r\ngeneric storage REST routes while retaining `StorageService`,\r\n`StorageValidator`, provider configuration, events, and the stable\r\n`STORAGE_SERVICE` alias:\r\n\r\n```ts\r\nserver.use(storage({\r\n  provider: 'local',\r\n  basePath: './storage',\r\n  routes: false,\r\n}));\r\n```\r\n\r\nThis prevents the generic `/:namespace/files/*` routes from competing with\r\napplication-owned exact routes. `studio: true` remains an HTTP surface and\r\ntherefore still requires an explicit `guards` configuration. For a strictly\r\nservice-only plugin, leave `studio` and `mcp` disabled.\r\n\r\n## Browser Storage (`najm-storage/client`)\r\n\r\nBrowser-only module persisting to IndexedDB — no dependencies, safe to import in SSR code (nothing touches IndexedDB until first use). Provides a **file store** (blobs by namespace/path, mirroring the server API) and **data stores** (JSON documents with indexed queries).\r\n\r\n```ts\r\nimport { createClientStorage } from 'najm-storage/client';\r\n\r\nconst storage = createClientStorage({\r\n  db: 'my-app',\r\n  stores: [\r\n    { name: 'products', indexes: [{ name: 'price', keyPath: 'price' }] },\r\n    { name: 'drafts' },  // keyPath defaults to 'id'\r\n  ],\r\n});\r\n\r\n// Files — same shape as the server-side provider API\r\nawait storage.files.save('avatars', 'me.png', file);           // File | Blob | ArrayBuffer | Uint8Array | string\r\nconst blob = await storage.files.get('avatars', 'me.png');     // Blob | null\r\nconst url = await storage.files.objectUrl('avatars', 'me.png'); // for <img src>\r\nawait storage.files.list('avatars');                            // ClientFileInfo[]\r\nawait storage.files.delete('avatars', 'me.png');\r\nawait storage.files.listNamespaces();\r\n\r\n// Data — documents with indexed queries\r\nawait storage.data.put('products', { id: 'p1', name: 'Widget', price: 5 });\r\nawait storage.data.get('products', 'p1');\r\nawait storage.data.query('products', { index: 'price', range: { lte: 10 }, limit: 20 });\r\nawait storage.data.count('products');\r\n\r\nawait storage.close();    // close the IndexedDB connection\r\nawait storage.destroy();  // delete the whole database\r\n```\r\n\r\nNotes:\r\n- Mime types are inferred from `File.type` or the path; categories reuse the server's `FileCategory` map.\r\n- Browser storage is per-user, per-device and evictable — call `navigator.storage.persist()` for durability and treat the server as the source of truth.\r\n\r\n## Postgres in the Browser (`najm-storage/client-db`)\r\n\r\nOptional entry wrapping **PGlite** (real Postgres compiled to WASM) with drizzle, so the browser can run the *same pg-dialect schema* as the server. Requires the optional peer dependency:\r\n\r\n```bash\r\nbun add @electric-sql/pglite\r\n```\r\n\r\n```ts\r\nimport { createClientDb } from 'najm-storage/client-db';\r\nimport { schema } from './database/schema';  // same pg schema as the server\r\n\r\nconst { db, client, close } = createClientDb({\r\n  name: 'my-app',\r\n  schema,\r\n  persistence: 'idb',   // 'idb' (default) | 'opfs' (Web Worker only) | 'memory'\r\n});\r\n\r\nawait db.select().from(schema.products);\r\n```\r\n\r\nThe ~3.7 MB WASM binary is only bundled by apps that import this entry. For multi-tab apps, see [PGlite's multi-tab worker](https://pglite.dev/docs/multi-tab-worker).\r\n\r\n## Storage Studio (Admin UI)\r\n\r\nWhen the `storage` plugin is registered with `studio: true`, a `StorageStudioController` is mounted at `/storage-studio`. This provides REST endpoints consumed by the `najm-storage/studio` React frontend.\r\n\r\n## Security Defaults\r\n\r\nStorage HTTP routes and MCP tools require an explicit access decision. Configure `guards`\r\nwith route guards such as `isAuth()`, or pass `guards: []` only when the file\r\nroutes are intentionally public.\r\n\r\n```ts\r\nimport { isAuth } from 'najm-auth';\r\nimport { storage } from 'najm-storage';\r\n\r\nserver.use(storage({\r\n  provider: 'local',\r\n  basePath: './uploads',\r\n  guards: [isAuth()],\r\n}));\r\n```\r\n\r\n`storage()` without `guards` throws during plugin setup whenever generic REST,\r\nStudio, or MCP endpoints are enabled. Public endpoints must be written as\r\n`storage({ guards: [] })` so accidental unauthenticated upload, list, serve,\r\npreview, or Studio APIs do not ship silently. A service-only registration with\r\n`routes: false` and Studio disabled has no HTTP surface and does not require\r\nroute guards.\r\n\r\nOther default protections:\r\n\r\n- paths are normalized and reject traversal, null bytes, malformed encodings,\r\n  absolute paths, and empty paths\r\n- uploads default to 10 MB max size\r\n- dangerous executable/script extensions are blocked unless security checks are\r\n  explicitly bypassed in lower-level helper calls\r\n- MCP tools are disabled by default and require both `mcp: true` and the MCP\r\n  plugin. The server-path upload tool requires a separate opt-in.\r\n\r\nSeparate file serving from management with `manageGuards`. When omitted, it\r\nuses `guards`. Management covers list, file information, upload, delete,\r\nStudio, and MCP tools:\r\n\r\n```ts\r\nstorage({\r\n  guards: [isAuth()],\r\n  manageGuards: [isAdmin()],\r\n  mcp: false,\r\n});\r\n```\r\n\r\n`storage_upload_from_path` is absent by default. To enable it, set\r\n`mcpUploadFromPath: { allowedRoots: ['/srv/imports'] }` alongside `mcp: true`.\r\nThe source and allowed roots are resolved with `realpath` before reading, so a\r\nlink outside an allowed root is refused. Production additionally requires\r\n`allowInProduction: true` in that option.\r\n\r\n### Studio Routes\r\n\r\n| Route | Method | Query / Body | Description |\r\n|-------|--------|--------------|-------------|\r\n| `/storage-studio/buckets` | `GET` | — | List all namespaces |\r\n| `/storage-studio/buckets/:namespace/files` | `GET` | `?prefix=`, `?delimiter=/` | List files in a namespace |\r\n| `/storage-studio/buckets/:namespace/files/presign` | `POST` | `{ path, method, ttlSeconds }` | Generate presigned URL |\r\n| `/storage-studio/:namespace/files/*` | `DELETE` | `?hard=true` | Soft delete file (fallback to hard) |\r\n| `/storage-studio/trash` | `GET` | — | List soft-deleted files across namespaces |\r\n| `/storage-studio/trash/restore` | `POST` | `{ namespace, path }` | Restore a file from trash |\r\n| `/storage-studio/usage` | `GET` | — | Aggregated usage stats |\r\n| `/storage-studio/activity` | `GET` | — | Recent audit log entries |\r\n\r\n### Provider Capabilities\r\n\r\nNot all providers support every Studio feature:\r\n\r\n| Feature | Local | DB |\r\n|---------|-------|-----|\r\n| Upload / download / list | ✓ | ✓ |\r\n| Soft delete / trash | ✓ | ✓ |\r\n| Presign | ✓ (HMAC) | Falls back to direct URL |\r\n| Serve path | ✓ | ✓ |\r\n\r\n### Configuration\r\n\r\n```ts\r\nserver.use(storage({\r\n  provider: 'local',      // 'local' | 'db'\r\n  guards: [isAuth()],     // required; use [] only for intentional public routes\r\n  basePath: './uploads',  // Local provider root directory\r\n  dbTable: 'files',       // DB provider table name\r\n  maxUploadSize: 10_000_000,\r\n  allowedMimeTypes: ['image/*', 'application/pdf'],\r\n}));\r\n```\r\n\r\nTo use the React UI, import the studio from the parent package:\r\n\r\n```bash\r\nbun add najm-storage\r\n```\r\n\r\n```ts\r\nimport { StorageStudio, StorageStudioProvider } from 'najm-storage/studio';\r\nimport 'najm-storage/studio/styles.css';\r\n```\r\n\r\n## Example\r\n\r\n```ts\r\nimport {\r\n  resolveStorageMimeType,\r\n  normalizeStoragePath,\r\n  validateUploadInput,\r\n} from 'najm-storage';\r\n\r\nconst path = normalizeStoragePath('icons%2Flogo.png');\r\nconst mimeType = resolveStorageMimeType(undefined, path);\r\nconst result = validateUploadInput({ filePath: path, mimeType, size: 2048 });\r\n\r\nif (!result.valid) {\r\n  throw new Error(result.error);\r\n}\r\n```\r\n","readmeFilename":"README.md"}