{"_id":"drizzle-cube","_rev":"201-e813f4fb52172947d791e7be4a15baf7","name":"drizzle-cube","dist-tags":{"latest":"0.9.6"},"versions":{"0.1.0":{"name":"drizzle-cube","version":"0.1.0","keywords":["drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"480a4c0d4e508074b552cf58e51b6c5231b02d2b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.0.tgz","fileCount":6,"integrity":"sha512-xv1pRWLFekcnw35OoBAkWYRXR5b/vYEi2Oko5hKxDIpjUHXrj7oTTQ3AscabrmzYwCagZsCwsjsStt30meN5jQ==","signatures":[{"sig":"MEUCIDogpfxcEFs8PUdI5FJtp+tkKAqmDI24nlUjn75po6K5AiEAqMtqVe/N285wAxUg/QDUW3tSoc1u+Gsv3Qbye7870bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39589},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"}},"gitHead":"4d4a7f6ff9b8a2fcb2e475ce692395c40780987d","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.0","description":"A Cube.js-compatible semantic layer for Drizzle ORM with React analytics dashboard","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.22.0","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.0.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0","concurrently":"^8.0.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.33.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.0_1755406609468_0.30096618644284034","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"drizzle-cube","version":"0.1.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e3c51aab2f914918cfd76c33bb09f38a2f9688d2","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.1.tgz","fileCount":9,"integrity":"sha512-B0McLTukewxJJ2hcmXx2nVfUfVHg4B85T/ZmdfsUS/G8EG3/P4HGaD99fliGHTEkSRM88LQ9RznPANbNCN+/5w==","signatures":[{"sig":"MEQCIAg9iv3Kmvokxh4+A4FTH33XED/T/VvYJqi1yU0MQJjuAiB0UigDrI9es1TUGsq1a8/RiLsYj0PyU9T1s6Ifr6FyUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185376},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"}},"gitHead":"26c611ec3e502a8b56f452daec39d15594df08a0","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.0.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","@types/react":"^18.0.0","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.1_1755441709590_0.270899363250654","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"drizzle-cube","version":"0.1.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b033f779e2b38bcc87d3ac2941853b4439055ccf","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.2.tgz","fileCount":9,"integrity":"sha512-42G2547ohvI/EgbvH82CqZ3iu5sIW9CmhCdHl2HOaLFX/GtSlNmP1UyngUFe+HwBDPw8RZE8VjSSBQv6+Sct3g==","signatures":[{"sig":"MEUCIQCwIQK7MeiodapRifUrNby8AvXJbzAM1osr8yoWkzoBKgIgTPzJYk2YShJqXlDebTFmHQFVD6vjma3c2VMjdNGYv6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186419},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"}},"gitHead":"0e8e6c569cc07303e5301f094a783222ef1abd20","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.0.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","@types/react":"^18.0.0","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.2_1755442035344_0.8088264565826799","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"drizzle-cube","version":"0.1.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"81ca8917f53bd3affe45314ebd09cf7fd93a099c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.3.tgz","fileCount":9,"integrity":"sha512-NLYvlEE190uhIE+Qbz/DdgJx5SZYCplHoTLcF022ZlrbE3g5NcwxpI7VmRkkIyQGfFtrP+L1+vkaY+KFb2Sdww==","signatures":[{"sig":"MEUCIQCVC6+kASnnAB1itvisorDIZiPfZTj7CTdx2/Mo8wyf2wIgavMDKiFG9gxEeBivci4pUM3mzS7rE9nyCsSiW8AsV0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185226},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"}},"gitHead":"e44f1e340a15263d3950467f1dd08f1fa9cd1d30","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.0.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","@types/react":"^18.0.0","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.3_1755442397709_0.7093924388023805","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"drizzle-cube","version":"0.1.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"02302cd5b5ce8238cd1a67c7f32e0ce51e94b41f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.4.tgz","fileCount":41,"integrity":"sha512-FEKyDmXk0USNdH2trqK7yi6XqziiYZTw69/nAVnfrJ3tLSatVsDYqQMHby5wHcTjh4tHUci0O1tZTNPiw1SUuw==","signatures":[{"sig":"MEUCIDL4cT23+MD6DfoZE64mIiqEHrHkyl3NBkqmBsXiTJ8+AiEArJ54AJueBne+PK2VtodgcR4WW690K5lSDK/PFlSEn8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":958313},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e8859bd1b6dacdb2147d702fcda6dc1b768d7bfe","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","build:all":"npm run build && npm run build:help","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","@types/react":"^18.0.0","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.4_1755533886115_0.9948378635791786","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"drizzle-cube","version":"0.1.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"5fe5bd6adee8933bfb674e58cbc8d0969645e22b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.5.tgz","fileCount":48,"integrity":"sha512-Fg04xcS+v+3a9+O7/ImCRWmOxk0U7kJ3lXS16dOged5vKJs1x9qctXULefIJFH5Uu8gBIUsXBms1W1mYfxBGFQ==","signatures":[{"sig":"MEUCIBYKyQ9h1dpLZfA04FJ5uaAXW7BvsBUqbtX9wR6qFgnvAiEA1VwKftjkKgBm7llpqGH6LYKxsl8TmXV0qzmUQen6nMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1041482},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"31a218198db08bdcc99df775c25b07b68be6dec6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","build:all":"npm run build && npm run build:help","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.5_1755584811055_0.1627498474633382","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"drizzle-cube","version":"0.1.6","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.6","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"548d6a58fc07defcbf28bed40dee65a78a8f46f8","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.6.tgz","fileCount":48,"integrity":"sha512-DNexOIyx9MlisLaFaSIq88GJ5Ndw1DtMp4cyNVXjsw8Xay5t58BCTmjg/PZK7BmPTjgj6mzsN6spOPrHuawMig==","signatures":[{"sig":"MEQCIFHTag8J21/zmKa5HUhjK4LRvRCEOJXWWor0j70kZfKqAiBGRKTPtJnkKoNF0pnizvoSaEm5Qj4B4nSejOu+n+ubFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1160906},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8c7e626071a8a81a73a15883483ba993b72353c6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","build:all":"npm run build && npm run build:help","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","daisyui":"^5.0.50","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.6_1755633819333_0.719861314006806","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"drizzle-cube","version":"0.1.8","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.8","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f82d1a587033334a7ceb8e7d3879427cc9b717fb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.8.tgz","fileCount":48,"integrity":"sha512-oGgiuo9C3J+iX6B5gVUFj5G/Zo9ytAaZRJJ+/XGnKVe4+to/gzv1C9WIFU415SN5ukEp2LmBlMEN3M3sGTDVIA==","signatures":[{"sig":"MEUCIAQIlXrT/kmA0emgmjrfKDKxqLYg9vO4IbdPiGTJDwfTAiEAwdvNAcu+NFZXPq0GDb6SbN5KglyQTV2+GjD7i0jBIOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1054476},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e1ba7a2d2bff2cbb7b7995908640f344fe4430a6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.8_1755667127721_0.5273518876732131","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"drizzle-cube","version":"0.1.9","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.9","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"633f8b19ce076e4b32a822ae7ca5375804f8fd30","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.9.tgz","fileCount":54,"integrity":"sha512-djMt2O6fC37Ar05kb8iscuR8S+zesOBEg3drqOodUZMYoDzpSiLY84FGrgMzyzVfdVp4XKBecCs/3Aij3V3weg==","signatures":[{"sig":"MEUCIQCP9zyQ35y6RZQuYCvY88azsIcE3uQUMCyoQ83hwASVdAIgPVgn3iFVVO0qoxTj1UonAt4xhyq8FPuqDTB7Fje1AEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1097836},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c21c7ee9de963b6193eef8e683da7173b2555009","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:setup":"docker-compose up -d postgres","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"docker-compose up -d && vitest run && docker-compose down","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.9_1755682939704_0.9110100026428858","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"drizzle-cube","version":"0.1.10","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.10","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"0fdb82bbdc5d57e523b7e0f185da8fe7cbc848b0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.10.tgz","fileCount":54,"integrity":"sha512-aPsqIcZrVSWu/e0Js8isLAeu9knKxXxbZoZHBtWxGltofopwh95+s/ozsINvSLZwpEzv1kWEd5F5+tw6NA0mdA==","signatures":[{"sig":"MEUCIQCpD0bTlV2btb3QmpPOnzsVr/mLUDoEbW/KmM6ZD2/y6wIgcjNvPxBvPoVhXFRPNtbnlBdzHGKsq3DnlsKpvrCjC38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1113717},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"500033f0ed3b6a9f2d83bb93bfc54889e3ab4401","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.10_1755707735375_0.12964109977704008","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"drizzle-cube","version":"0.1.11","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.11","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4652e3831c9d104e38bee7b45108ae486c2a9dab","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.11.tgz","fileCount":71,"integrity":"sha512-by1tyJyyqT3bHzgAabnc4XvyX0RiXTZnc1cxjsF3HuVohZDwE8Sp0V6/MpwyRHLMzmvGVEriEo6uA4ZEXkzEGQ==","signatures":[{"sig":"MEYCIQCUHVIUWBW/4R6sc+dGpzRQZxorFdFgFECikGpBmJ3HGwIhAKxyj0JOnM0V9FmmSNeXYwuzkgL0+CHRQgtTyyq/tiOF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228354},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"32242c3006c260c560e50c716fbb639d10ac8c06","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.11_1755766594227_0.7514540933383926","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"drizzle-cube","version":"0.1.12","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.12","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"82363808cfdb1739f90ecea38443c830d5beaee4","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.12.tgz","fileCount":71,"integrity":"sha512-prlEfGs+4MDJ/4SWLARXlj0x5L/O+yPGrdJJ5pu2SlUQiaIe95bgjFrhPPPGmV2hDy3s1jjN9EoG47nbenJAYg==","signatures":[{"sig":"MEQCIBlBT69XCLn5TWyrBM1BT0/LEaZMQg0iF6b2HNMgiZjvAiAnpJNBj+rqzN6tUNNdr6UdbIkyfvPVjQ5Px9ZHH9TkEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1229815},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"d93391b3fd008533ecf87e8dc815efcf300e392e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","postcss":"^8.5.6","postgres":"^3.4.7","typescript":"^5.0.0","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"hono":"^4.0.0","react":"^18.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":false},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.12_1755768321671_0.5424456804069833","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"drizzle-cube","version":"0.1.13","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.13","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8f26a53b46b7f87c1e32dca1bbd48d8d77c0d969","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.13.tgz","fileCount":83,"integrity":"sha512-29QEFVg1iafoMCyV2LntVPI8C0pIUFBEjutrUn5c5jDKGs+jKIkfS1aF6+kycKRgZZhcqQsOxWWV7WYRaLgShg==","signatures":[{"sig":"MEUCIQCy9+XBqus6Bb6N1drvdiIIQgqoUiRvz/Wm1VtoUL/igQIgFNUPDAYafZRJeczPXd+gPqLPgwjCw4qxSb7voR8OJN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1374731},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fba8a2dd4330a5d3e8fd5ee18f5634e8d3e7cec3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":false},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.13_1755842646348_0.17113390748553448","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"drizzle-cube","version":"0.1.14","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.14","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"98b9975aee5b8e5bdeb13e72d439d371671ffe5d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.14.tgz","fileCount":83,"integrity":"sha512-DNrr1gUZJi5aMx4BaMJYBBAoJIlDX9mxi30qwfJPE+f1gOiTKoFcAHRgxwwgtec3UJ4D/e8Pkg/MQ2LEw3GH8A==","signatures":[{"sig":"MEYCIQCgq079WZZirO+X65oL5EIJEy25wyozuhbbO2aqvEl5WAIhAJ5m4U1NHSExTFHWWYMxbRu3UONvUAMyhPYO/+oJloPS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372407},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e0432a58cdcb5c131b94d77946afd2ca07960dfe","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":false},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.14_1755860295570_0.5977628036509455","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"drizzle-cube","version":"0.1.15","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.15","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c2cc1d7eba56dad293e8fc863145597cf52d8e86","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.15.tgz","fileCount":113,"integrity":"sha512-AqaykeY7TvPph0bFw4XdzGckyOR+gqAsRjbUHxoCmOR4RQ7YIPJGlEUOlB8ld1Jrzo8uW4V2gSoqrMXOupePqg==","signatures":[{"sig":"MEYCIQC0ot5YyLzwUjyC30Q2M/1yelGI8+bxhbwrZeog0BwM2QIhAN9RENURbYS7dbDPua2jT8Ewacb5M0y9PV58Imwp5fw2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2921939},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f74c340520c7bc20b9226d6718a8e6a7c4b9183a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":false},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.15_1756019760086_0.8752589946949418","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"drizzle-cube","version":"0.1.16","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.16","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"00092158455e2217d160e2c753034cc6e82b164b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.16.tgz","fileCount":113,"integrity":"sha512-3NrcHOhtLbutTsYBbnwfmUOfjyUdV6Td4goKhZBw4L6QYv6pDWpGvzTcypdvzmS5dRLzNEUv4hLihD3paGqYgQ==","signatures":[{"sig":"MEUCIQCJrwEuQl8SRrQqWULqYWJoakNU92bE8IVeSAAqveDIcAIgKPdE5sZAXmdWEC1w75LrXIfP7LH32BYXQoNvJkSCm0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2910707},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"2d22e6e6fe6fc8d170e0525c5e26c5a694f154d3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\" \"npm run dev:examples\" \"npm run dev:help\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:help","dev:help":"cd help-site && npm run dev","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","typecheck":"tsc --noEmit","build:help":"cd help-site && npm run build","dev:client":"vite build src/client --watch --mode development","dev:server":"vite build src/server --watch --mode development","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","dev:examples":"cd examples/hono-app && npm run dev","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.5.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.13.1","dependencies":{"d3":"^7.9.0","zod":"^3.22.0","yaml":"^2.8.1","recharts":"^2.8.0","@types/d3":"^7.4.3","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","react-hook-form":"^7.47.0","@heroicons/react":"^2.2.0","react-grid-layout":"^1.4.0","@iconify-icons/tabler":"^1.2.95"},"_hasShrinkwrap":false,"devDependencies":{"cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@vitejs/plugin-react":"^4.0.0","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":false},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":false},"drizzle-orm":{"optional":false},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.16_1756065201384_0.896767873287448","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"drizzle-cube","version":"0.1.17","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.17","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"acb2a0af4fff8d492192d57450dc04f649dd2e65","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.17.tgz","fileCount":113,"integrity":"sha512-rVlIrVi6LLY/m7ZbbZ+rZUIlWCgEl9kdh/LO8kjvR9GhpmwOwav+GegtGxVIMJROu6aqslli0JeVfxVt9Fj7qQ==","signatures":[{"sig":"MEYCIQD4M0Kt9DrGmqnkvLLwK/irbinbowBje7INkFDgfmeAjAIhAMI3lR7NiOd07x3pOrGtpPM49PkYLTdtPmLqWi2ccbXy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2911154},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ff317111e2abd19aee5643e4e7ca6f1f87671c3a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.17_1756099816025_0.4070845705018318","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"drizzle-cube","version":"0.1.18","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.18","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"fd1ffccb4182e432e1205f533a995d3e0a14589e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.18.tgz","fileCount":113,"integrity":"sha512-VidBzeCbP0ZK6gDqOAgaIH+wkkVZiIPEkaVMhjG1l16zO3GvVSgFgODg+NKyPiK/V3jlU0FG0XCxbvju0tnNsA==","signatures":[{"sig":"MEYCIQCq7D+HLJol5ylOLXL6WjoAW/PywchIvrdBk7OPUwZG1wIhAOQaXK9y/FCSCoPBte5N2Kh2vQ27tYuDKAs+zkEGQ4BY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2880320},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ce912cc21ad7aaa3786debfd02d01dfa19070c99","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run build && npm run test && npm run typecheck","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.18_1756102214050_0.7077932740757429","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"drizzle-cube","version":"0.1.19","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.19","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c3a56a5d3c94696df895f1fe1e6306633e2227f3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.19.tgz","fileCount":113,"integrity":"sha512-0KEC3xv23DPM4A8n+RMr7F9FoWeW3cagH7z/ccMH9SxgM/Gi9oKazkym3J7BwW6ASJuwu2EV0Nf0e4YSvMZ5Pw==","signatures":[{"sig":"MEQCIGB8zsb+gpnJmXAtpvoqscjRVYJCG4Nz1Lt5mZ1TIPyOAiBPuTlUiKC+4rRyfD/rZONbM3/SI3V0A23dCledLj5M7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2874109},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"bf953eb68b18e745d9f9a12bb8dedf3a3c36f98f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.19_1756270666961_0.5530809680246103","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"drizzle-cube","version":"0.1.20","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.20","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"be699af339e28f824aacf361c6681ef7da8ef54c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.20.tgz","fileCount":113,"integrity":"sha512-RrGQ49MhFgKygJBdWSzS5QGQWMabPzoqwF/fL04oRwKG9hSk/LXZvnyVEBR8Cc4nMRIPCuchL3p/RBeKo7r6EA==","signatures":[{"sig":"MEUCIDPHJYDoNGtOhu6IA2/vrPkmHbLHuYVRYmaePQeYYvPmAiEA/lhF2GJF4bbTqXLpdKATMYfN8GUfkjXSkXfv8NfmqJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2888852},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"796904d2297cb1a2dd7ef947b8fde40f89aba191","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.20_1756273327813_0.2104920331242981","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"drizzle-cube","version":"0.1.21","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.21","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"802fa458f1964b24635dc08a67e4c9694d9d1662","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.21.tgz","fileCount":109,"integrity":"sha512-xqk/GVk/C9q+E5GD0h5cqxShgMdOvq0sPIH0JXOwJHz7o0kuTCSNEMjKf5Oar/qMQ66aWM9zweAlVCti48iW1w==","signatures":[{"sig":"MEQCICNjTjzp34A+2jTWfg7zbVYIJt+xIk6+dIVHn2H5mgcaAiB3/ujgovvOv0JllfPLN9HB58I0rjFiLi74vzn2gV1l1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2888648},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"5deb113e0eec1593e19d183769659f7e1ac08880","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.21_1756274757607_0.38341194715863547","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"drizzle-cube","version":"0.1.23","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.23","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"01f0116886e944ec2b84314456f6d78e5e2ffa1c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.23.tgz","fileCount":111,"integrity":"sha512-bNjbp+9zTtele5ViR4A9njuNN96VLfzQT39qKXbjE561bS0GsvtfPa6sMGWyI65H41PiOITIfmIwt3fZ0dE4eA==","signatures":[{"sig":"MEYCIQCYzqAiOZuTLDwajVTEu1i6q5nyXQ1+I9YXIkiZMglJeAIhAMjRqAKkkMOt0WLFVNlTyB+fajSTGnSkPPbE5KQiJeTQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2973609},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"da8b48b67dc3e1eaff883292a007904b57b49bb7","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.23_1756321770670_0.14781092645095706","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"drizzle-cube","version":"0.1.24","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.24","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"ce6eafb83f35f23b3e3db32f539cf206128b85d5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.24.tgz","fileCount":118,"integrity":"sha512-gO0xwyncCF/xLwVRZijthdxqWxAngMLodRhRkiFSqmr+A4rrWuqXoXlGFOlPuATjpVL8lvc4I6BvJtrXwvK8/A==","signatures":[{"sig":"MEQCIFXui4BuFTyyReLj8Nw3gb3At1AtlZ523/NerFlRjWW6AiByc6Ha+CZoUYnx0kc1NOpzpRyjz+89NNC0HLEr5HpO/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3138797},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"81c9d169d3c799d71f298b5c6c16484f54477367","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.24_1756354562822_0.6159183323117929","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"drizzle-cube","version":"0.1.25","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.25","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"42d8f0ca21fce3cd0ea4e9a30ca0db3f70912a0f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.25.tgz","fileCount":118,"integrity":"sha512-XG995t8L7zsV9HzOSPa2OxCqr7Kt+FLcvve3bZG18c2YSEl3E1t0p73isbQ0EvzF3JtGiIx/3cScdbVFjYUZyg==","signatures":[{"sig":"MEYCIQDkHieo6qwzVcmAN5fC3id8Gk2vvNZZvyJR3ptepkd9eAIhAMy3Na7cwfQn++ZaZeh8mbnYuWe1E4Vian2osLeuW706","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3142953},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3d38fac0b40b2de6133f69939c0c1b5d7ef60e5c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.25_1756356199173_0.5566077820239439","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"drizzle-cube","version":"0.1.26","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.26","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d30ad63aea9fd744edbe8c1ccff9c2d54b59be7d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.26.tgz","fileCount":122,"integrity":"sha512-2NjU2H2BHEJcdqTJXgsvrGWfYWYPmk+64FfKgnWhjtHg74uWUxLGr1ctJ9QC9/8KZQKVtIHoBlgAfPjuiiOMXw==","signatures":[{"sig":"MEUCIENWVXQzq2GLXICLaA/jxzpTxXpsjDhHxZVIqD+SkJnPAiEAgSu0nimv9ZOehF8dHOu5jGwZYpIU1m10fdBQ6S7Qgj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3222548},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a6f3107f74a0d6ae1ddaa185c818d26fb670f319","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.26_1756382578034_0.8619670089682747","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"drizzle-cube","version":"0.1.28","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.28","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"6b794aaa0580fceeebd43ee7de6393ca399b869a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.28.tgz","fileCount":127,"integrity":"sha512-3mwYtmKrYpuQrRE7xL4j6D/te/lXsHFfQM5ludxrzTg+of0plPrpjcShI7GU6AFyAcUDBcPZXbitn/Gba9d99g==","signatures":[{"sig":"MEQCIH5Q9HDAXt3pL06tInuOh53BPahOEJ8Sldx0t7oVa2FqAiB5LFjyqenoPBpspuKt/iUVpomBhN5gkDTqc9NKZb5Gtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4805757},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"15b4bc0bc31fdd0df2dfa8286b79fc81bfc0c5e1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.28_1756436493819_0.984782603514367","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"drizzle-cube","version":"0.1.29","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.29","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1ddfd0edf0539de3da1bdaa5a3037a4d541428d7","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.29.tgz","fileCount":128,"integrity":"sha512-pNde2xXjY73UZzEPK+yJg/nEu3FFiEiPCDzETrWU7upK6CtwYUJQ5WwhId3C97TOFz/g9CTOoOruR3ExIj8+OQ==","signatures":[{"sig":"MEYCIQDA+lKDyaORJegEPKVL1o22eITo8gfaaxHjlPlF6CyDbAIhAMLieFHbIxA9iKykDCvYbT/bNTiDPu2GmoJUsZtTFhHv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4834144},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"daf0e06891a019beffdfb1120061dc7a83fbc0f7","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^3.22.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^2.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","@types/d3":"^7.4.3","supertest":"^7.0.0","@vitest/ui":"^2.1.9","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","@vitest/coverage-v8":"^2.1.9","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^7.18.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^7.18.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.29_1756471759330_0.9585500275915371","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"drizzle-cube","version":"0.1.30","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton@clifton.io"},"license":"MIT","_id":"drizzle-cube@0.1.30","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8e52151c95dad622c13ea2cf5b18a844f34ea8ac","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.30.tgz","fileCount":128,"integrity":"sha512-P3RxQol6BP6MiG3lhaG4IueLXZfp51gCEudLYodGsbBkU6/x0SUWYcyPk/BSQhyZ4KF7W1s9citEG1Sxu9kh/A==","signatures":[{"sig":"MEUCIBcV6A4BsGOh8vc014H5H1FSnoPecPevRkEHnh3duj9JAiEA02obNXeqQchhCSirnjxqZhhRwMx8Nd7OxN3NB8HdCyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4833627},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"448ca3402c4fc176521483caa1755e3251a83694","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.8.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^5.0.0","jsdom":"^26.1.0","react":"^18.0.0","eslint":"^8.0.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^2.8.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^20.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^3.4.15","@types/react":"^18.0.0","autoprefixer":"^10.4.21","concurrently":"^8.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^11.10.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@vitejs/plugin-react":"^4.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^2.8.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.30_1756527348185_0.6262546076552986","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"drizzle-cube","version":"0.1.31","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.31","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"39f84e95b86bb37367a3d9eae18ce8d2b0e1334b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.31.tgz","fileCount":128,"integrity":"sha512-4kbL6xx0vt5yGUZnkuverJXE/R+gOnjvvL2ltKFTAhLWvdmBh03it2JewbBKgpjcmG4FMKhX/81V2c+eo5n35A==","signatures":[{"sig":"MEQCIGsY0bVggnTrJ+dJXKOe8UhuCFykWR6XjhROOD0yGnbzAiAMRwgizw0DP45v5bjvz5fzAZtJfRisv95AqxeTJ8Lr8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4831965},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"39c1dd748ff522ae63bb761f08ccd4e9b814acca","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.3","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^26.1.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.31_1756534412836_0.34793041894230514","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"drizzle-cube","version":"0.1.32","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.32","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d97dc4f6a324c17af6bc6113e17df44630cfc68a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.32.tgz","fileCount":128,"integrity":"sha512-eJL/I16cxvPwqLT8dzZjXGof6SIy1+Ljpvm/dclqD0l4v3v+drWyExBmCmipmQQ6wesXvEcvMYsKJVIn7hqCwQ==","signatures":[{"sig":"MEYCIQC7CCb+CprhlEJSD8UFop2/5qLhCGawiceiI95x24W9pwIhAK7xNEwu2uj8FgUW8bfu2wYdxM24qLp5VvFH7TvfMwLy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4833521},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fe56f47efcd520184051e23870f150b9d78d6c2a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.3","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^26.1.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.32_1757043652331_0.7423833649403535","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"drizzle-cube","version":"0.1.33","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.33","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"32f6a19d18119531410d1fce6a9982c200ab51e8","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.33.tgz","fileCount":131,"integrity":"sha512-UrYQjqX/snNgOQj7PVJygX7VPdSMetUavcpySa4erjiWAIyNROuA246kNiunux+WvV5k0uJxOFo92fHi4dIG+g==","signatures":[{"sig":"MEUCIHhVV6hihazLMe5SA4oYsjn/RBnUDpriEcFTF4vMo9MxAiEAh7AFmObblTwjkJSkHpdlN71zh5wCbk/dVV6mIt6xfjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4959570},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"606a2df80ab071c979d290dfe1b7ea0b283ad3b9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.3","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.33_1760076211519_0.009687002753332674","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"drizzle-cube","version":"0.1.34","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.34","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"6ca2403070013b57c4a31b93edf904782e5508ed","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.34.tgz","fileCount":131,"integrity":"sha512-FMOVLW/T+fljjyqMHNTe5KabvT6iBjLk3fyD8gfirOFt+Jojbpaqjiw6x5GUYlPOmwCCWODJgJvyy5DeeK2JOQ==","signatures":[{"sig":"MEUCIBHyrkbV1LHRxxx63rgbQGFF3rzisaeXEYFWGKoEX5e1AiEAr3lBC0W4yxSe6/sPK/0F8rHkCKsNyghm4rrvzMudP40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4952888},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"cfd6bbdb5c5ecaacd2e44dc9ee04a0fcac7d81fd","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.3","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.34_1760082214040_0.9641698261331098","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"drizzle-cube","version":"0.1.35","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.35","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a5615f953ee6a956ce3befa0699f2c92a6a6d4df","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.35.tgz","fileCount":131,"integrity":"sha512-DbAcQ02pQyGK0jLjsc55Nw7fqXxcihtEs6WSTRLBYe39pTcY9/vOY6ZqXG1dqBZVPJ35PuRW0spJAR2cf25HEg==","signatures":[{"sig":"MEQCIGJy8aCcL8XMJBiAOq2TDIbrsjCuLS4pVbnWqh+jVLZlAiBCdI66TM0NfH7gCvcya6TPJfnCwXBlAQTnYXN/zc9COw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4957733},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ee2019b1ac8cef1d895796dac093f72b6a00aa4a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && sleep 5 && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.3","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.35_1760118136233_0.45141861653700577","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"drizzle-cube","version":"0.1.36","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.36","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a97f84ea4081bfd27ee91efcfad409f1a8459a4c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.36.tgz","fileCount":131,"integrity":"sha512-uCZb+Qy9tJwvFZvadVLmtTkGmWa40u8nGHqzigUCPBOSoN6++CNzOGfzhX+0ajmEEIn5t+MwfgmKf0MkzIK/9g==","signatures":[{"sig":"MEUCID8s6rLgEHtyjfb/ZM/y0scA3o+ly+jk2FLb9KE05MLjAiEAkzoEYFDDeRFOku8VviySV/QMI5KyU/a7TTVnare3d04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4959754},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"cbed0cbc67d8dbf6b2a0c8bf37a8925648bafb8e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.36_1763009311434_0.6208142457464902","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"drizzle-cube","version":"0.1.37","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.37","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"3885dc9c830fe2e9c485221866c4e72fc71c5ce3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.37.tgz","fileCount":131,"integrity":"sha512-pnqHjT4MAqAJLZNJPYkhu0GHnWJWdB5pI1fCNQ6CoNJc6f7VrLpF2CBQcNu2wrqNZHbog4sXzEodgrU1zsYTxg==","signatures":[{"sig":"MEYCIQDnht7i2r3GMfUUFHaj6+AnkNocXHYV2VTzsz443sFXdwIhAPCcYtQMEOcvVYGJUgf4f9IOTLydMHsDm6I+fgHSCBOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4963720},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a371d3074740f541d103e1e77b8182d484cb4084","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.37_1763013830384_0.10384629271870427","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"drizzle-cube","version":"0.1.38","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.38","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"507a0039ddcd080b0e652233504ffbdc3d0cd803","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.38.tgz","fileCount":132,"integrity":"sha512-QGe9ZSLxMTSwFr832B094h80trzi8y3wz62G0TFoRrQM9h00BiDLiOoSoCS4JrVIYRZSSEis4JrbS9bfOoR/dA==","signatures":[{"sig":"MEUCIEPI2IrJan3y4+1K4T8hNPigpAym+YJ/7BACRxnkpfwMAiEAi1oIYhMP8u+zqQ3V4qFRndoO8qbf29tyKcRataFomJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046062},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b95ea5c6de4a694088fbe0917a18b9b8690588e7","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.38_1763189453564_0.26180004630599574","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"drizzle-cube","version":"0.1.39","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.39","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1c449eeb21c8763767981ab327f35fd409c0f29e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.39.tgz","fileCount":132,"integrity":"sha512-oEWLuDMC7lRZ/gjRnty90t3gC/BuFarWc/0QAidW1hl1ywmpEmhdrgEGwq60qWCPoMol6D+XX0X1S8inMZMRZQ==","signatures":[{"sig":"MEYCIQCSJ26js7MC/jkr1fszrwPsDESf4AvTYfZWFgJT8Pp9OAIhAJ63x01o0D3StyxmhFsIJmHKr7Lm1ouyISH2qxVuArdD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046260},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b09ac698760e4a6dabfb212ca62f6987931d7d72","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.39_1763191459014_0.2070828691450759","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"drizzle-cube","version":"0.1.40","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.40","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"ee482100124fe56b99c2d3b3502c64e85f12ee54","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.40.tgz","fileCount":132,"integrity":"sha512-fZXvsZ8pwCCfsmzk1GfcNfx/YCxY2AsCLFZ3zPShdZfQt/mMa2/Lg5xkL+wdbWVPWTEavKvVXxt87NMHnGykkA==","signatures":[{"sig":"MEUCIQC8RVCf8R18SVrE8aCuzeoOaXyrUlL0S1GW1QoXLOWBawIgFwMYu1esLuZuN658+L4HrC7kI07Kv4Wun4nRe+7W/r8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046260},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a9145be13ab2c5106a92d8b40d272379780a3ef9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.40_1763277412181_0.265556222766026","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"drizzle-cube","version":"0.1.41","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.41","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4c37fac8ba247bf0fccd109c07b2fe91c78f02c8","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.41.tgz","fileCount":132,"integrity":"sha512-gigZSVeu3Ja0RSg02tzEWsG+2++BDv2ily38+ri5QuMe4gJ+WJ9+Ngmtxpqcm9YTgTIC6BKNENTJQrI9/oUEKQ==","signatures":[{"sig":"MEUCIFYz7ssHuyugPUOZ9SzhYFcVjUC+BSbtrtiDKol1a0MUAiEAhrYsOhvGVhVn4niaQQy/hiGykq/2Dc7E1oKpatCJ/uU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046839},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b87fb58acf6c8c43f9f4cccbc6196eb7c9c14f47","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.41_1763549464148_0.6263507455205597","host":"s3://npm-registry-packages-npm-production"}},"0.1.42":{"name":"drizzle-cube","version":"0.1.42","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.42","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e35028236b133c8fff7cb32ac4f835a0b881bfe4","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.42.tgz","fileCount":132,"integrity":"sha512-Dks5+gaLzOIE02RRaizB4uN8/VBVEVy0IhuJkm8Qb0E+OLde8JhnImJ9KWOQilxlzngRPWqneTkEnx5R0wpyQg==","signatures":[{"sig":"MEUCIQD5zeU0rzVoQ0bLbP/KQjbrc/6WYi0ATc0jyCEQLunqUQIgDub6UGpunUmCfduP3Nk5eEmZdx1MtFp2AoX2caqQrdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5068431},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a13a0e7d4766010ebba640036274dad33004d009","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.42_1763698073536_0.9718077282873565","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"drizzle-cube","version":"0.1.43","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.43","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4d36100fe7748ae33f2876579b249762e3f575d1","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.43.tgz","fileCount":135,"integrity":"sha512-WOl/8pScJzK6cJh8kJMk5d1xE6RPgUZhMCddFwY7nqLlBvEk1G/nw4H7WHOFcJug/6lOB/aFsOwnB6nYjONC8Q==","signatures":[{"sig":"MEYCIQC+cX9xMzRPCd9X05EAdCPhbBD5jkkpvYNkBuAHxvFGwgIhAJfk618wS4ZqpZeLh5RjIXbbPsvjWuiQ7U9jvdAX7w6j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5195007},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fc162b7521a9fdcecae5c448dbfed56bdeaa90f9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.43_1763754151290_0.3184170431875719","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"drizzle-cube","version":"0.1.44","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.44","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"100f6d73d2a422f9a3db4691fe860e171f9eaaee","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.44.tgz","fileCount":139,"integrity":"sha512-0u0wSuiMsYHSKRIIpd+8t8iI0neP4RukmjAKNzZhXMQb3mlHpg4oA9DEjneVVzX8gn53eKewDlEOKpWPXPtKPA==","signatures":[{"sig":"MEUCIQDShW6qkklpsJrLvFptskzhE9b78Ec+OY0kQ78hCBLbCgIgNHvdO6+zGoKWZgt9JnDj5lluq3nVz/yXQCtevjYNgB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5233805},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"0b6d1132f49b0adf3a904d8a9a7513fcaeedce6b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.44_1763805123340_0.7673713500900892","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"drizzle-cube","version":"0.1.45","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.45","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1cedb171fc358d2898d8e6f44eff00f8c74eac8b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.45.tgz","fileCount":139,"integrity":"sha512-Uf8fzfS/SfZ5S0fV1RFHVEmy279CtX5AtjrGFuJpciJGIVSwu5okCSxDINR9JgZD/EVCu2vsPVK/aNax2DuLTw==","signatures":[{"sig":"MEUCIQDr7Aa2GILWkMGtaYODZqYp6dcv078u3CA8N76n5VMdYwIgKtn/de9Voy9szAs+U/RJv6R+CGcL0Ql6JI/e/EQ/Myo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5242488},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"441179b7c28f0380faf49054261043dfc865be23","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.45_1763823024864_0.28458680119190194","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"drizzle-cube","version":"0.1.46","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.46","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c3428d841ce911134475db2eb3f4503eddbf5c95","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.46.tgz","fileCount":139,"integrity":"sha512-gvTQ7A8cvNEpFB6etoHGehOc+qcQokok8jHKoQ0kmIwJfkIYfYdh4/QQCXwBFsThSbgmR7kBDxGiVXZq9nj3tw==","signatures":[{"sig":"MEUCIQDyhQ0V4TGIcbviI4BxTslFNzHr10LZxixkFHpl3aqmcgIgdNATiqilo9wZ2559zS1HlrwD+04lLgiA8benpRV8l/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5241589},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"edf8dff0495183211c5af3df519f354040802e76","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.46_1764135377350_0.9648300732786423","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"drizzle-cube","version":"0.1.47","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.47","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"58ce22170a4d07e2a3c834a0e3d90f82f0d97308","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.47.tgz","fileCount":139,"integrity":"sha512-3wJyMtMRqbHRG0F2ldDAkN5Z0HpvUm75lzoeqxk6DiEoCqyzEBjRLTIiHSYVyVB4cSSRdn1OIeBEyND9qQFTaA==","signatures":[{"sig":"MEUCIHETS8N9EyUUNidRm81Xnms3symFwmD/667IqFggJfnaAiEA9Z+dA6s8Fz7FcSuoj3Eppxn1fyI3oEGUlhLJ95d4ynk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5248727},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"2aa073da6cc29e61874293628d4210b2573bb41d","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.47_1764152505850_0.25460551016411004","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"drizzle-cube","version":"0.1.48","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.48","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"2026ce2297c28a650efd0e4ca3d82503aef2e491","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.48.tgz","fileCount":139,"integrity":"sha512-EoG1S8oxrRVe6K5+r41FwyPAVNOvqXFv3qcuQ4WzL3DUrB/gGo0J2JOGbeQtx2bfl8cnVX7Iz+qPIcd1GizYzg==","signatures":[{"sig":"MEYCIQCFRmbNm+fE3PeQT6p43LD085qLqSzPLTveAKgEu19TiAIhAPPvfNvNZ+TeiOdTF9REhvh5CldUffdSRgskgoE4wl0P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5251142},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7d7f888752e7e82e066708e95437c1dd4e4caf99","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.48_1764221076699_0.8181445864425911","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"drizzle-cube","version":"0.1.49","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.49","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c3c010a00e7ee6e584c4e4a4dd6ef1ac111bcb99","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.49.tgz","fileCount":139,"integrity":"sha512-FC63mtnnmwyj+n9KZ8OajvW7U/zVjz5mFPcr3cq9x/8WSqLM3/Ghq2YaIAuef89/extN/osqPJtjMVdYmw6Saw==","signatures":[{"sig":"MEUCIGkOxpfo9MqihezCf6rYiqHGGdInTMHm8hh1TC5w8qN2AiEA4Z1bQf6p4ZY5jeYAL2SSNvqYHYYyAcI/+yT2uVRybGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5256583},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8feb44d865fb20d9d52cc5235a63094dcc8c6628","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.49_1764223042612_0.2960763685633845","host":"s3://npm-registry-packages-npm-production"}},"0.1.50":{"name":"drizzle-cube","version":"0.1.50","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.50","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"60935c1c839498e60e44ce82f9837ae29f6860fc","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.50.tgz","fileCount":139,"integrity":"sha512-XK9z1453JX2wAGQl7BBF0TdfgE6BAZRTl9qXzKc0B7q8xr45FB8mHUsurFPCu83pWpNDlp6YPsnwSQY3OY+K1g==","signatures":[{"sig":"MEUCIFnhMLQwZ0x7/IFnD+nhr3etdyrSj3NDzebn79/LCXdkAiEA/+UHfuTV2iOwAQI94vhiuGmMdqIqkZME/nUhdhu4pDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5277720},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"533cd8a9f8ca1645ef0fef98b9d833c8234dfaae","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.50_1764266466921_0.5822384732164043","host":"s3://npm-registry-packages-npm-production"}},"0.1.51":{"name":"drizzle-cube","version":"0.1.51","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.51","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"56b1db10f9f6b1f4576112f8045b33388b393c51","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.51.tgz","fileCount":139,"integrity":"sha512-FKsWpV1BGPowVw6W1TqVXUfbknl4fy5aUJU6vPu9gi0QBAVxNTh/50dUVpzqPoMQv+wentGgyC4w8zMIC6HpOA==","signatures":[{"sig":"MEQCIBORlBD/wg+uCMGkAuk3wwDnLeXmCqsojntjHiVEmX78AiBdCfqRNfJk2HTBQx/eWYzDpBIAHjN1tMKmCUf1Z02pFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5279584},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a361b870b42eb9d5ba6e3ca3c0e857a08b070451","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.51_1764304477837_0.7174778177310313","host":"s3://npm-registry-packages-npm-production"}},"0.1.52":{"name":"drizzle-cube","version":"0.1.52","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.52","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"bfb4d329b6e980691fdb860413dd56265f73fd96","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.52.tgz","fileCount":139,"integrity":"sha512-SvsbA8ziWEbub76Vc+e4HJwS30molGOlFl39hG4J32iKVFHBtSvejnyo6Hw6u9U3XrhKKbO2leNRXZeiHBlv+A==","signatures":[{"sig":"MEUCIQD3td+D4Q5ktUudr609A0dVfEYzVcsrIwAp2ecLXp0FkAIgUDaetPoRi4Ln8kSy/ky2Fv1liYmJ6HMaq3uahe6VIBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5280001},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e32c6178bc0e7eaaf956817aa4cc2281cf1e4ccd","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.52_1764311356628_0.5961238516794012","host":"s3://npm-registry-packages-npm-production"}},"0.1.53":{"name":"drizzle-cube","version":"0.1.53","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.53","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c0ba6a1da642d67ce6b51d556771891700dbbbe3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.53.tgz","fileCount":142,"integrity":"sha512-fN2DQzjwjsfdh6csbTFfE30wqCXh3evMUUn2jD7e44zdqcxiMjZkhx6SCc0du07SvILkMGVtksa1OBRyEfuyfQ==","signatures":[{"sig":"MEQCIBClokvuN5B4/sHCz0h/qWIdoGmKyb30njODt53TiB2WAiAnifZxpCPNPggGWj83u8Lgvjyz6hocbGxk2oCRGkf/OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5306225},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8ddf45bdd9d9b19a7facf4c40c18a725cb71057c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.53_1764324844058_0.9009028017218301","host":"s3://npm-registry-packages-npm-production"}},"0.1.55":{"name":"drizzle-cube","version":"0.1.55","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.55","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"62eb167312de2452be1f04b52817d89bd38c0e3c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.55.tgz","fileCount":142,"integrity":"sha512-riFdhIzhmiqx8qvLlpjLa4KpzmCb9jYx5cjlIxWRztSS3V/95puBTWPFnJUq5+m0yEc63Y/WAYdli8u5SrVjkw==","signatures":[{"sig":"MEQCICXMLNgb5F84AjKx2/OZQehmMzYFbx37Mz1mmPbm55LBAiB0nFiOdaV/wne4rcsGp/1nAjxX1Uzf5jcI3N2MQPE/RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5307638},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"97e0f5120fbf6c3cca7c34c693e630110395ce07","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.55_1764325795609_0.40181577150769887","host":"s3://npm-registry-packages-npm-production"}},"0.1.56":{"name":"drizzle-cube","version":"0.1.56","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.56","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"5debed3019711cd6bc14d94c36dfaeae8d6dfc8f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.56.tgz","fileCount":142,"integrity":"sha512-7n8C+xrOyR+1+dFF6aYMRkN/2xOSWuo71lFKHZVDtdKGrFHPsvsHI+/n0ZAAPvv2QpuKUtP5d0gq1ruoulS3uQ==","signatures":[{"sig":"MEYCIQCVwE+VPyg6QtaPpEUPUFJCrHTCfpTQ7PtjIZB8qTK0KQIhALZPAiNz34O1J2WLdB8rQGkLAFd6YTt9y9X9/i9BMsek","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5302027},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c78f96fd2c477dd6983ffbeeeb926d16b08cd4df","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.56_1764402177199_0.2914948301357936","host":"s3://npm-registry-packages-npm-production"}},"0.1.58":{"name":"drizzle-cube","version":"0.1.58","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.58","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d2bc0368c8dfab83623840a4b95ea48482f8da4f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.58.tgz","fileCount":143,"integrity":"sha512-PL3iOL/y4/6UzQEjTOjK9X0vvcTmIqxgo6HTpUPhhJmdTQlXXn1ah6aX29CQ0vgwjrXwunlLBLwqynQlwEwG+A==","signatures":[{"sig":"MEQCICZFBwKVlrjxdyXVtU2REMyJCJsczePgHjgggY2M4ifwAiAToUJt/gsYLTJTc9GoFYWA8CEMMiEaARsYz4lT1VUS0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5341177},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"9077e49e51250f5766852ff69a94b07c68eab28e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"10.9.4","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^3.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^3.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^22.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^3.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.58_1764476556106_0.39747906850253667","host":"s3://npm-registry-packages-npm-production"}},"0.1.59":{"name":"drizzle-cube","version":"0.1.59","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.59","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"adac93af6c88d58319205e13d149ac40847ba183","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.59.tgz","fileCount":144,"integrity":"sha512-ldPuYxLpcM3lIASQPlvGlAuqeg8+EgR0FpawDcEAxXV883plViwkOuE8FTUkPkGsV6XiawNq+vLNIaUktDmqyg==","signatures":[{"sig":"MEUCIQC9GVtjNIqDLIL4rQXcpUfteSQuXrP0MRB3MBnAvBx1zAIgLQqTrXxDrMFzAE5VRM719RMUI/EBGF738GwsaZgzAYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5363368},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"365375f5544f35f1d3bfe381c9875ee97a6a16f1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.59_1764566639359_0.9477155778363067","host":"s3://npm-registry-packages-npm-production"}},"0.1.60":{"name":"drizzle-cube","version":"0.1.60","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.60","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"9b299ad0bf58adf006eccb55d86f8473da0938f7","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.60.tgz","fileCount":150,"integrity":"sha512-UOLQ91Utszy1af9+kzXBcP3P7S0VKYD9T9/AZxpOlIDUHtk4K7hM7f+QYFBpKhQUQiCxFYF0BG0583jgR++DcA==","signatures":[{"sig":"MEYCIQChl71+SPC+qIZcH1uyBJo6vaASO73KKeGczzI83sGjbQIhAPl8WXgv1H7kE4RRkxz8Rd610CLWDl1BYAbT49Ai8Cu3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6007610},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"39bca93a55d8073d53b853de166b2c636ba6201a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.8.2","@tanstack/react-query":"^5.85.5","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.5.0","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.0.0","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.4","drizzle-orm":"^0.44.4","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.47.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.0.0","react-dom":"^18.0.0","drizzle-orm":"^0.44.4","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.60_1764822243993_0.03352205138077302","host":"s3://npm-registry-packages-npm-production"}},"0.1.62":{"name":"drizzle-cube","version":"0.1.62","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.62","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8e1a31a2610e0cd39e38b307eb554bca093c7511","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.62.tgz","fileCount":150,"integrity":"sha512-G/ibI/phOd3KSmqol5Ef+292JU6/1C+RrFcBFMXESQwOiv6GAIcI3LNKl1ditn2rruafUKhGoR0YLehTNwwT/A==","signatures":[{"sig":"MEYCIQDisgFp4L3QChYg/VzDJSRRWmPmB/NRivzpsIN19L27/QIhAJc43hIJGo/1aynSDjGF+W7UBSCV1emcD4NMSEm+Xawc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6013165},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"5b2f0b524608c6ff284f32c7d2608435431fdc29","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.62_1765265254978_0.43020365636416646","host":"s3://npm-registry-packages-npm-production"}},"0.1.63":{"name":"drizzle-cube","version":"0.1.63","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.63","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b4ce590ca6f6d26826476f5b36aea165bb2db071","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.63.tgz","fileCount":150,"integrity":"sha512-NegpBSXIUhndMqv4dullapAClLBTGFfI9Woqq3nBlh/xnLVSy3VpW7E6arNlYaKRp9zKaFvmbOz+t2AZXBahQQ==","signatures":[{"sig":"MEUCIAYiUbCrb2cpt+QQiC75ZHPsqGqAD34zaP/Ju8MnUoMaAiEA8XhWKvZaoPj9NtoImX0ldtSAlVEzOZkg4g7zLZ4niVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6014147},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3d2bdc8b51fc146218a6843cf6039896c4f31aa6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.63_1765273896663_0.7036480762314676","host":"s3://npm-registry-packages-npm-production"}},"0.1.64":{"name":"drizzle-cube","version":"0.1.64","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.64","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"150304623959d4f4af86f6192e47f493847c1cc0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.64.tgz","fileCount":150,"integrity":"sha512-TTnMMSV5LH5OjoDqj6hU5ndiQugjxkPlQ7RZ7vqc+pneFipHf979vwo0rnULY/3QvSe/7piCjvhDaGIL3meVVA==","signatures":[{"sig":"MEUCIEzuHoYGpPmTcXv0BeW8WRPQn6VZTNhy5nSh0bZfi/eiAiEA3x2WiODMbxqX5BsJoCk6TOd1YV39LH7VsROw/ZVOxjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6028266},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"bd782fefc262d77eb6e6c6533234fa0420aa2cf5","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.64_1765608672737_0.26849620966502297","host":"s3://npm-registry-packages-npm-production"}},"0.1.65":{"name":"drizzle-cube","version":"0.1.65","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.65","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1fbb6b694edcd87ae656a07d1d216243ab8418ec","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.65.tgz","fileCount":150,"integrity":"sha512-r2TkVlDyydbMBGEvnANqo6nGJmsjZPzhJ/0dVV2ss5IEEjwOLIRbRHFyddWpoiXzQJIufyjviWmBIL/0rPuNSg==","signatures":[{"sig":"MEYCIQD/yokO7DUOg/iTbT1H737gHffTN8jf8jEB/yDL4DtazAIhALX+7YY/hK/2LuPnO/yEBQCKY6MCTW43U/QW2dyfcyP6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6028405},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e6860aed735ed5d543c0f17c5c821de1446ed683","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.65_1765697289214_0.019620470371601195","host":"s3://npm-registry-packages-npm-production"}},"0.1.66":{"name":"drizzle-cube","version":"0.1.66","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.66","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"794d0789cdbb30e9274c6660d83833d8c9b34892","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.66.tgz","fileCount":150,"integrity":"sha512-DSlYXmeSxVLBBRCb9NeXWPU9dn2X9NFqEXVgTey2L4P7f0L8uiMl6ULQpcBANzzd6pBL1iy1Cd8PZLt8wlQ4Yg==","signatures":[{"sig":"MEUCIQDKtgpzuXySn+ezCOX3Iuk0amt4D95GJoHV83pUnHdkpwIgZ78TQ3hapITHexU+1mMN5HTQ4430I1BidVu0J68oeEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6029649},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"1ef08408edd4e6e352f717122cbc0eb3c3e931cb","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.66_1766294230503_0.581204160710526","host":"s3://npm-registry-packages-npm-production"}},"0.1.67":{"name":"drizzle-cube","version":"0.1.67","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.67","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"db960b8b85577112d6957b2fbb27ceaeac5d0328","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.67.tgz","fileCount":151,"integrity":"sha512-nkdP8Sws2ERVFx9gM+2DO+V4J+R+tF+cCgAUOyV+DUFxg+64NaHnpb5xegpdZ4YD+u+4YEgwz3jvzBmiIte8VQ==","signatures":[{"sig":"MEYCIQDXQqoaj4ZBtLa5KiZzCIK+gT3VPdxZxONf+hwN/7I2jQIhAJkILZ+EXH9C15/CfKIRb2PSMWPzs+kEGNv7zCCXr4rX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6033304},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8d505f989cef7ca407e1fc893e6f6f6bc66f5971","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.67_1766305423495_0.43586982760450343","host":"s3://npm-registry-packages-npm-production"}},"0.1.68":{"name":"drizzle-cube","version":"0.1.68","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.68","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"fb36e9b8f80fa5a8ebf31450a37273003d8114a5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.68.tgz","fileCount":152,"integrity":"sha512-1Xa4epXDhEsvCVFHAOq3HnKhrxg2yDCAjguRKbUN8BEzVcVfvnmYLQ9V935p5idTPyUZ682BNaVXpuFG6OXCFQ==","signatures":[{"sig":"MEUCIQC6Kc7U5ztYfyQ7CpZhpCJTM8o2WTCjC/xZahLvwLXctAIgJDYnUJ26Dipeu2Z8hsg1emF2gPGFWFGxZ5MD0RjlN/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6112624},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"4c171f0f00341963cb9172273de1b4ab157b0735","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.68_1766468362736_0.39203011220632544","host":"s3://npm-registry-packages-npm-production"}},"0.1.69":{"name":"drizzle-cube","version":"0.1.69","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.1.69","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"3c3d4c295d135ba66b15125385e1f062e5b9064b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.1.69.tgz","fileCount":154,"integrity":"sha512-YjohiVq8o83FsoFbeRuStrXlJp+qGbpuo5cVDz5yKmgkOiAPIXKYC6dwB6segLy5TW5ArILK/3uo9VUs+lzT9w==","signatures":[{"sig":"MEQCIFP+HcsCuhku/d03b9jumSGjob2TqY1AMQSgzPtTqY9WAiBEL+lVK5Y6O0263AgIza71kgIaYAqbyGjGbay1KT4GyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6222123},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b170f11b01bb981efc2c9371e7b3590091bd4aca","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","lz-string":"^1.5.0","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.1.69_1766472244965_0.20937890609995047","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"drizzle-cube","version":"0.2.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b21268b080f8c3e4a0d7c0dada85b6ed72e1c050","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.0.tgz","fileCount":218,"integrity":"sha512-+s0qRl1J48u7OFHJ5PnbC3Dgtx0Zu/9Tq4eRSfZJS+uHpPe6xVrzVcze868K03RVp+dxU+o6jmFmdek1D2o/mA==","signatures":[{"sig":"MEUCIGjHNxPkC2TLFUdAaqxADzM1IYD+vZjEhflYcfIMl4ssAiEAiA53VVsbreUI3/klznnmQcMrJyeYWBHTvQceFg7s4rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6175889},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7dd3049e46cdcdf00c0fa749f2a9ae11e883f66a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","lz-string":"^1.5.0","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.0_1766658677268_0.8644924755875218","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"drizzle-cube","version":"0.2.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"994e3854a7ed880350c50225dbae72dc5c9069c2","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.1.tgz","fileCount":218,"integrity":"sha512-qye72QmLWI/+CYVWkPoyQxTAe6ja6d25KslCaNiTAE1iNfjQ4IZEsINwMRbHQm26p04BJ8G7+iWVw4EzDWDqrw==","signatures":[{"sig":"MEUCIHdZ2QW/YV0zlgSFIG7YjMTICSW2tlOP/KcHnswPHDyLAiEAv8ob65qlghWT/91P1o6T6mJvnsCPzT60ex0pFeNDtdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6176088},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"bee0f893b278ff94bae9f9f99e1cfb3d08f41787","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","lz-string":"^1.5.0","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.1_1766659880024_0.5764767586688853","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"drizzle-cube","version":"0.2.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"43a91c8b52dcf417bb3a180a9125b32c85162f6d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.2.tgz","fileCount":218,"integrity":"sha512-xUJOaNHF3F6Uryd97t4ti8UJC7mj+6nNpx0IizmT4FsTA1bl5xquqe8PdL50Co5fnSOY3ja6P3aTsBeheexbEA==","signatures":[{"sig":"MEUCIFkUg/bEaPVDwOBwqNTpPUzsn76soFk6qxyDtXnGG1qNAiEAqzf+7TLz8Mjh9acRvLEd8K1HYTiJ6qrtssVhl2HqC6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6238658},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8a4400f81d2ca3e123889bce3480d9355b15e99b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"dagre":"^0.8.5","lz-string":"^1.5.0","reactflow":"^11.11.4","@types/dagre":"^0.7.53","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@heroicons/react":"^2.2.0","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^1.4.0","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","@types/react-grid-layout":"^1.3.5","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^1.4.0","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.2_1766662823550_0.9059062123336965","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"drizzle-cube","version":"0.2.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"bc8966bb5174dd1541c51844e5945f3c8c82a3c5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.3.tgz","fileCount":225,"integrity":"sha512-XP96IQhOxA50oLVjwYgkVlA7uftdn30V34Zlkv+be4Na9hJQv1SArDo2LwQWS2B1JJax6EdN6eCf7yWPCBQWig==","signatures":[{"sig":"MEUCIQDXZdr5LMMbgWNfN2BqlskHngqYlL7ftjzsr0L0ZWkXBgIgOTqqgDIY/ZSp+603q8rG8+WUWF394RJ9fCRwdoijZMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4566899},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fabe5f388499e2f4313e7ab3efe7e847f2fe1c6e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.3_1766730413632_0.5188810926721501","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"drizzle-cube","version":"0.2.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"105193067a8e5f6ec6eff0501a0bba22e4fa1e94","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.4.tgz","fileCount":225,"integrity":"sha512-fMr5tTIuXIC7fB6QZh+jhrsyG2FYnWhj/mgBmNtsaSjRP6IjJfoDPE0j3JrFG5lQl3ROAW5QTkeUSYUsMRhAdw==","signatures":[{"sig":"MEQCIBtPep9iHzVmRJvSrgYQLfDNIh5RkQ9DuQyWADQKpkpDAiAF6mG7Idsr3ZTLNJEmTlGLYyHqvgWxGQNEfKT3wDW+Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4566738},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"032320d42b87163ccf915dfb2315c66d8a11e4a1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.0.0","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.4_1766732217881_0.3102723903667024","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"drizzle-cube","version":"0.2.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"ae41439324f160ca594cc470bfa567949ca2971f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.5.tgz","fileCount":225,"integrity":"sha512-2D76sviFnnynlJxzmCh5xT+VQzEcmBjgUnndx8JSI2wgPm0Di1isL63ebp7kWWL9eNXKzTQivtkO0LVYTP7pVw==","signatures":[{"sig":"MEUCIDizLz6Vq3Ws3+rfOENJiQ8RIyMqqkrFpUiahpJx32OcAiEAyknKQCQ8IBFseTeLRweeBnrLC+iIU8hn5+LNITKUdaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4566738},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8fe7e378dc692b6646b3a94e9eecb750423a86df","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.5_1766735136209_0.0054300870588883665","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"drizzle-cube","version":"0.2.7","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.7","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"88183f3a0cdcfa7926718143e6e99089d83b4e9c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.7.tgz","fileCount":227,"integrity":"sha512-Zs7ql7uVq8qaetCU63/wU0KfduS22Q1+jjN7f7G15qBnW1xsXvx3XRZWqPArZKv26dbrYMIAHsyLrNhKKG54Vg==","signatures":[{"sig":"MEQCICsxhJn7iFcvLyd9HAdFVuUYHRmC+kO8ha7PjbZgceXmAiBh9712wSs2TxUvbfWQFICm58D0+MjSjuRZhgiuDppOjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4646141},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fddc5e9990acd43979c201873aa937b1ca5c1a95","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.7_1766746060235_0.5358668933720632","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"drizzle-cube","version":"0.2.8","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.8","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"cc76fdfe60fd9c3881e58d70a16f860e820a6f76","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.8.tgz","fileCount":252,"integrity":"sha512-c9EaU4HfGzjkxAhsLCQOewbztkfSG6B4nhqcquxug4fRp9z/KRFJRXGL/5OqwI8Rk+788hKZgX49HXQc3jOQBA==","signatures":[{"sig":"MEQCIFyyBTJLkVo4PFiDTfkEvg2ScSwuPrOvw7UVOrMPbv4IAiBf3rq/OqQQJ0/uMDlc0WmjzvpSzGtNzLvy0AWiVnQUwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5233361},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ec7c10718d1f542a02b32dcdc1b2f0513b91b1d6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.8_1766836219917_0.8913702692167158","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"drizzle-cube","version":"0.2.9","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.9","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b3ebf41c0af05c99a6110904cf4a3a648837f62d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.9.tgz","fileCount":252,"integrity":"sha512-1UpH4C11j1UrVCm9/kV6zzZN6pec50CW77gKUQBtm9YJr6GWizq1vx8jzBECmaH2Z1NBXdbEH7zWR1SW76LjMA==","signatures":[{"sig":"MEYCIQDI+zIsSeBZG/WdPJ3ujFvQdTtUovsqdKPA+kadq2hXUAIhALwnCLH8oXFCXlul3BegsbK86rFaeq+XCdfZhtpnRLsA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5281674},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ec1b19ec6d7d2c10b8ec08e092ec385e7d682b33","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.9_1766845123507_0.03957680952219267","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"drizzle-cube","version":"0.2.10","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.10","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"05b7ab78c08a2a3a7e44097551ec3ef26bd11cf5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.10.tgz","fileCount":253,"integrity":"sha512-GaGIioRyjXFbFponY8Wz43KThFzaBQTQ6Mf/YwSO/hb6lNvu0Db7+0nHFbcbT1JEzL4ZdYzotBcjs3ILe0wRCQ==","signatures":[{"sig":"MEQCIB0/95o8oOfSDFMYJhfgh/bWlyvKHo1OgvSUsZDn/RpuAiBnnuWnzU2UUmVzYnpRaEPcJ/XIdVKie3SyDz89MqWwsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5306185},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"1d322b7dc0232e00f3ab9d0ba91a580ec119a79f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.10_1766850557114_0.42057334703826643","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"drizzle-cube","version":"0.2.11","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.11","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"848af44475dd4f64e8a9bf2a311088c442eeb533","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.11.tgz","fileCount":259,"integrity":"sha512-yUU7iemmyRViuMrBISd0OGHx7n/4sAfvzjTBD01/yuqeiMaaCsb1tH5FUHS9wiK1E4Ig9hOyks2hECn1f5NGpg==","signatures":[{"sig":"MEUCIQC27DqgF4Hd/DTUFTc0LKu1Z485AmFDCh5Hz6We3lpHZQIgUak+hhCNcZ/b4Irw7q0Oqk0WknIM+NWmSWQ9kXNn8YI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5467622},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b55df4dad884ce5f69fb2578c114a6c456c2b81b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint src/**/*.ts tests/**/*.ts","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint src/**/*.ts tests/**/*.ts --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.11_1766909234507_0.2952536849589791","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"drizzle-cube","version":"0.2.12","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.12","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4e3b96b7bc394b9825d893dfa38aa4edbcc10f79","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.12.tgz","fileCount":259,"integrity":"sha512-LLI7YAePbe9j7AxwvC4eOzKGQrNPdIRAyeRJbcWBNwtuvBGy24yroVKK3StDtvDz7Syh8O9UU9IRofOJr4FJSQ==","signatures":[{"sig":"MEYCIQDB1iDGK8ycu+kfmzuXEH2JJi7ydX0YdS6eKfcw+U1gJAIhAK+NHO5IvM8Hwcxua3FjhsPwoYJSVFYxZRQvbTn4aqZT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5459173},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c66b534db3805cca7fea6c47d5bb0013076cf4b4","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.12_1766923938664_0.33820900844782753","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"drizzle-cube","version":"0.2.13","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.13","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"57a5d7f4b1a5197dbbc4470dbe0e946a5e80353a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.13.tgz","fileCount":259,"integrity":"sha512-PiQZy9BcOPkbME40LBug2JulZ9xUjAhWHQ47QG7IVzuakV77oUr5CehAE159ldF8EyW4ZlfZCi0ULS7FaeAcPQ==","signatures":[{"sig":"MEYCIQDYHfmFUbDprhhpGoC+C+ohWwNh6t4lYpUThsCUNHMVRwIhALnsikoXOb+/bj8x0U9yy8FIjCBFcM69LDaGQ/CxBb/l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5462731},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"d7939d749c68f3c2dca9cb223ef074be76fc7842","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.13_1766924906556_0.617250403049431","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"drizzle-cube","version":"0.2.14","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.14","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"de4e119eac0e780b8f141268be2a3db994be4ced","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.14.tgz","fileCount":265,"integrity":"sha512-ksodFTUv5Msf4kzpEZAEGTk1OubFgw1J1blDmv617hYAF3b4Ql7S45UAJwmJRLrlG+XgRi4N3gGG1AC9E39HCg==","signatures":[{"sig":"MEUCIAR9ixjRC4RiOS8fkax+HAG1/DVQyNpXlssvwYaLjDYAAiEAuiqKu2e21OmBbq1obvzk6o7mI/gOe9GgCJIOXT+zFpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5508343},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"95704a4f92f9d376fc06c51788cd5fff2162535c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.14_1767083132648_0.7460633059738004","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"drizzle-cube","version":"0.2.15","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.15","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"2610c27f4976860e0a85a33fd5a98d6649efd33f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.15.tgz","fileCount":203,"integrity":"sha512-Cuaai9Y4gYdcJNkbw+1yRBWdNbKwoxxbzjp9SmCmL56UyGp9itns0JTI/TDTATtgj1iMJylBk9v9Mhnc+fsqog==","signatures":[{"sig":"MEQCHxUeIa3aCyKIW8LD0Mn5TlHPQcqVBUIke75/W7AFVwwCIQD83XAZVjR01VtsyHSEV6EEgWqv3wOxG9JO+Ri/1eyVpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5462416},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3775ef12a45f8290a06fc85eeff0de3c371e7736","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.15_1767167884204_0.33072579777280087","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"drizzle-cube","version":"0.2.16","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.16","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b1df609aa2536ada79d2b00aa8228081fc635f6a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.16.tgz","fileCount":203,"integrity":"sha512-hbK1K8HE4+GsxItjDrLyPWe92cEQv0kPiUtAx/9P/PzuqS1Y847zE6282+O6W2j1CfRYlWeULTAYlWmKP1nUJw==","signatures":[{"sig":"MEQCIB4Ywpi2ZvqiWeuiNUBRjegqNbk603uPjHAH3pdHLKzxAiAFAG8HEeOYjcrxTJwKcDqh/D+CwTWdvQks7wdpvKSzcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5536747},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"55ebe56301aac21d7fbe6d495764dc98b0714510","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.16_1767328904585_0.5387417351964288","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"drizzle-cube","version":"0.2.17","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.17","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"cf37b6f2ea980d563f9f5943f8e0840254de344b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.17.tgz","fileCount":203,"integrity":"sha512-yufLjVxfGtOwFCEBmvqxtW3vzlYsxTkZiMWA5uCYzTpX05hZtnm/y7oBkZBdEJtter5vb6PKHExZqwrIbrFnDA==","signatures":[{"sig":"MEUCIFJE5UQbwOpLfUkQ/0YHuzlGEhquXLktzbyfLnIP8szhAiEAs4kDLd8wlfxii0Pj+YfaanBTAJYhnPk7P18QUxblb20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5554075},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"194ef83c0c43ea5aa2c15182bc00df0dbe7e5efb","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.17_1767341972159_0.19551739824401637","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"drizzle-cube","version":"0.2.18","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.18","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8c18ddc6999bdf6a9ed0124dd983a2da780fcaf5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.18.tgz","fileCount":203,"integrity":"sha512-cNrrKMPCP8aQ0IR2rakhw8PZ586Ge2l8R5vuaQzqeH6Bvx94G+5SFJ7e6FYW/qesQ/2+3JSInU5D1XONQt1Uhw==","signatures":[{"sig":"MEYCIQDD8Skq0NQV8VGLXVi4fVtwia3T0v/0XPE6spBLMlRfPwIhALn4vvgaoTVFZ5ftgve2arXn6PqZph5CNEEjYNKPHFa0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5554471},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"4889c3582222eb63cd15f8c32fc8969eed8735c5","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.18_1767344017491_0.836703538453456","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"drizzle-cube","version":"0.2.19","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.19","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8a368ba24b499168658d5f4c84e9a9d109c970c5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.19.tgz","fileCount":203,"integrity":"sha512-M5s+Khk+hvQh6YqeVKm9y3LvomEeq05qs8eyjkSOH65nn82WND4mTsI0E2URJD+KfXK9yn/Ge56Nu3cPYzJmdw==","signatures":[{"sig":"MEUCIA+fC2Hq8qfKMOq/WU0OCXJUGzE+q/f7UOWteOchdTMAAiEA+48bbH2R1ex2fYbDPG1Gf1mobOdSrmgsXzKig9l/qzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5588013},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"1b8e064173cc608c55ed3177caf365219d7afffb","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.19_1767422415175_0.22763004651661922","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"drizzle-cube","version":"0.2.22","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.22","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a7aafbf40ae62c168b6c6debc9d6d3c6ffb1e1da","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.22.tgz","fileCount":204,"integrity":"sha512-K2MhYDc3FBLQGjDpX79MWC+9WO/Bh8+ReNax393UB0JCGoEsijVdo5A9CVv0C8tjwykmTVQpALS5u9OaUJiRLw==","signatures":[{"sig":"MEQCIGcQRODVK3023rLBLGZ5ousNCEe8mAXMXXYRuU7InxfpAiBBuJOOSVQiE9m2E4RYlV3angDYUk8kps8K5PnNrRE1CA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5687521},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"2e9249dff7d6762735ef211b4c69c67942b3c2fe","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.22_1767509470447_0.00640152617990819","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"drizzle-cube","version":"0.2.23","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.23","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f0e1a219ee9d31117affc7fc1faefbc03b34f3bb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.23.tgz","fileCount":206,"integrity":"sha512-VAKGeCg2V6x8ZrwOf94muM2gsPNefeNTYJM3V5e9vw2/WVXQX3I8YzE8kUv8b97xO+dD6j/xtvXzTG0bkUc/nQ==","signatures":[{"sig":"MEQCIBmRlIWNRpKyImnDiof3RhmHtstHEOApv6yoxCAhQ5aOAiBrXhdGrDdDLQ/mpGT3Enimock4Y7vx2CiUKOPidx80WA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5727581},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f1461c2fbac5e4a2d7f7f9fd8932eab93fa560d3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.23_1767517518377_0.8830024192502923","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"drizzle-cube","version":"0.2.24","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.24","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"05fc22153b7a6d3e73148b087027aa5e28eed966","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.24.tgz","fileCount":206,"integrity":"sha512-yvNFxneI+hmz1zclr11FBVB+hvv2QuHCQ4TQ15+0BmqbOtRlJL14m9FxseagtZoHj5SE4ziZ0EypwcR7qlhTkQ==","signatures":[{"sig":"MEYCIQDLRRXlmYJdVn04hxBaFVOT8zYGFql3qmckpq9IBiITnQIhAPAAK2PethUctI+Dcd7qZvsjQ8g7Cxb0EUMjzSPlSNOC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5729021},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"aeb8cd5c2594b48911482c37443195d1ed658274","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.24_1767522405996_0.10295924917134114","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"drizzle-cube","version":"0.2.25","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.25","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e98c35caeeb68c5c00e8084b88a8e3a17c86da81","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.25.tgz","fileCount":209,"integrity":"sha512-0DSqI/GxQ7IAXs5bGUkeU5pmq02o1RIB16O1jrJSGi4ryR3ABFy6jnI+0IOXeikHSleRi9uWpu2ErdSrfq/zTA==","signatures":[{"sig":"MEUCIQDM/CqEII9I9nbOiYn6suCiS6JfF9kiYwjVR4gJ7vHJXwIgH7rePWcbRzKcEH43QiYCWF/mg7FHsWbSLHRY01z4Opk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5914078},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b4d223556871d2a8bf2c70186269469761bb0103","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.25_1767596230307_0.2636043012895817","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"drizzle-cube","version":"0.2.26","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.26","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"9fdf9688c8ec7e34c123ac1004d3d65a395df8c6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.26.tgz","fileCount":215,"integrity":"sha512-NdZJif27tZccgtZ6AiZ2E915pFXf0gvT5OS4quzOiNWvMrTBnuwkFJxII2dA8Eb4HFGmM8m6/DJg6Jcl28ZSgA==","signatures":[{"sig":"MEUCIHBKlAYL3L52Rs8fPEDVsVohPF2Ra5uNhtfwyTci+evYAiEA/4kGcfS2kQdyYrweR4KzkXWkmmyuRUkOxfXKe8TzWP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6029108},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"bb49b9a99154a8958e83d1536bdb23c357640050","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run && npm run test:client","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","dagre":"^0.8.5","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","reactflow":"^11.11.4","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/dagre":"^0.7.53","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","dagre":"^0.8.5","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","reactflow":"^11.11.4","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"dagre":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"reactflow":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.26_1767607272750_0.04399591202315656","host":"s3://npm-registry-packages-npm-production"}},"0.2.27":{"name":"drizzle-cube","version":"0.2.27","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.27","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"9825b4b66bb0f1a13ed0c86360549fc24f8f9c47","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.27.tgz","fileCount":234,"integrity":"sha512-+I70rkftUwIVQ/NrN8dWkb+lQfVnleHXAkNulae34WPNyBEw/as/87mjMhKGG2xqpRok7NiYLsPUP7lfIxnSOA==","signatures":[{"sig":"MEUCIDs2WI9raMS4QH26sY2PKu9DV4Nb6k3HYRZ5hkHuVyxYAiEA/OdDdwYBoEj3WbXRV3LcOj0vmV97qTttQGzdH6oqXqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6184314},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"00945a7f2a4424a71ff845751e467e8a5aab2a9f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^16.3.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.27_1767762478819_0.5063682866453392","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"drizzle-cube","version":"0.2.28","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.28","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"03d6ac46d17fbf4ac5ba3313b5d655ef840c501a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.28.tgz","fileCount":234,"integrity":"sha512-13uJnq+RkoRDGBdm3LjFapU9E0aIpGR95BLZfvt0+x5k68Edamhg/TnQ0e07EjGKfZ67M5S25ELcbIarBK8lIA==","signatures":[{"sig":"MEYCIQCMZw9lU99fEuBPj4/oxdHadWnI3OG90kij4E6b5Zd6BAIhAMoiej/Z0iLI4a3nsO4EjA58b9J88fddSPJDsYgvvrFT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6184436},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ee386c7d0bebc45d69d2b46e248dcdd6c468c803","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.28_1767770705340_0.4690802782973744","host":"s3://npm-registry-packages-npm-production"}},"0.2.29":{"name":"drizzle-cube","version":"0.2.29","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.29","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a42d401870ebe9e048fb59c1953905df3788792a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.29.tgz","fileCount":241,"integrity":"sha512-RgPe5s1UxTNlmdeG35ZpqrvuGfx+GRYK2mWH1mymsCEeFEJw7oIwHmKMo+emRrWUX6hN+QAMCjtvYseHS+e/Lg==","signatures":[{"sig":"MEUCIQD9ibefY4HcUpHMaM9+NXbh+GehbvR8jDD8qLlmgxBKQQIgOpUKxcr2tBGuQCsFvrZeUuiuLY42WjFIVorPmYsw3rc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6345558},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7400255874f1ba6b7c46e9298925e4b61a256c29","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.29_1767773269419_0.4477845556182418","host":"s3://npm-registry-packages-npm-production"}},"0.2.30":{"name":"drizzle-cube","version":"0.2.30","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.2.30","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"655731cf3184504afc3ea8603b53409c62418e74","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.2.30.tgz","fileCount":241,"integrity":"sha512-ciD56o2JuTEPp9dnjzbeXjZXH2/PMjzt1HgXKI3WFao79edYD9zASgtOmqmgw00g/5uBNkJLGszjRVjpWTxnvA==","signatures":[{"sig":"MEQCIHUghBLj3FCzNJ3x12IZl6OQrb5gyJ5BHiOCrbNKkKbKAiAtO2w5spT3DOS+DgZQoy092gzLEbeLtpJscbt5wP5XSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6351168},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"74e4b4d37bec78676dd5e0085887696f7c391bb9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.2.30_1767778582103_0.7920582562887648","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"drizzle-cube","version":"0.3.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"0badddc6240d17f91a74c92bb288697c78688cb4","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.0.tgz","fileCount":259,"integrity":"sha512-g25MCoz7fzl1b3PbmD6VsIWnIqlhbCuavy0v6UHqSgISKz3J2VgGYhlSYoofoyGLYb/LvfRIXopV7dr3Pdg4nw==","signatures":[{"sig":"MEQCIGIc7CD1rwLNfo4UsUw31ziuFE6vddtEAX6iRhPLBNyaAiAYJzvj1noZiEolpLP469trsI6QGvGvTpGILirgZ91XLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6912594},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"91acd611404b0d7eae932244ea9d3672959ef6b3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.0_1768023301126_0.22997104566701698","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"drizzle-cube","version":"0.3.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"297abee3c4434d5f8a2b6de1cb4a8c369ca286cd","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.1.tgz","fileCount":259,"integrity":"sha512-OxWN8UsVXIiMrWRMZmo4ve5OoLPqkJ+Z0Xb0QsxAb7tl+zkUiba3cmz9XEdmdPQDsZHzX2CKAzeTAnS8aiumDA==","signatures":[{"sig":"MEYCIQD+65q03BbtPeVysIRmYdF8rhxL+WnRtTgzugIESOcKogIhALFajUaALMRVryaYOGNZ/OXwoKY23hfUlLGfT0yT3vCk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6917078},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ae9021fbf679b836f6c5b362088da8480b2f2478","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.1_1768031918296_0.3924133040278013","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"drizzle-cube","version":"0.3.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"37eb188835133d5f63c278663db3acd1ae89b7ad","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.2.tgz","fileCount":259,"integrity":"sha512-st7Yg2vGJ1K3yLQKm9qCOi0e5bdfjq97p5oERw9ez5FY3NEyfLwsj87sUVOcfokjGvfYvY/YE+M5tBkl0Rj0dA==","signatures":[{"sig":"MEUCIQC/wBjSqluB0DX1j4gneVAEoim6Sxa5vbPE0f0+LJvkeQIgFYh98bXpGy6RzViUYfNvIb5zSHfmVpVyb9dPPB/FBsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6923809},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"31c06d3cc0117b2bc1985e082248de2ef7bb52c6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.2_1768034228703_0.4718094265563564","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"drizzle-cube","version":"0.3.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"0da24861b6ad5bafaf916f02acd140155d58ecaa","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.4.tgz","fileCount":274,"integrity":"sha512-fLVGkoXrPbrMeigYoSQGBBdGxQnrP42vAx+OoV+vuwuv5D39z5x8cychqB/cUFkjKTHQUtrvFDl37vctE4URpA==","signatures":[{"sig":"MEQCIBd+h3CFQCjug7pUi/wn2cWV7piGLiQD6ctGKqY60HuWAiB86xoSSNqaOySeq0BMwV8l/i4O3StWQDpAqddA0eTzhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7494652},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"dc7da92cd2e3aab072452b3bba674b18d653f288","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.4_1768126555666_0.6434243544486273","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"drizzle-cube","version":"0.3.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d4339cc12060c8eb7c1d6cc03c1ac5372d86d695","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.5.tgz","fileCount":274,"integrity":"sha512-xubXi093utu7tg+OvoB7vIyIQjv7iRlGusLtIrh2qt6MF5s0+jZ9armR3olel/KsxmdnzJByfPTB3Uc++z72EA==","signatures":[{"sig":"MEUCIQCYOEn7Ahe9XuZkLBeqJyF4atE+tInx/WxVy/F3mXpW4gIgF9MpbXzDO/pwRcD0lM8rdb6TuQzx77QXlx9UXWYkGnY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7527512},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b2740451b93157827f5893f1f085e47c1f875ec3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.5_1768127346572_0.16259445543012174","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"drizzle-cube","version":"0.3.6","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.6","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"cb96f7e1c3a5e4c067f376e3a4b0ffedf52150b3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.6.tgz","fileCount":276,"integrity":"sha512-Fqg0mYkmvDEO1qkTR5D8Tk3vTpXlYpgNqY8Q3fBSTtooYpqkDEowsf+7w0FOtT5d6lqiEXld1bZ9JUshsZnlew==","signatures":[{"sig":"MEYCIQCzlq6yiavAWiEiuhTZliIE0epY/KiY5OLrVst0Kni1qwIhAODn5OQqyMxptBY/CHaKnKvWuJGlSh8D91to5FoZbx/y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7587888},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"0fa0ab71844d8a04a21a4783bbcc675921b9963a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.6_1768292337648_0.5878449528244436","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"drizzle-cube","version":"0.3.7","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.7","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"bbc7d5fa77c5321ea9a3de6f469344c9bbbf6922","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.7.tgz","fileCount":276,"integrity":"sha512-PF0iYJxxro5yWmU6oUik6B9Ci7ygs5lW7hhZbAq5UxBGyqruGpILuxe+tHfc2MajGMx3k9OSUZbhLJdMQw9nhQ==","signatures":[{"sig":"MEUCIQCLVPN2a/kQGiRibnDcUT0PprM9xFgeqMjTIY53HPrYuwIgQF7ZYDZHJgYvOxXq68pn1Z+6iCVO2dCM4Lz9hAYmgmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7591893},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"30039a82eae7184f29254f2c37d627cdb7470eb8","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.7_1768295960660_0.26137410481766565","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"drizzle-cube","version":"0.3.8","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.8","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f9d96503eb572efda2cbfea19c8bc631ee869870","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.8.tgz","fileCount":379,"integrity":"sha512-Iafb7lYDhyMednTE3tB1cM4fpjyXnQHUkEW+lSnF8+ls8toDvHQFs6fDJ0oGjXcExajBFCWgSVaWat0PoxfK2g==","signatures":[{"sig":"MEUCIQC43bYoIj1BF+oy5WFYHHNKG/GFPtrqOttzlZqNVt+LdgIgdE+FPzGRBAmd7sd7IlRHBxdvXmchKsfNFHtTa7CvMYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7293092},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3b1c73df8e2abe40a9c70ab633a5f2c568295510","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.8_1768369377796_0.6796221644649296","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"drizzle-cube","version":"0.3.9","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.9","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d450f6b77e45c1eba72f7b1f4fe3890ac19115f2","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.9.tgz","fileCount":383,"integrity":"sha512-Z82F2C+bmMYEJskgW4CXUVr8AF/qBHUdqoJ2+BQtHH/h6HGqx/XYZy/0lgcoPS2q5yIJ5ErfEWwLeUMuRntRZg==","signatures":[{"sig":"MEUCIQDN8DBKUlw28X6ze8gkRCgO1vlRAaeudsHnfpzt/2wgcwIgKvrGaWoLbT2GxAVmtsE9b9h9Hz9yDaNfoVGvOubAhsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7464464},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3ea912ae8725842878f78011f3084d290b920c81","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.9_1768388079894_0.07628743453868858","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"drizzle-cube","version":"0.3.10","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.10","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"628190659e4ba888cd4e09ce3a9ca6bbf867daf0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.10.tgz","fileCount":383,"integrity":"sha512-YkSPhrbVIvI9bCAfYYxMXTK7ZFl08R2ba12s3vkR1kGoecCwU1O953ZjKpoMeQkJP6kzHDpP3JeG7AfbXEID4A==","signatures":[{"sig":"MEQCIEuGknAmA0A+Jyi1n+/D7Ze02jddHyQ2GjtnYyhYBLIdAiAtKQOkduvcSPIW+oiEYrhgw5oH/8B+pEsPKWBikUPguQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7466681},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"64dddd858b6ff3b00d750059f5c015c51b428a2a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.10_1768393070093_0.6120316159870578","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"drizzle-cube","version":"0.3.12","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.12","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a40c0b7691867d51cca89b943b54ba6aff7963db","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.12.tgz","fileCount":384,"integrity":"sha512-PeC63amyGRjyxJGKpOPezS+821M/P2V5YMo7S5AGQrEdlaITq+8vf41Dky3ppkDfVIHq+EzYpP+PvkJSs7Z3IQ==","signatures":[{"sig":"MEUCIH+2XVvf5CNSLOBeXWGR1tOQW8xBIz1yAiIkbX4jK9GfAiEAyqI0bNp+cg09WeL8e8M8DRLpccSY/m1g5qwc/aIpHNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7525800},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ff2af71f0dfe2b2f9948714ed63f99441575bc82","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.12_1768800612175_0.08915926172885724","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"drizzle-cube","version":"0.3.13","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.13","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"5dc1fd75c47951c085fa92ae77bee824ef0f3cca","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.13.tgz","fileCount":384,"integrity":"sha512-gpZWVL2OQcpRcOul3U1PfLd1vqFj84LegU7qjGaqMVhxm/elpr311xvGCJKI9Aj6U96NyKCT2F4qjA4E3HC50Q==","signatures":[{"sig":"MEUCIQCciAdXskauyqzKie8JKox8+EukBl6UfVgfhnu8FkhrCwIgO1BD/z3qbuTXIhDGKu5zO1hSd/+WsyHfbhKszqpcrnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7562554},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"29f75ef9c9bf9dfdf369a55a5e8cd358845433df","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0"},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.12.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.13_1768811022220_0.08411387403926174","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"drizzle-cube","version":"0.3.15","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.15","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1144422aa0929a1a1861c61ef9dab8abf8009cbb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.15.tgz","fileCount":404,"integrity":"sha512-t00fEB4Lu5pdaBlgNuq90KmX68bu0ckOXz7P2kEqjyEAtc5GJ4Mvc25ZUL0C+A5TV5g98Im4sNbS2NjW1PCgpw==","signatures":[{"sig":"MEUCIQCF6OeFN1tHGmGq0khkO8NrIB0PLhHE9/i/0sXDC1LB2AIgdpAmq6Q9DLCOS/eSbTB+VgH8WihoSIck0NUJ0WNQXM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8253058},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"47a6cbb1a41db230e8f5833ee8bfabb0db66c222","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.15_1769182445251_0.3226264742059395","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"drizzle-cube","version":"0.3.16","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.16","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"880aae8de27febb99dc7d52a52b4b556b544155d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.16.tgz","fileCount":404,"integrity":"sha512-scl+skFUXi1TTGLGDxFgZRnk/eECwLLmBFtZxHArUhRtxMz2ea1iwhTv4ckYRByZRVtjtKO2v4nL2gbs1rCkwQ==","signatures":[{"sig":"MEYCIQC0VJMPsszUFrAlldB1hPCnbiV6cBTbVafOUifik2/A2QIhANFg/S5zYfncZNBFmILbQe5Xyqg2s7srMOfHlfnmV/mU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8394196},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f50ad7e88e5280b8b92458c390f0d04c480eb80b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.16_1769238381620_0.7550101787554127","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"drizzle-cube","version":"0.3.17","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.17","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4a2383ec081ee986342406acbae34ef5f2bf4ed6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.17.tgz","fileCount":405,"integrity":"sha512-6D/gmk33ZWztjlnj+hUQ698zMFAUq4Ok9NeMBdR3Cb9zXcURT+R71WD5ohqRrbbVu1FrPkjS5chuLiklcNHfow==","signatures":[{"sig":"MEUCIQDg1TuDjPvXVkn4nn/Cau62Zz9e7cJpATVX8LNTO2YHnAIgCgHVyJemA4B1AmzfugTBeK5grDXC0varrJCZ0Mv7vZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8438677},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e6718329e74a0ef52c37659d49418209e98060e3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.17_1769243184829_0.31594448974950406","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"drizzle-cube","version":"0.3.18","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.18","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b93c06c373611c159269d6d9bf679382610ac771","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.18.tgz","fileCount":405,"integrity":"sha512-TVzJopEgwNpmaOvIjx3OBIsZq+8h8j41onA8GBaqJXJsNpf4Z2IBOr8RNgZDxQkXS9kcIwGIhHwhQ7d/MN95Sw==","signatures":[{"sig":"MEYCIQDxPzsOt1CFmutNijgwqKwR/uDT7DFuEugA5EiSBlx3DwIhALjUr4eV7oirB3jg+ywd26OgnkmAj71+za0N5LD4orl1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8438837},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a52bb5198d98e72ea77573b157da7f840ad0919c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.18_1769243986982_0.174822051577874","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"drizzle-cube","version":"0.3.19","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.19","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"98042d33850aa4c0b2c4ba2752a5daf5287b5d41","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.19.tgz","fileCount":405,"integrity":"sha512-VUZDsBTF9t7P5V+jKQ0jgybqzohxzYshNsxX5bQ9YkGOOJltgweWWSSIo9wmAtFVoeTJh9JNisY3Ic6ter28CA==","signatures":[{"sig":"MEUCIEsBilqS0ZFReDJOAIK0abjGsxtpI+o3AYXA8/qqvepXAiEA11OySzA0HM6sU7/j360yOwQywmgTFLoLPc1NZCsiNrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8468221},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"466560cb43975ab79bf5ed8c1da95fd078cb8b1b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.19_1769246623614_0.188286791491999","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"drizzle-cube","version":"0.3.20","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.20","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"674590f0df2daf80fd51b311369f5668d416ee31","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.20.tgz","fileCount":405,"integrity":"sha512-jMlpeZGHrCdlvSbAOsvXKvuOR1l7HF6O3jVanMlIw0yJDRYEC1oL6R6l210/zEZpoAvH8b6aIK+egqCxsZnN2A==","signatures":[{"sig":"MEUCIB40Y4xglxGDzcdAYAIJQ6srojXaBvK6eVCq3fr3B39wAiEA7zHUHPV7cemBJ7c4tTj62lJfmtFRWDZgHLIfUKs47ts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8467028},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"6dc0eb70f7b747a3473f126fc7309a4277611dd5","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.20_1769248312340_0.1892112481427799","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"drizzle-cube","version":"0.3.21","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.21","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e87d358b9ccfe9e67eb14d6b7c4f33ba7974f5fb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.21.tgz","fileCount":405,"integrity":"sha512-zmw7RcuOpPVSRbWyJCykaveU0Pfmu312LqfXP84OB1Rg0UbQmjD2NN6KMIbKNaaJS/GL6Op84Q3P/G6ohL05SA==","signatures":[{"sig":"MEUCIDM1F5cqNz2j1D0PzrErXZ4DDTD0AXcoBrr9iDtNGaMeAiEA8mrK+QDp+BNlJou85tIZG3QcQ2g5A7wM/b/iDZ8kbXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8494752},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"366de07cb83bcc870eae9658dd3a3f479fe179ca","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.21_1769402117680_0.8970147751227773","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"drizzle-cube","version":"0.3.22","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.22","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"b576f5de52d3a7e5dbc8c954c23538a8b7c94438","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.22.tgz","fileCount":410,"integrity":"sha512-kBPFLlb+FtUmxmunl3+Z2KUnTjR3Ro1ul3LEJzUhGSpgKlzwfnstbCDyVyBhnZktuzrVSe7R0cwb7zsyM8TslQ==","signatures":[{"sig":"MEUCIQC53TiKIXgn3rEI1RnJP4QQRqJztXM36Nl0q2qKWl5Y5wIgN9R1XCGJp8oHh1CNP6rjdjlF9T0EcXqPjnONGOAxIjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8636872},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"745b3d231eadf5cbeb01d28f6fe50e9f3dfd17d0","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^27.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.22_1769573358983_0.30127358263183823","host":"s3://npm-registry-packages-npm-production"}},"0.3.23":{"name":"drizzle-cube","version":"0.3.23","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.23","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"86eb6b7ca7255b51757cf5e5a0f035677a4ce8e1","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.23.tgz","fileCount":411,"integrity":"sha512-4epTHqldkKI834cxPksZbBtU0E3f9YJ9BH58pb9n7Gconnz83rqP3T0GMSvjNy09/g/LoXoN164u56Nj/LOrkg==","signatures":[{"sig":"MEYCIQC/c7M3T/JgFuXkFOvAfUBYslsgRczJQC/wd2FUubKRUgIhALGM5QSLR7vUZuOph6JZyWbwNmtllN20+O/S3Lx1KGQq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8641963},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"096788cc6cb72ddfa15b2520a9d321cc769ab941","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.23_1769746723202_0.5777638129328244","host":"s3://npm-registry-packages-npm-production"}},"0.3.24":{"name":"drizzle-cube","version":"0.3.24","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.24","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"61a8ee03e7261fc601bbb10bb3a226dcb6cf40ff","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.24.tgz","fileCount":409,"integrity":"sha512-hy53/mTVjiW3RXXPbuaW/GqmKv3wjD5CVVJeCTyVgl/0D46i5YDvVq6XYmaBwFZmKct+irOoppNtsUKu0LJRkA==","signatures":[{"sig":"MEUCIQCRgTIwYvQE6ftyBjwj/pRl94uVIs5P/0pXZPKLwgIZZgIgDKcMHqOG1Xz1Jc2+mg1+QrZC8HG3oZ0DFfRYbSre/ZM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8640054},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ea826e3e8cc0558c605786c843dce41021be63c5","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.24_1769833888853_0.2538470902736232","host":"s3://npm-registry-packages-npm-production"}},"0.3.25":{"name":"drizzle-cube","version":"0.3.25","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.25","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d9421a401504ec8cee1818f6ce00a7897ef2b03f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.25.tgz","fileCount":414,"integrity":"sha512-sJbSMggCnnKWYx/V2NjBeMP6pBtGtPBInA+zP6D0p+muEOZv9yR2dGbaYLK2LUpeuMrvV/RqwQn6/VFh5YgEKQ==","signatures":[{"sig":"MEQCIHMFiIh6JC7L82WURUDs0ZIDpdzKrWOwBg6dLQIQmF0cAiAfr+DwdDsrXFmKduU5TMu4DhmHS3ACObPyt7RQ4VRQOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8711826},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"0fc448a6e0537b6bfc49e1d681ec5e5e94455ca4","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"cliftonc","email":"clifton.cunningham@gmail.com"},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.25_1770009445267_0.3230274973984042","host":"s3://npm-registry-packages-npm-production"}},"0.3.27":{"name":"drizzle-cube","version":"0.3.27","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.27","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"513fe73457b6062897417ae54d76cc0b0ec69040","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.27.tgz","fileCount":414,"integrity":"sha512-0tYXHXtOzXrzILde+9VdL0Uib/HAluqPY+jhlA4L9hiVswfaP1XUW/3/5qXW/lpK2EvMuIx4tyZlJxgzcgXwwQ==","signatures":[{"sig":"MEQCICq7lesxFLq8wusLeCJvHHl0GlVXpx5Vcdx8VFh6zJ5TAiBAC+/tl4BGquyHa2EiDeGUVk/xi4PQWECo1ut8+KBxPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8717548},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"eb8cfc1c90daccdf15e10a6b14e9a522d47c7396","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.27_1770440746589_0.8577968644887062","host":"s3://npm-registry-packages-npm-production"}},"0.3.28":{"name":"drizzle-cube","version":"0.3.28","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.28","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c3a889817cbf34544f8323c154415936506ef5a6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.28.tgz","fileCount":414,"integrity":"sha512-k5Q5C8t1FA2drPgE7VbmKLuC6txCmNoGARVghdesdfo7TCjpSyU7eevICjoUnbl9oX79y53BPP0Oc9NNwZAfdA==","signatures":[{"sig":"MEYCIQD+a0TjpMNny4ZasrNzF8OlguVivs+Q0D/lVTDRVUx0gwIhAIWE16zmvjTl04/fLWVSK5f2IOuLIJsJqk9sYneT85El","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8718645},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"5aaa49ee11a27f9b35a2ed8873e393ac1ae20b7e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.28_1771392472498_0.49199240690462775","host":"s3://npm-registry-packages-npm-production"}},"0.3.30":{"name":"drizzle-cube","version":"0.3.30","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.30","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c6cfff3cf5a48e5892df865eba83c20ee5f52768","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.30.tgz","fileCount":414,"integrity":"sha512-H0qXiIWhJGCA7BKrn/iMtliA8uCcvkn1jBHo/gZCuwqFNIG0VW8HICQhTx00dLBSiFG3wSdSnUImNsW3I6qLmQ==","signatures":[{"sig":"MEYCIQCFzRXnbU0PvjyparTtDWMk3XJExtOZSMbouhNKwsBLXwIhAJ6pLRUx+U0JUUI/vV+yKKEoYaPLLCQJDmvJf2rtIgQG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8718885},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"5d976dc62a41a8d6a22ffdd5f24a5d5024ced557","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.30_1771599190168_0.7798517932090869","host":"s3://npm-registry-packages-npm-production"}},"0.3.31":{"name":"drizzle-cube","version":"0.3.31","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.31","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"bb6deff1fe697aa42c13469582a9bc06da89d2f9","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.31.tgz","fileCount":414,"integrity":"sha512-UTlBOUlyt/glFWLpjQHDb7c5olBziThDuAPHOVNimnJBIhXsVBu9ma7XX7UcGIoY7ALb2NZltqprnwgnDnXoSQ==","signatures":[{"sig":"MEUCIHfpOdoMG+RrLU9uOcLgGqOGfmm7F7BUwOt+twnzO1yGAiEAvz5PBLBH6CMwO1xczM7dfdyh88p5zRC0livtyVHd5aQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8719783},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"503ecdee163969df104e80833f47f4064651240e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.31_1771659256521_0.9345635869982729","host":"s3://npm-registry-packages-npm-production"}},"0.3.32":{"name":"drizzle-cube","version":"0.3.32","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.32","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f5ee1d20ceac77e18d8398d652bcef90fd8bade3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.32.tgz","fileCount":414,"integrity":"sha512-OPxpobwElAhyuNXq0EQsMRYDmdxzWE7OSNPio3UoYBiOTJm4LUKcP9iNgQETDeMLDkpRV658oN+lPoYGg+ZZLQ==","signatures":[{"sig":"MEQCIEVaY+ola1O7PGZrtwmVzNdnkS3b5slpftfiLZf32sS9AiBXFOJjDuvXgD9Cufw/bVPn/64mGqKgDekrDPK4/m5yBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8724102},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c1b519ce605556a751492261c25d078524a1b275","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.32_1771673787743_0.5621789951774412","host":"s3://npm-registry-packages-npm-production"}},"0.3.33":{"name":"drizzle-cube","version":"0.3.33","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.3.33","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8d777b5b6f2a9000a32586eb1778c123f09a65d5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.3.33.tgz","fileCount":414,"integrity":"sha512-AEVzr5vwF+vckPFFpNoYPuIdtikjsinjsE0+W3iIOH4qfLAgawiWCIJi0kHFreOnlsESzJ2vHaeRMiOpOTMRzw==","signatures":[{"sig":"MEUCIA+WUGv3kWV070YntP8wqyNwok5Hf8nfyP3wJ6ymXq2hAiEAlj0QlgXUGU9Y0xumn+5OcvNdwEtH+zTipLEarwsSrMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.3.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8725198},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ba35277d55bc78fadbfdfef4d2fcf2f62c049a0a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.3.33_1771695662451_0.24853464493314736","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"drizzle-cube","version":"0.4.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"82cbde44d030ee2dd2aaecaf1b332d71a15faf30","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.0.tgz","fileCount":412,"integrity":"sha512-44UbR8PZFbdVNKctAS4WLnwQlGb3IAs5wFv39ld4DFjGVYsURxswkrcHskY1Q8pBoxADacnFTmyu4AVNMy0AnA==","signatures":[{"sig":"MEUCIQDaxxjWNNC9pKLBLVu/fGTM8lM5gt03xQsuE/t3QwLApQIgFXONS8KrR5CWl5OE1RjL+4UGnqK1vX1GX0zFtOeKVWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8872254},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"94b168857945d1cd831ef1a7a70c29ecf8d7edc9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.0_1771826063315_0.49600778267295964","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"drizzle-cube","version":"0.4.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"beaf8cb7e7585ec6f691595e4820042f1fe56c1f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.1.tgz","fileCount":412,"integrity":"sha512-3VvO4E+UEdfDc1/9jZDpExC8kGpjAj6UhgEiPqi+MTlzGMjE/stzzMIqg8ClfBMziE5bBE9YHqzbnDHbWGNiFQ==","signatures":[{"sig":"MEUCIQChG2bSEUoAybDQs+tQ99BjDmlRvfaPXMDUizWiRl/Y9QIgMq6cX81durgqwmOG3ywA3Iu1lbmnZ3ZBO/MUTabsWrw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8873428},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"93250c7e7b9be70b2788877519abfc7b76197842","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.1_1771877787139_0.6338521069234564","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"drizzle-cube","version":"0.4.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"776f05784f9fc7ffc090a32e7de94cb906227602","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.2.tgz","fileCount":412,"integrity":"sha512-iJq8q53w9liKlnybRooytS47HHFnUnNqmBPgMopsy7EyVauEmwHAE/RoA7Pc/Xg+nd5D4LI2LcEyJO9WhkSHHA==","signatures":[{"sig":"MEQCIDs8fDCbXveQG1Hvt1okmX1l1n8YvcF6ibMPpLIt7kdMAiA+FcphHIySmryRfckkTgV0ct6LrWT1M94LnaV0xjD7Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8869685},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"dd8817e8382fa97c7f2e531345e3b7231244dcbe","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.2_1771905106403_0.08688030945860747","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"drizzle-cube","version":"0.4.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"c026338cde8dcd17d6d73d2e1cfb3161aefe061c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.3.tgz","fileCount":412,"integrity":"sha512-5rZOLirsIMxlzkyVMvKKVzH44C0yyrtl+SPXRW/BP8PldbfDMH/pbO7Q6jMNfOzoT8AOEsdrsEJKrZVZ3f1Img==","signatures":[{"sig":"MEQCIF3+eymBXONZJCVvLai3wpe+ShFNzGvadpS57F6Bxp+8AiBKyMxnD2GUXlPTLovi9EnBo5336TuHjGD7wyKkhnOa5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8882864},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7f33a30c3ddec1e51fb452850d896bdcec47d1a6","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.3_1771911074492_0.38634825797834593","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"drizzle-cube","version":"0.4.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d3398e2d4eb389b70f93b5d7d16ba2c0f4cbc817","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.4.tgz","fileCount":413,"integrity":"sha512-NZJi8fyjrGcGjTrlWgI7lf7RWa0aBn/yxxduRk/XiRmPRJ0zI2L+P1YQ8UfeJ64ail4xwyaMrUZQmFiMKLJLUg==","signatures":[{"sig":"MEYCIQDTP8XcMxcliiwexhoqhjy0FIafmFXRoK2l4/I1ph2cWAIhAOaIChyedNt+PjR789mPLgwmgt4peQt0ReY7gcMn9i8X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8934126},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8978fd974037b33a86a15098456fdc4fae982c0c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.4_1771999493529_0.6314646990014894","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"drizzle-cube","version":"0.4.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a0be498fac69561bf7fa0d23b4d420b40b976f66","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.5.tgz","fileCount":417,"integrity":"sha512-iHRl0Cvp5vo2tQNAT51KLPZnwESWjbt+BWWrul2zVx7/YJqIluTFOpT+xP57JTY/ANBX/ZwiTg35ogO878w0MA==","signatures":[{"sig":"MEYCIQCLjVB/2/1TFDVtaUmZHUOMfYDdHxVLRlN9n5bZZoZHOQIhAL2GGh79ex6bt0zJpXRFinB1Y6Qiy3BPyNz/JAbAosgi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8958947},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"96a999ac5a7179c8107335865b0ba0351dc8bbac","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.6.2","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.5_1772012602202_0.347321500249953","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"drizzle-cube","version":"0.4.7","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.7","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"37c1037236e6b431d340cc4190881cc0740692f6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.7.tgz","fileCount":428,"integrity":"sha512-Ucuky6MBNw3JJZSGEcN/07BrMDcTogliVmGlFwr1kcNSsKGqR8cQ1XbqP/KKWM29QieF7RbaFOjVbT39RP6SQg==","signatures":[{"sig":"MEYCIQDiA44vb4IkBTqQ9u+nPZtTWMY7eMAcvEnakwacTzDnTAIhAKaGAusKDMfvOtEWt4Xz0AQRkiqhoiU+Ecie4/biZpi6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9449967},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7408ce64c07093080f7b7ca114f38fb8c7fae0e5","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^26.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^9.34.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^9.34.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^6.0.2","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^6.0.3","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.7_1772089662401_0.015272879818996943","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"drizzle-cube","version":"0.4.8","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.8","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"bdce3bc44bb937f342ed3f19afa519b28e96f703","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.8.tgz","fileCount":432,"integrity":"sha512-K3oJZzeeUo+Ohv/t7iI6TRpBguNuKqtwIwsQHAO4/DBFNQ1Fx/vr/gymvlma/rmXpqeVfF2mtl4z68JoCGrA4Q==","signatures":[{"sig":"MEQCIHvRQinb0D7kHD0IH7ZmTprchSoIJAvAYtdgpzgXkyOsAiBNRKmMTwC+jWMFuf0A5QbPLb3EwIkn/IIrssG0Kw/CLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9643973},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c707d004a83bc1f270454215cac88565336bed44","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.8_1772525869295_0.472587042155199","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"drizzle-cube","version":"0.4.9","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.9","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e1aa269e4de8925b6dd6547c1bb4cdefc5ad03f6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.9.tgz","fileCount":432,"integrity":"sha512-bnZfTJwwbfr42iFQbPmQSBejvoFV4elvAy1HjhJLroWTrzBhuMkxaGKKVs1Zxy7MNi4FTtMXYteJcniHhv1BvQ==","signatures":[{"sig":"MEUCIQD0/25pKpTzOdzWJdnV7PI28awWj8JpfQ92Qt9L1TlZKQIgaGLdQ1xAN43kjHD0E06Cxz+luwb0Wk2aNBFo8Mdzt98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9666258},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"74f2102e05a228fbdf3997f3ae4c6fe56f4cb1e4","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.9_1772538395322_0.5590019865567912","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"drizzle-cube","version":"0.4.10","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.10","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"777bbe23c92f8b09e89db520e6b517940da027b4","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.10.tgz","fileCount":432,"integrity":"sha512-kIEyo7RLZuGp07LU0F+nTxX64hNplf4sGfAqMTl9FS0J21cOd5Jh3uaNDJjKaeswjRGXnvKiuZU4wVqJHdZmKQ==","signatures":[{"sig":"MEYCIQDwIfs07ZKpL2kaZfc0TOzlPFU+Ug4BXZqOJ1zmyG06UwIhAKH+tFTj7uLCo+bcGmrGA3s7fDET6NBD/5/WuxaWkEjU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9676449},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"64903697badf5172fe6945cd6fcbac93ff2eda04","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.10_1772549847939_0.5792981495127143","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"drizzle-cube","version":"0.4.11","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.11","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"8deb764643e445df50684e9782bfccf33fd15ece","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.11.tgz","fileCount":432,"integrity":"sha512-Q3QEE601atorW3Lct5vRO8E0PV0gN5l22WZxTTRg1EdglVK3ScA1IoAP/16HxAlajrtD9asTQ6Ql3Gk2IbPMYg==","signatures":[{"sig":"MEUCIE0Jm3/jBzJQHvv9Obs0GEA25YR1oCoOADlIbWDwMS6pAiEAqKSTENvjFAbF3tHQRuHIECc+7/ge0mehDDKzxtYpbfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9691229},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"35a7d24175d2462fb9103fa9f855f23d33e67e0f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.11_1772553146289_0.6019959225130875","host":"s3://npm-registry-packages-npm-production"}},"0.4.13":{"name":"drizzle-cube","version":"0.4.13","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.13","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"88e85e50405efd243a69f8a8322b8a610ad4c6f1","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.13.tgz","fileCount":432,"integrity":"sha512-y/njjrcNyd7GKw89sXCeQ9lk1Bg4oD/Re7XoHjBoZhInD3ZD18kalM10/VV4T2WhkDBpmH6fF4SO+jbxAdWJdg==","signatures":[{"sig":"MEUCIQCMmctER+6jEl8vuXjGHMndsYBku6sp9uTs7+ukf5IF3wIgPVIyvXIVxhtEBwFly4JM6KdZ60IiF+oq4ETifQfjxk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9692998},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3c85fef465992d8f7fd901b2e65fdb2f6d3cd288","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.13_1772558422438_0.2786997057275846","host":"s3://npm-registry-packages-npm-production"}},"0.4.14":{"name":"drizzle-cube","version":"0.4.14","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.14","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"59b258414331f0613986ce9ddbfb5c481e2027bf","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.14.tgz","fileCount":456,"integrity":"sha512-r81t6u9nyM+TDYErilbE01HVZYxX1t/Mi/o36kXCMR7m6GSBnZMOFTSLrUanl2HEf3sDfaMYPWbVfgUyb4IDpQ==","signatures":[{"sig":"MEQCIE+1c14dFOx/wooMlol7SUv5WzNLTIVKuInYaVsq8caSAiAPL9SPuJmBy8y/t4VKdNkwN+EHjQc+wxGb2A5uTZ6oWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9946085},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8bbed0dd75dd0320dc1cd786f868da2f7f11fc12","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.14_1772601279337_0.36769462741830017","host":"s3://npm-registry-packages-npm-production"}},"0.4.15":{"name":"drizzle-cube","version":"0.4.15","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.15","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a0dc5a83959d49c1e8753585bb0389476c684562","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.15.tgz","fileCount":456,"integrity":"sha512-wHshpE1xAU+hhCfFw3QBkB2TK0o5YdLWpRne+/Xc4xE40UHVOpkiLKXa5F39K5u+r1vX6R1/VMwqiFgd/vl8FQ==","signatures":[{"sig":"MEUCIQCbK5zBm7YaR9L4+zOxffiGSz2r60/4lnwxklL/e4kBPQIgCujMNmTJTyJ8QfIDEYSvbmmvicMZBnWBUg6sZqrbAuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9946311},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b6114d281bc1d13371f701463edcdda61067b618","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.15_1772604183424_0.7834406696913394","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"drizzle-cube","version":"0.4.16","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.16","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"31df280bd9e06cf1ccd45ac5f4521d67fb92a229","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.16.tgz","fileCount":456,"integrity":"sha512-uM5LNlauGbY7to7mEJ/Od2LUQ4Ji1dFmgWKAYNjAnlASe4djypRz7ht1MdxhZvSIPscakYO2ywlWmIWN8uWb9A==","signatures":[{"sig":"MEUCIQDQTmQba601lypBrOMNCkRpqAhnqoBIfWLrDqGos8J9kgIgTv52seu8Zz6Y1nWq2QiCNWltOjdVltcqIDHXhGw2IjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9949309},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b1163e5f64851a55e558be3ee2e698d825c41375","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.16_1772608614320_0.22110919056541367","host":"s3://npm-registry-packages-npm-production"}},"0.4.17":{"name":"drizzle-cube","version":"0.4.17","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.17","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4ea8cc20287bcddf166bde95b98bf46a2946adbb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.17.tgz","fileCount":456,"integrity":"sha512-LYKdKmkQUF7H7woK45tk0KvBADxnu/WC66Z5X7ay2LZwa43UcduApGFj8qchDWwHmTEo8PVDkqF+v6Hb+e/8GA==","signatures":[{"sig":"MEQCIAvJERjkIm8szcqUhPDl6t46o9nI9J5PAVYmSjGXYgRdAiA4ocUvyiVFHJLdr9NTmt3Gl2Q66EZhkKLpGr849n0OIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9966902},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"2ee4edfc4aebb57a1e0d1afc19f07f0182b491bd","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.17_1772621795243_0.5823996459830851","host":"s3://npm-registry-packages-npm-production"}},"0.4.18":{"name":"drizzle-cube","version":"0.4.18","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.18","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"171d0e62b1e2a989fda90be5aeaefc226e8601aa","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.18.tgz","fileCount":456,"integrity":"sha512-ezDbLMNOMfdpsQ/wmTj35ELvrjZdmaIHc7qjeqJnBvyIt0siwacPXaQy310inLLCXpOsofKcjg8aI5YHqsdplA==","signatures":[{"sig":"MEQCIGShysG+H4URO/E5TxLElyGd0/M/cojmI55xNO2DTTq8AiAZUTgnBD2y+7HUuDKZcMiJ8cm3gbapraJwnEznifFxFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9972968},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f6d3325e6369e795c265a54e3662e070fa62d883","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.18_1772623762468_0.3185073977078947","host":"s3://npm-registry-packages-npm-production"}},"0.4.19":{"name":"drizzle-cube","version":"0.4.19","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.19","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"3ed347fc6e66364f7beb89020352b6502b9b39f9","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.19.tgz","fileCount":456,"integrity":"sha512-JW7aDO58JLca085eDCDclm0DCWSZQ0692ScJCDeTcveRfdp9V+BFiF1Tfw7IxBZre+3L3vcbMoTbPckEuzsDLQ==","signatures":[{"sig":"MEUCIQC8Rq4xR62nXFlWxl0ICjASCWFNb3rk4dbnhxBZ+DacSQIgMGGsDe3eVLTrLl3YGYaBIemA5XqQgbEksnXE41k47lU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9973650},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"2310cee36b97efab487559eb14259207db5bf455","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.19_1772626772408_0.7193730482967022","host":"s3://npm-registry-packages-npm-production"}},"0.4.20":{"name":"drizzle-cube","version":"0.4.20","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.20","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"ea203cc2b5bc74717d0ca8a2ca26685ef59c738f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.20.tgz","fileCount":456,"integrity":"sha512-X1qRdFOXDtwRLSAycFFzdn3WQJs2T1Byyvg1WDKplUc5fG/qnWqvvsSHfXBWbTO29bFA/AXdeo40kOtx6zj5fg==","signatures":[{"sig":"MEQCIF8rO0L6r7Q5TjajglXvGU2faxfzs+Mn5FuxmAfXElGNAiApAeb5MnnWJxT1FRpgqw/2Cy9fMA8T2O4zA66IvvSkdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9975031},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"04f9472a95a42894e4ae45fcbdca79ec7f481a7a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.8.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.13.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.20_1772640575650_0.6517514167346297","host":"s3://npm-registry-packages-npm-production"}},"0.4.21":{"name":"drizzle-cube","version":"0.4.21","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.21","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"19eae15bb879c17a49535f83d5c36e1b38537ec6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.21.tgz","fileCount":476,"integrity":"sha512-pUng7+ks23VLoNpxZ9mqZHP7dX2iURDBJCN6cS3YAU7f9wdyNLxBvHaTzCR3XYijuL1JdrWmP/+iwnEDWgnxbA==","signatures":[{"sig":"MEUCIQCT1Pd3A05B2eG+uvt2xOnVwjZNVvs7q/ci9dvKUM3XwQIgWO5PKwTN7UK+oAOIzzGe6xjiWlVOTehbPM/ZVIqGUUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10709945},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"403c448d4d3a9f68efcca1802c7e37d2d1f32ced","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.21_1772694146976_0.21931102818591874","host":"s3://npm-registry-packages-npm-production"}},"0.4.22":{"name":"drizzle-cube","version":"0.4.22","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.22","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"58fe055515ca8baa5d3558c3f7902a13594328af","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.22.tgz","fileCount":479,"integrity":"sha512-iYDoGiAApLmF1zXX8ZOSlNyol1Q90WHUE3p2PVa3HD6RCHwVTz72xSmees+dhEbXoUUPbUdRQtcZoMHrN1PR0g==","signatures":[{"sig":"MEYCIQCdidPJa0OLL+vSKIRhV90HrV3tPmNK3STBbhchasvujgIhAO/jQZeIwNi8B4rwDxzVLItAkP6aiJEGR6en9H359HmK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10731424},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fd91b5926d33908287b4b1297c82b363853a953a","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.22_1772696182678_0.08555082180455686","host":"s3://npm-registry-packages-npm-production"}},"0.4.23":{"name":"drizzle-cube","version":"0.4.23","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.23","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"98cdecea946296c08fcd1191cc3a6698999e9663","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.23.tgz","fileCount":479,"integrity":"sha512-xOt+y/LCXQ8pHIMPmWe4aL/b7b1J8FxoEDVG7jBGcezK+/J/XVnBvngbmIzECfz9G1q5TO0fq7JhAnWQJGq/7A==","signatures":[{"sig":"MEYCIQC5XT/kw/ZH25kxna6azrWNe8PO68a6M9BLuzPE+T/SjQIhALFOz1486u1UC+r973NgmcvMdOSCREP1bEDdgyHeaLUI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10732516},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"552e82ea09011a81ab2d28b50016de28b92079ff","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.23_1772723235103_0.050234069995459096","host":"s3://npm-registry-packages-npm-production"}},"0.4.24":{"name":"drizzle-cube","version":"0.4.24","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.24","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f15407087315e66c65385678fd086c33211b8215","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.24.tgz","fileCount":479,"integrity":"sha512-bpp+lZl9r0zTzFBwE9MfnqowmZwTXBD0VA/W/JG7IQYRv3wi6ExNB9XHYeVvQ5ji3SutffFbRTX570bab5x6bw==","signatures":[{"sig":"MEUCIQCAjXp5H0lrvOqaj1zaXlmurPryLl+WLe4ArzK1IfYLnQIgOET4ppfTQoMlE/3NQxYz9denc6WBXghc0zkroGR3zNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10735109},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"41e3a2f89c72b60291eb74d51c6b8900e4251ad7","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.24_1772776221584_0.24275719248935856","host":"s3://npm-registry-packages-npm-production"}},"0.4.25":{"name":"drizzle-cube","version":"0.4.25","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.25","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"72c05547cb1c9453b4ff159b2ff2b6788be9afbb","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.25.tgz","fileCount":479,"integrity":"sha512-pgtDnR5skDET0l7GlBexgfmJYt6+kqiln9bVHHnmZduZu6+e3Cfcn1Y+ZVtGJcINsaRY7IMDHcvXZ/sEX8lCNw==","signatures":[{"sig":"MEYCIQDKA8P1KH0QX54IvEq7GXe9e5lZiLbxbL0tlJGPyx313wIhAO/cIkKcAgW+HeIUAcgI0NsTCY2sbddPKxO+Wi8hUstL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10736071},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"3fd66f13b6fb78940af16c8fcc1ff30f9289f85c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.25_1772786168129_0.584915287346103","host":"s3://npm-registry-packages-npm-production"}},"0.4.26":{"name":"drizzle-cube","version":"0.4.26","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.26","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f707ce245826a4429e6c100db1a552ec8d07b9e5","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.26.tgz","fileCount":486,"integrity":"sha512-5atHM6KaounQnJZWVn/BWVBuXW72SwNH6Ap/dMZMX5/iC5Bo2FCEjBPSBs1EoHNaMmHwtmrKLhsgnbSrlYSeiQ==","signatures":[{"sig":"MEYCIQCwiInm7iRatPDmSmtm+3IBh6cyyd2+L5YySJU2Fm/k5QIhAPpFIjI29pzeoFAIdko2w0ya0fZ2slIZw/yaS3b974I3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10854440},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"4be63f40de25c84c3c81652b8239ed062431c287","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.26_1773155026994_0.6988999304756345","host":"s3://npm-registry-packages-npm-production"}},"0.4.27":{"name":"drizzle-cube","version":"0.4.27","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.27","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"9e0734fe4b87d7c2ee61e20520a1d1c0463a225b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.27.tgz","fileCount":487,"integrity":"sha512-NtPSlLYKP1/n1K/X8ZaSPVNcXaAzwlmbwbUvtsQzFshDIv/GvQMea3cYca2LWabk7RUR1lP8StlK8gvsR5aBSQ==","signatures":[{"sig":"MEYCIQCqUk8wa1do/iKbhB5t02MUIcA9DLkv21Hjv7kT6i9CfAIhAOJC6KBzamOxsrfs+CZIMXVoiMbmN4DQFLfaawH73Y+m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10858426},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"ebaa4a92adad98793e3c45588e8155eae973134c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.27_1773156884348_0.5886296017724102","host":"s3://npm-registry-packages-npm-production"}},"0.4.28":{"name":"drizzle-cube","version":"0.4.28","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.28","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"7d23c51056e19c77437d8da3c21458b478514773","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.28.tgz","fileCount":488,"integrity":"sha512-/u5B1k8eCgbxKpdy05j8d0zmaHo2GOPCAgiODuCjXC9pQSyH6JP4V+1H+0dnhOoMMfLi0yE9jcdyWAmRJUVxDQ==","signatures":[{"sig":"MEYCIQCKLuwx8sYy2kW3GNr1zKbO5ovs9KLD14owIIvf31uKaQIhAMqPch8vM8BL1U0qzlWUK5q+hrd+tIjQLbw4Zy9/CouG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10897997},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"5e2c6a9e1d919a3f5d9cbf49f8d98b6274921a8c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.28_1773200654014_0.48258497097147934","host":"s3://npm-registry-packages-npm-production"}},"0.4.29":{"name":"drizzle-cube","version":"0.4.29","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.29","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f220d40975938222f907512f9683c13dfc8c8002","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.29.tgz","fileCount":488,"integrity":"sha512-AblhdZ3rWiXzkjUWYMpTr6emdS0CxDp87UZWeEUxysGe6KxuwiYCrSRkIil7oqfqd89jW8rFyAO/ZufiB+6Fgg==","signatures":[{"sig":"MEQCIA4zVLyWOX7F1A2QTrjOYTbMu/C0HNMaGc3mmbNAIZdpAiBa3X5ABqp+rnfox3xfqEGa+4BbNJS1jDfGjGGYbLVHCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10903788},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"098a4ea8e7c5205a2529a5ef997a13ac386bbc82","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^7.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^5.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.29_1773205875470_0.7927614352899544","host":"s3://npm-registry-packages-npm-production"}},"0.4.30":{"name":"drizzle-cube","version":"0.4.30","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.30","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"81877050d1fefc800e01e3dcc1999b15dc1a478e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.30.tgz","fileCount":487,"integrity":"sha512-l4M52JrlNxV9CLzni9+Bn8b702UJ+ZHazPYf4qsNr3pc6GOA9QAOkqnqXitmBgTqQAPycSSvs9GiJd7CN8XtEg==","signatures":[{"sig":"MEUCIQCDjDbvL5BSaKIySjOqQAYpyST1+ro3/qT+S7vs3cWHQgIgbvLBJmnG9pQpKTiIP4vufVM4/V2ldxYRXjWyzacysDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9636120},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fd361ec0cc9b66f86be0bb1b36b385a01d8f50f1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","@anthropic-ai/sdk":"^0.78.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"@duckdb/node-api":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.30_1773378450228_0.6938785821932687","host":"s3://npm-registry-packages-npm-production"}},"0.4.31":{"name":"drizzle-cube","version":"0.4.31","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.31","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"779443070869929c9fa0bb3ead9945321c83399e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.31.tgz","fileCount":487,"integrity":"sha512-N3HY0PCXzlahW6psmRtk4gaq3BcEYI+koHFePWJZsB6V3R0Fcuxtrfa8iy5CFGzWMsx/nK8UOkYWioKDtnV1JQ==","signatures":[{"sig":"MEQCIBv1n911j1Eiy8G7a5l4EhRbfY2ME4VfkjxgoyZjUhOBAiB9JlxsPgh7xuPgtKs1qAQ6lMZssPfMOyPREEa4sWz2HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9681673},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f738d5ff44f63ccb72f9b288ea44752334f7e751","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.79.0","@hono/node-server":"^1.19.0","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.31_1773734355372_0.8809768288752933","host":"s3://npm-registry-packages-npm-production"}},"0.4.32":{"name":"drizzle-cube","version":"0.4.32","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.32","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"4e7fbd6882c0ee7a33d4ba9f6e62b3aa66889df6","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.32.tgz","fileCount":487,"integrity":"sha512-ODY6weTOMbrEQb1bxNwRS+WjG0eji7mbBdoVr3xts0j7uAUr3zqi4CCBYYjKrpn0kk2XgIPvVMwzrj7Dy7IwZQ==","signatures":[{"sig":"MEUCIGqSxF+s5Ns4Qd3Bl0LFy6P0n6mOOpdGRM/tvtW0SfSIAiEAqaSswiMGkYwyCk+07sTF0nolq2gzMPmPusd4VTYD4GM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9722407},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"652ccc34188513f6d25a076c7bb0c4adccf6f9a1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.79.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.12","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.32_1773812789865_0.37550016617022575","host":"s3://npm-registry-packages-npm-production"}},"0.4.33":{"name":"drizzle-cube","version":"0.4.33","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.33","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"e186a0eac5b92d798f50a9f549dcc317ab909d2d","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.33.tgz","fileCount":487,"integrity":"sha512-3yn1rAnCYDWkp+p4WSzJvEugidfxKaMdj3Xodre2ciWClkKnfrhONV1e6VdH2gWMTMEwRxHP9Fq3dLUtnRq/wA==","signatures":[{"sig":"MEQCIAuJ+ELLBEkVExNl0e3ZaiApy70EJ/MG569NwkrOv6CbAiBq+g09nl9J6vnKm2p8YRpQgMedazCiW6SPyBl/EREYCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9722407},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b6584fc08e50070d9cb31cf140059e9027be772e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.79.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.33_1773818505158_0.7871015633073908","host":"s3://npm-registry-packages-npm-production"}},"0.4.34":{"name":"drizzle-cube","version":"0.4.34","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.34","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"147055ac9298ed85f15bd3f70d60b2c81ab27e3e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.34.tgz","fileCount":487,"integrity":"sha512-GD9HTryS4Kz5S/KoKk2+0pn8ZIpH2f3VUvcYusgIn2ADcMEZ8euF9K5LqwfZarOsRW2Gafoq6cJH9ZBzCyH/HQ==","signatures":[{"sig":"MEQCIHyU6UeyoadErQzWNBi+zeUciiQ6hmw6gp2lYxqSKcEHAiBCQ4kWyOOtAHjxI8ofPQDOIw1OzshXWuAob0/fUw40Jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9722446},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"6a30cc193419209a381f36bcede66d67d41422ac","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^28.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.79.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.34_1773824515571_0.35403874125127044","host":"s3://npm-registry-packages-npm-production"}},"0.4.35":{"name":"drizzle-cube","version":"0.4.35","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.35","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"90500c50ec178650c5a4f68d0f7b3b56a753cb05","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.35.tgz","fileCount":487,"integrity":"sha512-vN5AZ2ZoKyRAu2StAhVfm1FSTnXHdet4qaPGhnoslYXbAC9PNsz47/M/AG6pAwaD0Q9AWJvZPR3RKtyKNovMPw==","signatures":[{"sig":"MEUCIQCr0j5ZbVDxDDAILVXG6+yXqkTb51l1wdZww7YXzJYRHgIgMURQnpTq87PZUIey0EfBsrys7Z/ys7LJZkSOFLKg55E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9729094},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"9ee3ca20a9c7e53d91d98c8166c0800d5c741b20","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.35_1774063672400_0.669856910153972","host":"s3://npm-registry-packages-npm-production"}},"0.4.36":{"name":"drizzle-cube","version":"0.4.36","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.36","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"1cb3d2e5edd4d935275e12c483851c42ddb0060f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.36.tgz","fileCount":487,"integrity":"sha512-7pZrE9zsQzGVe+3T/FRqLLnEKVepiM1eXG4xeX7KmHLbVdhl81E+nal39hCmuZo0xTClgg+ee3rfwGuzEn80FQ==","signatures":[{"sig":"MEUCIQC2xKOFgXtplPBux/KnzbGNeLCfBgx4U4eZ5xehxl4V3QIgNGcfVOsb6v4YVgEfNXN1VNlK3lj1up87lZsFRAneZ6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9729276},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"4cbd7e68a872e81ab9980e3aa57df4e96a9ef248","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.36_1774081745641_0.3163603874771266","host":"s3://npm-registry-packages-npm-production"}},"0.4.37":{"name":"drizzle-cube","version":"0.4.37","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.37","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"3e5b972412cf54223baa40383201fafb0d278bc2","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.37.tgz","fileCount":493,"integrity":"sha512-7z0dF3GbYqb76HeCh/TVV/NVnb3DAM2R/X/Nxl8cwIXHNELkLar92AwDb0r9igG9DxyS3gqgGiObS59KUwF0nw==","signatures":[{"sig":"MEUCIEYdGq6YpYLKWt7roJj12zhQ5Ut+Z9E/0sgbX4BDMS4iAiEA+M2t7cT00lu+Mv5AmN6UG7AvjgBpS5LAYCi74f9jU2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9821769},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"d04686df1a46b0db40bffb0b90b670b737b5c893","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.37_1774159987911_0.46569337428161584","host":"s3://npm-registry-packages-npm-production"}},"0.4.38":{"name":"drizzle-cube","version":"0.4.38","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.38","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d57993cc9abe1dca4e46422ba7917ef426e98c1e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.38.tgz","fileCount":494,"integrity":"sha512-nVaPv3Ej0QoL0adGwrGxF8XvMl/N1YjXzRqdZ3i8XLKCvBxR+ayPsaFngVfJTvCeccU8nS9AD4KA/1f3npV3mA==","signatures":[{"sig":"MEUCIB9m5CJNiskVeSOvRH7yN00CLtc++Ig/xe93dg/dp2OMAiEAtZBr3sV/4e/tlTyRw8F0BDCyX4ReDEycUUtzrkJxSjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9835648},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"387d133e1e39d2a743412d8978e57f54923f4fc4","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.38_1774162630822_0.38566699527587156","host":"s3://npm-registry-packages-npm-production"}},"0.4.39":{"name":"drizzle-cube","version":"0.4.39","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.39","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"f363771530ba9fb39b3a3ff5dae9b7402f40edce","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.39.tgz","fileCount":494,"integrity":"sha512-d7chi0OxvZexma1EDriiiHz+2kQ2WJ0LeDegQrGrl4Ff++qS7klPv010q244E3PySz2lH1APC1jVdjWyKHpupA==","signatures":[{"sig":"MEUCIQCdUzK5JWC3PgZFmhhfOqhtqqjj3Bv27BxK8Y18uoW6oQIgR+JQjxudWvxWzCMfFFR+2QbY+tQFh8ZmAqe6leuz1g8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9836031},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e56316d8449837515dedb1b656c80b372b38745e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.39_1774164041575_0.7701335084477725","host":"s3://npm-registry-packages-npm-production"}},"0.4.40":{"name":"drizzle-cube","version":"0.4.40","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.40","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"a851ae16ddafb780e1d554fc1d149345d549017f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.40.tgz","fileCount":494,"integrity":"sha512-7iCjXniUIk6kRD/a3a94DbAJ+l8dK2WoWSQmirhaBTDF7umInPYXEfu+dFWeJHbKbF4KHVC2Bht9RXl6XVrWiw==","signatures":[{"sig":"MEUCIQCcdZJFff2nDCuN7ZI6RWvKDOIo7hzWotPKh2vR8SLlIAIgBxPnnMDu/JVA1s20RM1zejwD3uY3MyqKXAT85V0ZkVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9836121},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"220add90660ecbd22bb4323bac33624a0881be1d","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.40_1774164804813_0.8336754441590306","host":"s3://npm-registry-packages-npm-production"}},"0.4.41":{"name":"drizzle-cube","version":"0.4.41","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.41","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"a9f708897d76c9b3f0259e709a347a0b8b6beb76","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.41.tgz","fileCount":488,"integrity":"sha512-HoeLtPLaE4VT9SlPvW4W74YhzAVDDuNO7sYHmOCPiR+LqC68UTstsqlWUqMDFeCvQj0fcmNSEtqRN7LO0oOdBA==","signatures":[{"sig":"MEYCIQDf3+cI1KixqMkogC3Vh+TUQd1VAIvPptMKaZ2MQVxS3QIhANOost0vM+lE3g+8C/6Kk51mYIZLKwq3iAgYR6qyg2Bb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9873401},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"c676f8514a90b127adc5937f17700b168f724a95","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.41_1774169230833_0.7848015561612836","host":"s3://npm-registry-packages-npm-production"}},"0.4.42":{"name":"drizzle-cube","version":"0.4.42","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.42","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"2adf35725b4b0ac91c4ef31472bcfe889da4e6f0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.42.tgz","fileCount":490,"integrity":"sha512-AkuaYoZEaUzf6ByP+Cyn8cbeFB4LVXMPX4XFJ4OUjAlcyb4Fr5AGVb4ofMgBhUiXiQGfnAKj9SrvPXoZhZ6k9w==","signatures":[{"sig":"MEMCIDBY/HwHhXt2FCjvCBN+OHW1MGUM+VZa4gvOfUzi74K3Ah8ruo5PjtBOcI/Crc70UA45PUJDCjDZfOrtHVvgy/HE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9875622},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"0699cb5345b869351621f6efca901c7e4eaf3524","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.42_1774191097374_0.823756517385893","host":"s3://npm-registry-packages-npm-production"}},"0.4.43":{"name":"drizzle-cube","version":"0.4.43","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.43","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"178ddb6f77169c0e8ce536fe27fc4e9ba2d5e17b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.43.tgz","fileCount":498,"integrity":"sha512-2ML9hzykgJe6KfnwBWdDEGT9osUrzg1nmfKQRfIb3a6l2hPUvX6RbVyEtpDLy2XsmMoEXykOEHvsAHFit39ggw==","signatures":[{"sig":"MEYCIQCEt+p41alvi93iEzmBSO0nhq2D0x3la01v/hfkLW4YzgIhAP51l0rfVBuEIw96qjlU9MmWef0egitjuMIYIFMecXaV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13176248},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"1e23efb4ac796acaddfea2e23a04bfc69d3f580b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.43_1774687726637_0.0689946690301757","host":"s3://npm-registry-packages-npm-production"}},"0.4.44":{"name":"drizzle-cube","version":"0.4.44","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.44","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"6d9558da42b1546c8234765d00b16363a011b91c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.44.tgz","fileCount":503,"integrity":"sha512-oIynS3OzOe38gJ5V63mcXlJPoGOP9gWchkkbGYgnPRdL4J1amKPLGLK0Rx2BkwocYA7MmoBuRPbQJzTqvjVUxg==","signatures":[{"sig":"MEUCIQDHX71SwoQ1oni3NyxrPPT2SOC8fagPILO2pxwyBLgivQIgXValB2H84i0IHIzw4LF2uAXq9vEasROqDbmS6OOHjyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13185519},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"0477bc6d5aa6806bd30099522f80ec91ce76fc14","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","react-intersection-observer":"^10.0.0"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.44_1774752103089_0.0732499013861394","host":"s3://npm-registry-packages-npm-production"}},"0.4.45":{"name":"drizzle-cube","version":"0.4.45","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.45","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"68dacf6ccb8e07a65e39f5b4a900747f57d5430f","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.45.tgz","fileCount":504,"integrity":"sha512-1Gi7YByn90BLsiAGX+E8cdwGxdF1ZrKi15tfM+cLqGnHD287o4k+9IxE5tlkbLkYQFyqaJuCHAJP3HXA/iwkuA==","signatures":[{"sig":"MEUCIQDsX4Pqk58cf8qzkrJoHhLwLkYrCIVUyX3Sna4beWxHIwIgVmBQamJ5u8br2TbK49o8sjqY+89squUhgd1tSzrPJrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13906762},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b0f90366f654939ccfd75aeae3ebfc336ff276c9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.45_1774757473314_0.3908007085550933","host":"s3://npm-registry-packages-npm-production"}},"0.4.46":{"name":"drizzle-cube","version":"0.4.46","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.46","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"291e3dd667f02f4ec090ed1be524353d2c7ddbf8","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.46.tgz","fileCount":505,"integrity":"sha512-l2HvV3vVxdc0WTP3GuSTtwTDi+uIdEbpUGsc0ZdszrnnVBEBgw4K2Gd4iInrldzHZfh+QYm9c+H7/zAsQdakyQ==","signatures":[{"sig":"MEYCIQDUe9H4nmldycDTV4H3kRG5Z5LvB5hmwF8aPxs9xn11wQIhAPJAQEeF3l23Wn2pIEf+UQCbZeIPQ3eGJL/2m/nTBUNQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15333810},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"599a882d9cb5237380ddafd792b9469fb876ebd8","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.46_1774759030744_0.6933660570720404","host":"s3://npm-registry-packages-npm-production"}},"0.4.47":{"name":"drizzle-cube","version":"0.4.47","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.47","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"21972890540484bbd5aafd271ad10b90f26bcfdd","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.47.tgz","fileCount":504,"integrity":"sha512-6cxI79sxtpmBiutwaYHDOkjIlN3poK6m9D/diJpnB4ma83GL+0aa758Af7+ubOEJtjFDGMl5P3bA6GURmZDSug==","signatures":[{"sig":"MEQCIC+PvVPp77ZzQEMScXK9W+a2JgL8Rwu51Z6L2aJAguE4AiAku0JeOIh24LjwpMPMV0C/qE1/e4Y47YGR1lxCNhwSxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15333770},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"e4f33f089b2cfc122824d40d46e3d4b769eac36b","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.47_1774760702209_0.5048940937124144","host":"s3://npm-registry-packages-npm-production"}},"0.4.48":{"name":"drizzle-cube","version":"0.4.48","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.48","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"89cc9c8b897aee8e0581cbad853bd61bcc4fe514","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.48.tgz","fileCount":504,"integrity":"sha512-aiFn3YijCG9Wulc+ZSgaBIV3DUpmU0iicxveCh86P9e95FtAif5KNVequVeWm8vmqF/6MR0M6gCgtapzFPto6w==","signatures":[{"sig":"MEQCIGy9LEp0UREEL3kk8jWS8xioMmgCI1szQ8XCKnHAjQ3KAiBwpi/IinxgjD4IBtJhsgsxe5u2ImwJqOFS0SBp9EXV1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16637768},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8781c6e9fe83583494450370d111dba2832b5367","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.48_1774773765303_0.1695615025312418","host":"s3://npm-registry-packages-npm-production"}},"0.4.49":{"name":"drizzle-cube","version":"0.4.49","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.49","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"51498417be6b88b78b5b16e33775c229d77c326a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.49.tgz","fileCount":504,"integrity":"sha512-Jbq+nU6F6WvzKpjIJwJtE2Ak9+PO2wBzideP2vTvRwn/HxB85A1O+KqnRg/FSCXii7kNQTmC/MvyFsejPeA7Ug==","signatures":[{"sig":"MEYCIQCoqrLV1GVyx6IjRGc7IxmCuc59/A82Lq3ECXG6qYV6twIhALuiWCCiSouxb+O7J/dQnA9qiqG//kKkb1dtVkLtIF/I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16638583},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"1299e8e874a00fab3bda262b8d1000537c783fbe","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.49_1774777445122_0.12834815805673294","host":"s3://npm-registry-packages-npm-production"}},"0.4.50":{"name":"drizzle-cube","version":"0.4.50","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.50","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"711450a4f5b72426791241ddbfc697ff155bdb34","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.50.tgz","fileCount":504,"integrity":"sha512-MSD2G4XDJ4oHrB9ptfkxd+HdZ+3mgRbsl0wA3GNmblwLfILzqXe4P4FUbL1Z1UrfKGvo0pym3DGYETHj1EC9hw==","signatures":[{"sig":"MEUCIQCuCbWXc/StfyGhzIYQvgJ1HibhkRWU5oMPEpvHpygzBAIge9Nz7vt7iwaReu4jWp9xxAfScAjxYC/tHJJQY8LZ3Lo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16619880},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"65a96129449cb7e32773e9d4eaf398e3043c19e3","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.50_1774779907835_0.5760592894205745","host":"s3://npm-registry-packages-npm-production"}},"0.4.51":{"name":"drizzle-cube","version":"0.4.51","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.51","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"3e7aaa8d3768a88197fca64bf8065e5d8b64a848","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.51.tgz","fileCount":504,"integrity":"sha512-u5jJWQzsQf6muu2jU1Ov78NJ42DceVQrKvHUJ0E0oyV+MfIn+mFwry6QegdLLPsmrIZj6MNwYHwXv5TsS/c1hQ==","signatures":[{"sig":"MEUCIQDVZm+zNBSDg042e4cFc37b6AD0iYRr9xfNTSjvph4ftwIgXJsLbYP7GURqpPvkjZiFPGtpxs5RJawktU4BV0zdjvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16619951},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"fc01cf6376f1be96f4b5d7369128437b5502d2a7","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.51_1774782130087_0.2685676676512432","host":"s3://npm-registry-packages-npm-production"}},"0.4.52":{"name":"drizzle-cube","version":"0.4.52","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.52","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"fea37fb28dbbba5b9370011cc8012a5f6883ab19","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.52.tgz","fileCount":504,"integrity":"sha512-D3qo97UbzxsRVIqrPEJgdC4lOjJeUY2VLkvUHCozqZsZ1FwFwtGZzk2NafzC7gMjPRQLfvfrKr/m7SmYs0x9Zg==","signatures":[{"sig":"MEUCIGSDaFn/wwE+kZdOvXmaWPgJXa2aLp8mweizyegupE4qAiEArG8hPUoJapmyz389jwUW7iSlp122ADkDJyY83/s6IsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16620352},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a496bde98b91a278be7969382476a874d7b95634","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.52_1774860736224_0.3971185816343332","host":"s3://npm-registry-packages-npm-production"}},"0.4.53":{"name":"drizzle-cube","version":"0.4.53","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.4.53","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"ee3a166107e98390483e4cbb69d295e40c21a69c","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.4.53.tgz","fileCount":504,"integrity":"sha512-ejnuCGSbk5wNOTUGOl3RcgF113PaiRy6pzAWKUPguIKlh5f6auRvjbLNZzCTIybA+5S2/eGEAybIgmAbL27NYA==","signatures":[{"sig":"MEUCIFXLEptWl6ePHXK+UGuAgc6yb4iOQGy+kHyrMnf6j4MBAiEAiTySsFvHrzvpUVh5JUKeXSp3AYYSFJ3vL3UnAg06coo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.4.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16634673},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"54c45a929e73d41c1dce101e44fdc24690add5c2","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.80.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.4.53_1774862753071_0.07329839961597617","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"drizzle-cube","version":"0.5.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"2266b9d83017d367a01541bf1d1c5c8be53f56f7","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.0.tgz","fileCount":513,"integrity":"sha512-Bgf7JOUPM8GTv8NHF70TYCPUPRgP48L63U3PVU02h13F2ZUDQ4yyOSoAsjMKm5/doheVKJL/XW6Ugd800n0Uug==","signatures":[{"sig":"MEQCICOz7wz+dfljGDVWOSWX+pYDu2x6byq9BVPNOP8pGMEtAiBhcDEcfKsADoJmoPWDaF3+Pf7rBE09wBa91pRyKrTEaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18082402},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7c5242ecb52443e76e55d9d27b4260d2e206209c","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.9.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.81.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.0_1775019424868_0.31185968748383486","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"drizzle-cube","version":"0.5.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"28c66357cb1b6a0c19837145d29e9d8010a61f03","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.1.tgz","fileCount":513,"integrity":"sha512-UZnGnvyqCTNeIWoCFk1M7f2B3wCrP7b3RigKKKmbsHBccsMsDZ8hy2fubnAQFUzMIIYc0noFVR6uyJPG4A0KTA==","signatures":[{"sig":"MEYCIQCZSvDxYEXdt0awdm684Byj16czpyacG04OsK81xDdbugIhAM7yDa7cYTKDGF9f/qxibTw1pkBGmc6FShCAHa3imJ9f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18696720},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"087d25b5fc3edc1f2e2874056c6bcf454e1a03d1","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.11.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.82.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.1_1775494503454_0.31626189568957463","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"drizzle-cube","version":"0.5.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"6657ece7a2fccf9fef8cb13920243b40948b92af","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.3.tgz","fileCount":513,"integrity":"sha512-Z0UlbSMlBZOdOLV4bT8gMeEhovLo91VPH/HLaYaAAW1JmVRmHi38I6xuAEq/wD2fcVCk2zOu30JMzs0Dq64A9w==","signatures":[{"sig":"MEUCIQDJR/lXKbB1E50Y6gQyWVnJW19XOZ+rz3dzep49vJuZ1QIgEO+3LTnN1mvIfhTYSHdJS6YvuwAuabEukd4ZbMsidmI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18722219},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"a12ac49025926366105ea9ad4719db086f6329d9","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.11.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.87.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.3_1775795173570_0.32393744793170387","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"drizzle-cube","version":"0.5.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"260d336cf2edf844f23d8abb29c66a610d5fb4f3","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.4.tgz","fileCount":511,"integrity":"sha512-O6+sLTemuVLXm3Wk6rJUiW7C0SUef9IzkW9wdxD1NVr3RPCUFGYL8OqvE3iakOa4NYxhWeUonD7XDYx1skfSKQ==","signatures":[{"sig":"MEUCIAkGAoAIB9C5emX0dYs7XNNHpBpuf6QEr9lJesod4FjnAiEA77Ghr5LcpKkG1E8mSnrKs4nXD9GPivTNBLQN6xcqchw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18748024},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"92e6194eebad8ca73cc0fd5ba24fe994a0692ed4","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.11.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.87.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.4_1775883046375_0.6553542415490912","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"drizzle-cube","version":"0.5.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"d37363f4a69a95c6377f9ee213a5ed2863cf32aa","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.5.tgz","fileCount":511,"integrity":"sha512-7/0Bl9Z2QoYbcI5yyf5QgLm67x4CYeZ1Oe8HlhHQu0l5jGA85jEEMiQUW+0imRl0aebbc6ZA6IvLvEk/HO9kow==","signatures":[{"sig":"MEUCIFAm5amU5KhM8ugZoFj1CDKiZyCbPcmfVTNqwpST4ptRAiEAgaeJYGWJe+x5za6kZpnhQJ2twnh5pRwvI+T90CUSK6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18786659},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"596b54eff0a75aff3f192ff2bbfa8f66180525ed","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.11.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.14.1","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.88.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.5_1775967310748_0.5086349336031992","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"drizzle-cube","version":"0.5.6","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.6","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"09ddcd504e3a2b2983c7cdab340568ed1f06b680","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.6.tgz","fileCount":506,"integrity":"sha512-M5wpk7IOliLD4grxXrAU7LtC1vvASxRbz2h2GcCDAO8H+f4OnhviPmxHkYRvf291mDJG2wxHjxl7G5hPT9Ye4Q==","signatures":[{"sig":"MEYCIQDPqZtUpeKzwW1irRrIkhnHJn6/nfXIDJKFmBFG8wullQIhAJ1EXFl3h0Dztk0CmxnTB1HmC9OQU3Lh+QiEAx9FEcV7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18799497},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"d108fc1d9ac69c108f416f40a5f0dff6bfa5d233","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.12.1","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.15.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.33.6","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.90.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.6_1776885865032_0.5370940998884373","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"drizzle-cube","version":"0.5.7","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.7","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"8af69f10ee21d2abb1883bb8b23cad0753fc820a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.7.tgz","fileCount":509,"integrity":"sha512-hgvwmg53D4aKl3Pbco45IBVmFNwdV9PUumZ7YkfEUohG78m3Zl7ab/uaNrlK65ye3hH7lNVacQxKthjhjJDERQ==","signatures":[{"sig":"MEQCIAQ4p7p3By0If7gjB37bqhjBM5SU2td3bf2IGx+zyoA+AiA+22qFdD/KqStR88MuIFH8rGjZXN0kbOW8G15JRNlcMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19651922},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"19a4ad6c56c37d62a60f5f590ad5c8ef2b189c13","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^9.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^4.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.100.0","@hono/node-server":"^1.19.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.7_1780117405185_0.44351419205080633","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"drizzle-cube","version":"0.5.8","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.5.8","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"4b7d7a7b2bc941fa16addc44276baf30be5433ea","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.5.8.tgz","fileCount":611,"integrity":"sha512-fAzbdg+5sTX1SCvquhxVNWwEmn/0+5699dMCaIVSGBndsOfszKvV56n69S1vEIEO0NMQSsr4UKnHsn60+hyzuQ==","signatures":[{"sig":"MEUCIQDFTeNdP7WKGOxnd3PgWqZHE9Kqu/WS6y0IAQGZ6reSYgIgfyZhrcDKV6IdWD3HOAbulIHS5CC6oGIuuCyf8LlOIFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.5.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19811999},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"43ca1846c8eae781101824ae84a35162e0becb34","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts'","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.104.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.5.8_1781152422658_0.3327191735863799","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"drizzle-cube","version":"0.6.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"b2e9072e46cdccff7ab1ea2ac8f0c94c8d07fa94","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.0.tgz","fileCount":749,"integrity":"sha512-Ndq78LIAc/qSKn9Uny6OFjoWlbq4FPZlIvd6NAGn/rSd/SHRqbyAu+f5XEsPLWe3Lx36yLvPMeF8V8656e7apA==","signatures":[{"sig":"MEYCIQCDNEb5M0SwB4ISLLx8WO/lMg9iYi/SI+qDmY6ml8mAlgIhAPUMU3UER9zh0D1joMyB9UGiqqlIgNYgKhFI6XA3mMn9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19822322},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"21ef46724144c6753b551c7af1cb77d7eb1eab28","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build","quality:health":"fallow health","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.96.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^3.0.5","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.104.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.0_1781502886467_0.9409796914893178","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"drizzle-cube","version":"0.6.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"539e7d8a01c4cadd3ed62a6a95a02d4158ee46ea","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.1.tgz","fileCount":748,"integrity":"sha512-fMO7zkv5vxOBbxOyiUaCssriSjZa62NbcB6zwpcJFRvctSKNXRk22Q2hPfvnx2f53wVrerWlYTH47b8JOVx19A==","signatures":[{"sig":"MEUCIQDXmLwU8dfzBb0KTTJp5wKbs+hgoj/dH8e4mMlOsDHLfAIgEfWNdCGjqnJHwy5w6uaX3o4TvyQU4qnmEjHA0VbQ4TI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19806253},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./mcp":{"types":"./dist/adapters/mcp-tools.d.ts","import":"./dist/adapters/mcp-tools.js","require":"./dist/adapters/mcp-tools.cjs"},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"types":"./dist/server/index.d.ts","import":"./dist/server/index.js","require":"./dist/server/index.cjs"},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"types":"./dist/adapters/hono/index.d.ts","import":"./dist/adapters/hono/index.js","require":"./dist/adapters/hono/index.cjs"},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"types":"./dist/adapters/types.d.ts","import":"./dist/adapters/types.js","require":"./dist/adapters/types.cjs"},"./adapters/utils":{"types":"./dist/adapters/utils.d.ts","import":"./dist/adapters/utils.js","require":"./dist/adapters/utils.cjs"},"./adapters/nextjs":{"types":"./dist/adapters/nextjs/index.d.ts","import":"./dist/adapters/nextjs/index.js","require":"./dist/adapters/nextjs/index.cjs"},"./adapters/express":{"types":"./dist/adapters/express/index.d.ts","import":"./dist/adapters/express/index.js","require":"./dist/adapters/express/index.cjs"},"./adapters/fastify":{"types":"./dist/adapters/fastify/index.d.ts","import":"./dist/adapters/fastify/index.js","require":"./dist/adapters/fastify/index.cjs"},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"02a894edc117266f435b91472efd8fb4dab979bb","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.96.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.104.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.1_1781583977261_0.20847989015100699","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"drizzle-cube","version":"0.6.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"4365ae95371d4a04e4acb0abb94731d30fe76d71","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.2.tgz","fileCount":1292,"integrity":"sha512-tsSvX2Ef4chttMjslAEVayegca/eLkNiofC+g2jdzJ8TT+Ha7FkHqCXY+cQEbu4sxkwvj0C/pvxb43CtABQCdg==","signatures":[{"sig":"MEUCIBI76zqSYalRf0TdBRaoPSRmE3/fOap5pG6pHEETaUEOAiEAijvbDp7/5fHYA5iL8GUbw1to6pebV9uMpx74mhEqF3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20811217},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"f24c95e80ef6fcbb16e5c619bd407524dee28a42","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.97.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.104.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.2_1781670100294_0.5981809858967917","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"drizzle-cube","version":"0.6.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"63920005231035d41c277976360cfa1733b74a58","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.3.tgz","fileCount":1354,"integrity":"sha512-WRDvx7rFy8ahgQ5PKQwfaG9mMl+W/g9CiW7C9EE7XITI6aEgAwFdypN4hljdbCOlB4Hizs2iuZN7rtvMDw0nKw==","signatures":[{"sig":"MEQCIAG0NLHw20Bz3atWsZPoSh9Ak+wY/XXlskoDyG5VP1M8AiAKG70GhMhDQs+BJ14uurg7NYOf9FJ6MeEQOlOaIQ+PBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20879778},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"7dc21c92af6fd005f0f9ed40d77994f8a9cea6e0","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.99.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.104.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.3_1781845178362_0.8439625530023984","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"drizzle-cube","version":"0.6.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"ca56f4983e3fb278bfdf2112d21a7a95b88ca01e","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.4.tgz","fileCount":1362,"integrity":"sha512-x+kM7PNvnvFzdmRj1jY9j1jKnUdmsotsV2eOgRI29OFXIM9zOsJDIu0/xJYHHKF8AzgTh7XqRmKyOePRZYNg0g==","signatures":[{"sig":"MEYCIQDpC5+/CPk9tLyLLBLOse2WEx3k62owOZ7XGEr35Q02PwIhAK/mYywkicWmZG60LRLZjXltPS7kvcTkokfyj71Ca93J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20890167},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"19ed3d8a4674dd53e012e35124346ae06d69478e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.13.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.16.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.11.1","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.100.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^2.3.4","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.0","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.105.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.4_1781928478339_0.7915191311821832","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"drizzle-cube","version":"0.6.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"d0294ade4fd953cb62ef51a510e346925514d5c0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.5.tgz","fileCount":1369,"integrity":"sha512-BSJlw9uPtjpArRXfmThOcIKW31CH3zY2AkHPVd/SbN42nj6PZSGJES5syhQsGYvy+SY2i4yCvZnOuMHc3HKwhw==","signatures":[{"sig":"MEUCIQCiYIxwXE8NXHIswyXdFVx0uFTD8yMS83E5SnNK2ZMqmQIgO/jsawl2MR4mGpMBlFpNc2A97erJv6ZtQi7tfVVqrvs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21938403},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"b4547d9e82b7b337a8acad7bd1baedc62b091fce","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.16.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.18.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^29.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"2.104.0","mysql2":"^3.14.3","openai":"^6.25.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^12.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.112.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^6.8.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.5_1784623872380_0.6913079568055389","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"drizzle-cube","version":"0.6.6","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.6","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"de87bfb9995fe0b23529280d376dd0337d0b8649","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.6.tgz","fileCount":1369,"integrity":"sha512-gCjh3kG3bHuQNS9nAW8D/OVecB9QnMKXZ+KwpVtl4EqAqAH85aPZAEi1H5f/NqIezZSptl+dg+lRIXeKtdVICQ==","signatures":[{"sig":"MEUCIQDGjWa1xoCqQmtO6KeDmEJtqE7YljH6bBfSMnEh75eEgAIgRfBd1zLsvJz1BwFMSn1go9JKh04jkZNnbR4oFdE227I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22045033},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":"./dist/client/styles.css"},"gitHead":"8e9dd10be7a2cc8c404115daad4147b11d7c92f2","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.16.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.18.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^10.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.10.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"^5.0.0","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.115.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^1.2.95","@types/better-sqlite3":"^7.6.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^1.2.6","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^1.2.5","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.6_1785320544615_0.5142578653703214","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"drizzle-cube","version":"0.6.7","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.6.7","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"b3e584454c30bf3d77d1e62aefdb4bbf6836f84b","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.6.7.tgz","fileCount":1382,"integrity":"sha512-A419oDKeBiC2i2K9U+VtXMwjaKK/2FOXE+04CPjsJ0a79KMgZH+g2zN1yb4IZ+G+KSW4ZdDwPW2TTgnWJShEYg==","signatures":[{"sig":"MEUCIQDZJO5H+Vf98Kmz8whyNyjKT1Jxbb6q3yzjrJ25M58WNwIgHI1StJnLcIdmIWlse+WZAIS8mfjmcNCJl14EcZWyPlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23017912},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"db628abf3921ce4c15abb942b57ac6bb812a6a51","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.20.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.6.7_1788061303149_0.31259039480040207","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"drizzle-cube","version":"0.7.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.7.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"8664ad1cfc27664238372c709b5279338408b0ac","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.7.0.tgz","fileCount":1394,"integrity":"sha512-Pm3NWGiBCJ+PKM9o9GN1olQbNa6lm+y/2BB0H1ibJOo+y54H+vt+VhTuoAJGRwrNOGvTsoKj+izxNkmvAjpuVg==","signatures":[{"sig":"MEUCIFAjcor1g1XhQP/eAavOl+tw64/LJmkfJgoDXNL+tMiPAiEAyZJZxA1iGU4TmqZfRdEIWk0rzMViQ4HL5/+aff0IQpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23180657},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"de5e14231e34e84dc24f45c094bab04c91afedab","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.20.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.7.0_1788073088334_0.7612952693735024","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"drizzle-cube","version":"0.7.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.7.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"e47bd5957480bbbb0faaaece529c7c127c90e3cc","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.7.1.tgz","fileCount":1394,"integrity":"sha512-NFPYzKEoyuzS61QgW73CvVE28dxSq15iBkrF6ApN7jxMfKz2x0+eZGGpZiDiLtH0wFJDAcqQDnakAj4jiRjH9w==","signatures":[{"sig":"MEUCIF0D6j4QZNhQg67zWDHXDu7FwArP3d10OtwIJUyQAlz9AiEA0Ufi1pt1q5gRbYjAP9vjbO9/sLH79BgFE8vxBydGBII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23216088},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"c85b17cb97530122e0f614dbb91c9e007bf8955f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.20.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.7.1_1788077389268_0.5599936692167271","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"drizzle-cube","version":"0.8.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.8.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"c568d2538f65d51db221cd6e29673c75699e1e6a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.8.0.tgz","fileCount":1396,"integrity":"sha512-0TbjBlNXSdPaW6KSaAIuHqYJSNcte1S1xfqotCXObhilSbp7e3DtgMG648FQ6PyqIqhRzEfb87IV8a6Sewzrsw==","signatures":[{"sig":"MEYCIQCWkIfBDx59/emybRiGfkHAJQ66zCN0Nu+uvVwR/bIO9QIhAJfCR3AE+81KYkMnAWtEKXL+xHf8Opq0TLWP2XF0uGZb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23300296},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"9684a1827250a7c15c08282319b39cd2624e96bc","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.21.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.8.0_1788155155251_0.6311898478110596","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"drizzle-cube","version":"0.8.1","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.8.1","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"ac45dc6dc3a645da2c152dffa88997190e487bbe","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.8.1.tgz","fileCount":1418,"integrity":"sha512-L2nlsRjzmkN7UbjPDKhckmj7AGunPQYVKDY1TqyDUwdF0PIopGqKPw0dvLrK6O5Ro7hdOcVQjuIlfzjM9DgcTw==","signatures":[{"sig":"MEYCIQCYADHxj2pXbgOBap9j6HQWNBSBXORazbU2Rt4bpPfUkwIhAKrF6wNadK+NUX0GSDwfiqfkLCI8/eN3MIWrZz3DjMNc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23647718},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"0fe8accf303782bda112f241507f4e121ddd4a1f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.21.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.8.1_1788172939923_0.9131642218606968","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"drizzle-cube","version":"0.8.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.8.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"500fc2450b43a185f2c0c664c94e61b810c49290","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.8.2.tgz","fileCount":1428,"integrity":"sha512-ERwEjvZGJFdK4ZMMGtbiY0TeaZsUol69E9azJ/pbTfkoeTWYoW7MNdbaFgdKXKIW/gI53LEm87z7P130MtRKLw==","signatures":[{"sig":"MEUCIEKI9fcr/cvc3chSlFmlrqOq3M3pK3uakKoAO0tsjb2vAiEA/8nz4vZvfxi2zCmjxvBlIRjl0523218PNe6N37QLyp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23774348},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"c26a8b95a19a4776826cfc2a4b0594bb9c20c194","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.21.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.8.2_1788179627775_0.8253474689516651","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"drizzle-cube","version":"0.8.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.8.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"38aecdf2b265b8f28211ba282e19e2831ae40bd1","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.8.3.tgz","fileCount":1430,"integrity":"sha512-7D66bFqloiSzpN9J8dZm8OvLJxRgGWTPxO4jresNGA34s+kLgvRX3PjhCJHVp0XZkNQHH5qJTFaqHlcKVfIKuQ==","signatures":[{"sig":"MEQCIEO2Ma6skS0n0dSh9qJm8/r69I3ui9/e2URq1wqJKroaAiAZDWRHCcE7zIfUU9DJIulRvuPNgCp25PC2GOYBOtyfOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23799942},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"cf24876671322c93cb8c1cd968a422a3a29dcc72","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.21.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^4.14.1","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.122.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.8.3_1788192594391_0.966823768724639","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"drizzle-cube","version":"0.9.0","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.9.0","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"771fc8d05ca6bae88f810c67d8934e42b32b16f8","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.0.tgz","fileCount":1436,"integrity":"sha512-dQKQYMikNMz9Sypd6/dF2Fw95L34Y8OuYs7OWdczKPj1WPhzodXtMDNoR0oSkjz2vPfXLWk4KEg5SGHqz+oeBw==","signatures":[{"sig":"MEYCIQDnvfUGfkneKVlcwEjN2Dh0sonWEFfcZ54EXx8aDLHtuQIhAL1FTj3NhKZIsD31n0O0gO2PjzQ5hlNY/HCU49ZbkeHd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23870239},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"c22951719f00ce7fed57922278bb2f0831d1d39f","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.17.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.19.0","dependencies":{"zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.22.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.123.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.9.0_1788328198416_0.03603805371244628","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"drizzle-cube","version":"0.9.2","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.9.2","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"31750db38016eaa5a3920c9763990a43f72f76c0","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.2.tgz","fileCount":1450,"integrity":"sha512-vOPc8634au7fBFBz94B1QZbA6KZ6Ov5LhEpxQg3TEiBoUoz1mW8717R2SUBBj1FO8XAakUI+tzS8n4R7lbv/rA==","signatures":[{"sig":"MEUCIAoA7slpy/YFt15aqYG7JSOm5AEdWnaq2CRSmqevreG9AiEAjsGO/pJqLf44VVxJAXyR60Bo1DKXMfwMRylvwzn04Mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24872839},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./mcp-app-html":{"import":{"types":"./dist/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.js"},"require":{"types":"./dist/cjs/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.cjs"}},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"e34755b8d98a726a25c09d72cb821c028a3bd6ff","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.19.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"knap":"^0.4.2","zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.25.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.125.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":"^1.4.3-r.3","@leonardovida-md/drizzle-neo-duckdb":"^1.2.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.9.2_1789197799374_0.7564514405735578","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"drizzle-cube","version":"0.9.3","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.9.3","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"0ef2151bc928e7b82cc40265420ed2175eb01449","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.3.tgz","fileCount":1450,"integrity":"sha512-1EJ7YxJNUeZixl3nrfiTmvmRCrmnTcjjQum2MyyeokILNx0HmtEc9EcUyemjtOhyaKEm4LfAf1exzHSFu2N2DA==","signatures":[{"sig":"MEUCIFmgsyaLNVb1SnWTi2Hhv2GFe7K+7GRhaaCjiojwu1v7AiEApAAGNQF/WhHVb9RkyuMYACToqZ6ecokU9KXjkVD/AcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24878052},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./mcp-app-html":{"import":{"types":"./dist/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.js"},"require":{"types":"./dist/cjs/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.cjs"}},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"265bc63ea375ecd06cece524b71cb4d1f23db62e","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.19.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"knap":"^0.5.0","zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^17.2.3","eslint":"^10.0.0","fallow":"3.25.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.125.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":">=1.4.4-r.1 <1.6.0","@leonardovida-md/drizzle-neo-duckdb":"^1.5.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.9.3_1789387511609_0.9368674196068565","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"drizzle-cube","version":"0.9.4","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.9.4","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"9d8e6ba11d5c887a6aa96ff1b03da9740b97b74a","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.4.tgz","fileCount":1460,"integrity":"sha512-etOhdxN/rPHLmKaZ61LZ7vjtayNB8OTLb/aoVg3ijQHdc5dladZJjo30WjKSKLl773CwVsh9Gwig1+8SYT409Q==","signatures":[{"sig":"MEYCIQCdl1lbAT3Ju4dU5LXPvOqh5tYwt6Gz9H7m2z0z1wExfAIhAKv0x4XVJSAyQriYzmvqHxvbU+NFkMIFCPNeVN3LnKzG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDiErpLBD+O21kQlepgm1w4gP2rWHpqwpKfEQmTXT68DQIhAJWkQ1taXDL+RW7kkku7KiuG2RYu8w+tssv8SInyZdT9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25344538},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./mcp-app-html":{"import":{"types":"./dist/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.js"},"require":{"types":"./dist/cjs/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.cjs"}},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"def641b88d191cb0891e807f998fb489eca0a448","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.19.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"knap":"^0.6.0","zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^18.0.0","eslint":"^10.0.0","fallow":"3.27.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.127.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":">=1.4.4-r.1 <1.6.0","@leonardovida-md/drizzle-neo-duckdb":"^1.5.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.9.4_1789968621748_0.297498002685179","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"drizzle-cube","version":"0.9.5","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","_id":"drizzle-cube@0.9.5","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"homepage":"https://try.drizzle-cube.dev","bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"bin":{"drizzle-cube":"dist/cli/index.cjs"},"dist":{"shasum":"df88e64d14f78107eab415d1635adcd9148fe833","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.5.tgz","fileCount":1460,"integrity":"sha512-0cayIUitoL/ZsUfSMJdYY4WvZCATzrDbRh71noXQ6DQepVQ/TTYQU99MT3vH+bhBOBLmiOQo4meQuJRYuqofCQ==","signatures":[{"sig":"MEMCIGfQ6DEu5Lzta+YLOnsXLp74TVLSSn2asUx64EFrHagNAh9DKsSkmJxYIEfOA3ThLw1XSyZ+aG8CL8yBjbgchIV8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD/CyECKD2Lvg29Y/4xJx/WFrldKjNpZUyoMfvUwz8M7wIgT+upJAbWTzRsmlZAHpO2XhJDVo+pQYjybQOoFSqrMqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25436642},"main":"./dist/server/index.js","type":"module","types":"./dist/server/index.d.ts","exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./mcp-app-html":{"import":{"types":"./dist/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.js"},"require":{"types":"./dist/cjs/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.cjs"}},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"265598be5c9b5276cfe5f4aabd3e58480059f2bf","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.19.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"knap":"^0.6.0","zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^18.0.0","eslint":"^10.0.0","fallow":"3.28.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.127.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":">=1.4.4-r.1 <1.6.0","@leonardovida-md/drizzle-neo-duckdb":"^1.5.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cube_0.9.5_1790156073568_0.7733600335468491","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"_id":"drizzle-cube@0.9.6","bin":{"drizzle-cube":"dist/cli/index.cjs"},"bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"dist":{"shasum":"d4c0b25d4319361933743d52f6becd5141affbff","tarball":"https://registry.npmjs.org/drizzle-cube/-/drizzle-cube-0.9.6.tgz","fileCount":1460,"integrity":"sha512-ONQnR+mE5wJM2kdjvNys6er2u5HiqL34cLSp29O6JGtlniUeSlg4aPnbVjHdPPuwZa9h2LrggLz2JznlavxT7Q==","signatures":[{"sig":"MEYCIQDdtNF5XYswXGA6uR0Bd+BYER/fbRI0CQdRoplgpg+1YwIhAISyvcZKKg6Zrbo2NlJL3dVxw4Aqx7do++TLkWFqhbzK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG7KMjlY/MMqXBeVe4NHy/p8W0UqDs4CFZvUA5FvWI/vAiAZiy+BhAAWn3Zf8Cmxl4CWtnEy/qUK1m1hx1J+1jg/Hg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/drizzle-cube@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25438241},"main":"./dist/server/index.js","name":"drizzle-cube","type":"module","types":"./dist/server/index.d.ts","author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"exports":{".":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./mcp":{"import":{"types":"./dist/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.js"},"require":{"types":"./dist/cjs/adapters/mcp-tools.d.ts","default":"./dist/adapters/mcp-tools.cjs"}},"./client":{"types":"./dist/client/index.d.ts","import":"./dist/client/index.js"},"./server":{"import":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"require":{"types":"./dist/cjs/server/index.d.ts","default":"./dist/server/index.cjs"}},"./client/hooks":{"types":"./dist/client/hooks.d.ts","import":"./dist/client/hooks.js"},"./client/icons":{"types":"./dist/client/icons.d.ts","import":"./dist/client/icons.js"},"./client/utils":{"types":"./dist/client/utils.d.ts","import":"./dist/client/utils.js"},"./mcp-app-html":{"import":{"types":"./dist/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.js"},"require":{"types":"./dist/cjs/adapters/mcp-app-html.d.ts","default":"./dist/adapters/mcp-app-html.cjs"}},"./adapters/core":{"import":{"types":"./dist/adapters/core/index.d.ts","default":"./dist/adapters/core/index.js"},"require":{"types":"./dist/cjs/adapters/core/index.d.ts","default":"./dist/adapters/core/index.cjs"}},"./adapters/hono":{"import":{"types":"./dist/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.js"},"require":{"types":"./dist/cjs/adapters/hono/index.d.ts","default":"./dist/adapters/hono/index.cjs"}},"./client/charts":{"types":"./dist/client/charts.d.ts","import":"./dist/client/charts.js"},"./client/schema":{"types":"./dist/client/schema.d.ts","import":"./dist/client/schema.js"},"./adapters/types":{"import":{"types":"./dist/adapters/types.d.ts","default":"./dist/adapters/types.js"},"require":{"types":"./dist/cjs/adapters/types.d.ts","default":"./dist/adapters/types.cjs"}},"./adapters/utils":{"import":{"types":"./dist/adapters/utils.d.ts","default":"./dist/adapters/utils.js"},"require":{"types":"./dist/cjs/adapters/utils.d.ts","default":"./dist/adapters/utils.cjs"}},"./adapters/nextjs":{"import":{"types":"./dist/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.js"},"require":{"types":"./dist/cjs/adapters/nextjs/index.d.ts","default":"./dist/adapters/nextjs/index.cjs"}},"./adapters/express":{"import":{"types":"./dist/adapters/express/index.d.ts","default":"./dist/adapters/express/index.js"},"require":{"types":"./dist/cjs/adapters/express/index.d.ts","default":"./dist/adapters/express/index.cjs"}},"./adapters/fastify":{"import":{"types":"./dist/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.js"},"require":{"types":"./dist/cjs/adapters/fastify/index.d.ts","default":"./dist/adapters/fastify/index.cjs"}},"./client/providers":{"types":"./dist/client/providers.d.ts","import":"./dist/client/providers.js"},"./client/components":{"types":"./dist/client/components.d.ts","import":"./dist/client/components.js"},"./client/styles.css":{"types":"./dist/client/styles.d.css.ts","default":"./dist/client/styles.css"}},"gitHead":"c85f84c7152b87943c5b4ebfefdb1031ba43f194","license":"MIT","scripts":{"dev":"concurrently \"npm run dev:server\" \"npm run dev:client\"","lint":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts'","perf":"tsx perf/run.ts","test":"vitest run","build":"npm run build:server && npm run build:mcp-app && npm run build:client && npm run build:adapters && npm run build:cli","preview":"npm run build:client && npm run preview:build && concurrently \"npm run dev:server\" \"npm run preview:serve\"","quality":"sh -c 'fallow audit \"$@\"; exit 0' --","lint:fix":"eslint 'src/**/*.{ts,tsx}' 'tests/**/*.ts' 'perf/**/*.ts' --fix","prebuild":"node -e \"require('node:fs').rmSync('dist/cjs', { recursive: true, force: true })\"","test:all":"vitest run && TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts && TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts && TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts && TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:cli":"vitest run --project cli","test:e2e":"playwright test","build:cli":"vite build --config vite.config.cli.ts","dev:build":"concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"","dev:db:up":"cd dev && docker-compose up -d","dev:setup":"npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed","i18n:pull":"source .env 2>/dev/null; crowdin download","i18n:push":"source .env 2>/dev/null; crowdin upload sources && crowdin upload translations","perf:seed":"tsx perf/run.ts --seed-only","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.tests.json && tsc --noEmit -p tsconfig.client.tests.json","dev:client":"cd dev/client && vite","dev:server":"tsx watch dev/server/index.ts","perf:route":"node --expose-gc --import tsx perf/route-profile.ts","test:mysql":"TEST_DB_TYPE=mysql vitest run --config vitest.config.server.ts","test:setup":"docker-compose up -d","test:watch":"vitest --watch","dev:db:down":"cd dev && docker-compose down","dev:db:seed":"cd dev && tsx scripts/seed.ts","dev:mcp-app":"vite build --config vite.config.mcp-app.ts --watch","test:client":"vitest run --config vitest.config.client.ts","test:duckdb":"TEST_DB_TYPE=duckdb vitest run --config vitest.config.server.ts","test:e2e:ui":"playwright test --ui","test:server":"vitest run --config vitest.config.server.ts","test:sqlite":"TEST_DB_TYPE=sqlite vitest run --config vitest.config.server.ts","build:client":"vite build --config vite.config.client.ts","build:server":"vite build --config vite.config.server.ts","perf:profile":"node --expose-gc --import tsx perf/profile.ts","build:mcp-app":"vite build --config vite.config.mcp-app.ts && tsx scripts/generate-mcp-app-html.ts","check:exports":"attw --pack . && publint --level error","coverage:open":"open coverage/index.html","preview:build":"cd dev/client && vite build --config vite.config.preview.ts","preview:serve":"cd dev/client && vite preview --config vite.config.preview.ts","quality:graph":"npx madge --image dependency-graph.svg --extensions ts,tsx src","test:coverage":"vitest run --coverage","test:databend":"TEST_DB_TYPE=databend vitest run --config vitest.config.server.ts","test:postgres":"vitest run --config vitest.config.server.ts","test:teardown":"docker-compose down","analyze:client":"vite build --config vite.config.client.ts && open dist/client-bundle-stats.html","build:adapters":"vite build --config vite.config.adapters.ts","coverage:index":"node scripts/merge-coverage.js","dev:db:migrate":"cd dev && tsx scripts/migrate.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run check:exports","quality:health":"fallow health","test:cli:watch":"vitest --watch --project cli","test:client:ui":"vitest --ui --config vitest.config.client.ts","test:snowflake":"TEST_DB_TYPE=snowflake vitest run --config vitest.config.server.ts","dev:build-client":"vite build src/client --watch --mode development","dev:build-server":"vite build src/server --watch --mode development","test:coverage:ui":"vitest --ui --coverage","test:client:watch":"vitest --watch --config vitest.config.client.ts","test:coverage:all":"npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run test:coverage:duckdb && npm run test:coverage:databend && npm run coverage:index","test:server:watch":"vitest --watch --config vitest.config.server.ts","test:coverage:mysql":"TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage --config vitest.config.server.ts","test:coverage:watch":"vitest --watch --coverage","coverage:client:open":"open coverage/client/index.html","coverage:merged:open":"open coverage/merged/index.html","test:client:coverage":"vitest run --coverage --config vitest.config.client.ts","test:coverage:duckdb":"TEST_DB_TYPE=duckdb COVERAGE_DIR=./coverage/duckdb vitest run --coverage --config vitest.config.server.ts","test:coverage:sqlite":"TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage --config vitest.config.server.ts","test:coverage:complete":"npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index","test:coverage:databend":"TEST_DB_TYPE=databend COVERAGE_DIR=./coverage/databend vitest run --coverage --config vitest.config.server.ts","test:coverage:postgres":"COVERAGE_DIR=./coverage/postgres vitest run --coverage --config vitest.config.server.ts","test:coverage:snowflake":"TEST_DB_TYPE=snowflake COVERAGE_DIR=./coverage/snowflake vitest run --coverage --config vitest.config.server.ts"},"version":"0.9.6","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e9b2c7ae-225f-477a-bbaf-b959441ccc13"}},"homepage":"https://try.drizzle-cube.dev","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"overrides":{"esbuild":">=0.25.0","ajv-draft-04":{"ajv":"^8.17.1"}},"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"_npmVersion":"11.19.0","description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","directories":{},"maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"sideEffects":["*.css","./dist/client/styles.css"],"_nodeVersion":"24.21.0","dependencies":{"knap":"^0.6.0","zustand":"^5.0.9","lz-string":"^1.5.0","highlight.js":"^11.9.0","markdown-to-jsx":"^9.7.6","react-router-dom":"^7.10.1","@tanstack/react-query":"^5.90.12","@modelcontextprotocol/sdk":"^1.28.0","react-intersection-observer":"^11.0.0","@modelcontextprotocol/ext-apps":"^1.3.2"},"_hasShrinkwrap":false,"devDependencies":{"d3":"^7.9.0","msw":"^2.12.7","tsx":"^4.20.5","zod":"^4.0.0","cors":"^2.8.5","hono":"^4.0.0","next":"^15.5.9","vite":"^8.0.0","elkjs":"^0.12.0","jsdom":"^30.0.0","react":"^18.0.0","dotenv":"^18.0.0","eslint":"^10.0.0","fallow":"3.28.0","mysql2":"^3.14.3","openai":"^7.0.0","vitest":"^4.0.0","exceljs":"^4.4.0","express":"^5.1.0","fastify":"^5.6.2","globals":"^17.0.0","postcss":"^8.5.6","publint":"^0.3.21","postgres":"^3.4.7","recharts":"^3.5.1","@types/d3":"^7.4.3","react-dom":"^18.0.0","supertest":"^7.0.0","@eslint/js":"^10.0.0","@vitest/ui":"^4.0.0","typescript":"npm:@typescript/typescript6@^6.0.2","@types/cors":"^2.8.17","@types/node":"^24.0.0","drizzle-kit":"^0.31.8","drizzle-orm":"^0.45.0","html2canvas":"^1.4.1","tailwindcss":"^4.1.12","@crowdin/cli":"^5.0.0","@types/react":"^18.0.0","concurrently":"^10.0.0","@fastify/cors":"^11.1.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.10.1","snowflake-sdk":"^3.0.0","sql-formatter":"^15.6.6","@iconify/react":"^6.0.0","@types/express":"^5.0.0","better-sqlite3":"^13.0.0","databend-driver":"^0.34.2","react-hook-form":"^7.68.0","react-resizable":"^4.0.0","vite-plugin-dts":"^5.0.0","@eslint/eslintrc":"^3.3.1","@playwright/test":"^1.58.2","@types/react-dom":"^18.0.0","@types/supertest":"^7.0.0","drizzle-databend":"^0.1.12","@anthropic-ai/sdk":"^0.128.0","@hono/node-server":"^2.0.0","drizzle-snowflake":"^0.1.13","modern-screenshot":"^4.6.7","react-grid-layout":"^2.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.0.0","@tailwindcss/postcss":"^4.1.12","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^6.0.0","@arethetypeswrong/cli":"^0.18.3","@google/generative-ai":"^0.24.1","@iconify-icons/tabler":"^2.0.0","@types/better-sqlite3":"^9.0.0","@testing-library/react":"^16.3.0","vite-plugin-singlefile":"^2.3.2","@neondatabase/serverless":"^1.0.1","rollup-plugin-visualizer":"^7.0.0","@testing-library/jest-dom":"^7.0.0","@typescript-eslint/parser":"^8.0.0","eslint-plugin-react-hooks":"^7.0.1","@testing-library/user-event":"^14.6.1","eslint-plugin-unused-imports":"^4.4.1","@iconify-icons/heroicons-solid":"^2.0.0","@tanstack/react-query-devtools":"^5.91.2","@iconify-icons/heroicons-outline":"^2.0.0","@typescript-eslint/eslint-plugin":"^8.0.0"},"peerDependencies":{"d3":"^7.9.0","cors":"^2.8.5","hono":"^4.0.0","elkjs":"^0.9.0 || ^0.11.1 || ^0.12.0","react":"^18.0.0","openai":">=4.0.0","exceljs":">=4.0.0","express":"^5.0.0","fastify":"^5.0.0","react-is":"^19.2.3","recharts":"^3.5.1","react-dom":"^18.0.0","drizzle-orm":"^0.45.0","@nivo/heatmap":"^0.99.0","@xyflow/react":"^12.0.0","@anthropic-ai/sdk":">=0.30.0","modern-screenshot":"^4.4.0","react-grid-layout":"^2.1.1","@google/generative-ai":">=0.21.0","@neondatabase/serverless":"^1.0.1"},"optionalDependencies":{"@duckdb/node-api":">=1.4.4-r.1 <1.6.0","@leonardovida-md/drizzle-neo-duckdb":"^1.5.2"},"peerDependenciesMeta":{"cors":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"elkjs":{"optional":true},"react":{"optional":true},"openai":{"optional":true},"exceljs":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"react-is":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"@nivo/heatmap":{"optional":true},"@xyflow/react":{"optional":true},"snowflake-sdk":{"optional":true},"databend-driver":{"optional":true},"@duckdb/node-api":{"optional":true},"drizzle-databend":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"drizzle-snowflake":{"optional":true},"modern-screenshot":{"optional":true},"react-grid-layout":{"optional":true},"@google/generative-ai":{"optional":true},"@neondatabase/serverless":{"optional":true},"@leonardovida-md/drizzle-neo-duckdb":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drizzle-cube_0.9.6_1790397878239_0.658243504436463"}}},"time":{"created":"2025-08-17T04:56:49.467Z","modified":"2026-09-26T04:44:38.799Z","0.1.0":"2025-08-17T04:56:49.648Z","0.1.1":"2025-08-17T14:41:49.811Z","0.1.2":"2025-08-17T14:47:15.550Z","0.1.3":"2025-08-17T14:53:17.916Z","0.1.4":"2025-08-18T16:18:06.400Z","0.1.5":"2025-08-19T06:26:51.308Z","0.1.6":"2025-08-19T20:03:39.612Z","0.1.8":"2025-08-20T05:18:47.997Z","0.1.9":"2025-08-20T09:42:19.930Z","0.1.10":"2025-08-20T16:35:35.624Z","0.1.11":"2025-08-21T08:56:34.449Z","0.1.12":"2025-08-21T09:25:21.955Z","0.1.13":"2025-08-22T06:04:06.541Z","0.1.14":"2025-08-22T10:58:15.826Z","0.1.15":"2025-08-24T07:16:00.305Z","0.1.16":"2025-08-24T19:53:21.642Z","0.1.17":"2025-08-25T05:30:16.259Z","0.1.18":"2025-08-25T06:10:14.253Z","0.1.19":"2025-08-27T04:57:47.259Z","0.1.20":"2025-08-27T05:42:08.039Z","0.1.21":"2025-08-27T06:05:57.824Z","0.1.23":"2025-08-27T19:09:30.972Z","0.1.24":"2025-08-28T04:16:03.034Z","0.1.25":"2025-08-28T04:43:19.380Z","0.1.26":"2025-08-28T12:02:58.245Z","0.1.28":"2025-08-29T03:01:34.109Z","0.1.29":"2025-08-29T12:49:19.546Z","0.1.30":"2025-08-30T04:15:48.445Z","0.1.31":"2025-08-30T06:13:33.194Z","0.1.32":"2025-09-05T03:40:52.598Z","0.1.33":"2025-10-10T06:03:31.931Z","0.1.34":"2025-10-10T07:43:34.439Z","0.1.35":"2025-10-10T17:42:16.492Z","0.1.36":"2025-11-13T04:48:31.718Z","0.1.37":"2025-11-13T06:03:50.639Z","0.1.38":"2025-11-15T06:50:53.785Z","0.1.39":"2025-11-15T07:24:19.239Z","0.1.40":"2025-11-16T07:16:52.422Z","0.1.41":"2025-11-19T10:51:04.389Z","0.1.42":"2025-11-21T04:07:53.826Z","0.1.43":"2025-11-21T19:42:31.519Z","0.1.44":"2025-11-22T09:52:03.616Z","0.1.45":"2025-11-22T14:50:25.147Z","0.1.46":"2025-11-26T05:36:17.625Z","0.1.47":"2025-11-26T10:21:46.098Z","0.1.48":"2025-11-27T05:24:36.948Z","0.1.49":"2025-11-27T05:57:22.878Z","0.1.50":"2025-11-27T18:01:07.188Z","0.1.51":"2025-11-28T04:34:38.083Z","0.1.52":"2025-11-28T06:29:16.882Z","0.1.53":"2025-11-28T10:14:04.295Z","0.1.55":"2025-11-28T10:29:55.842Z","0.1.56":"2025-11-29T07:42:57.448Z","0.1.58":"2025-11-30T04:22:36.380Z","0.1.59":"2025-12-01T05:23:59.701Z","0.1.60":"2025-12-04T04:24:04.304Z","0.1.62":"2025-12-09T07:27:35.223Z","0.1.63":"2025-12-09T09:51:36.871Z","0.1.64":"2025-12-13T06:51:12.960Z","0.1.65":"2025-12-14T07:28:09.456Z","0.1.66":"2025-12-21T05:17:10.744Z","0.1.67":"2025-12-21T08:23:43.697Z","0.1.68":"2025-12-23T05:39:22.955Z","0.1.69":"2025-12-23T06:44:05.176Z","0.2.0":"2025-12-25T10:31:17.578Z","0.2.1":"2025-12-25T10:51:20.224Z","0.2.2":"2025-12-25T11:40:23.735Z","0.2.3":"2025-12-26T06:26:53.876Z","0.2.4":"2025-12-26T06:56:58.088Z","0.2.5":"2025-12-26T07:45:36.414Z","0.2.7":"2025-12-26T10:47:40.480Z","0.2.8":"2025-12-27T11:50:20.152Z","0.2.9":"2025-12-27T14:18:43.726Z","0.2.10":"2025-12-27T15:49:17.315Z","0.2.11":"2025-12-28T08:07:14.783Z","0.2.12":"2025-12-28T12:12:20.195Z","0.2.13":"2025-12-28T12:28:26.797Z","0.2.14":"2025-12-30T08:25:32.856Z","0.2.15":"2025-12-31T07:58:04.428Z","0.2.16":"2026-01-02T04:41:44.834Z","0.2.17":"2026-01-02T08:19:32.378Z","0.2.18":"2026-01-02T08:53:37.734Z","0.2.19":"2026-01-03T06:40:15.416Z","0.2.22":"2026-01-04T06:51:10.656Z","0.2.23":"2026-01-04T09:05:18.606Z","0.2.24":"2026-01-04T10:26:46.206Z","0.2.25":"2026-01-05T06:57:10.519Z","0.2.26":"2026-01-05T10:01:12.926Z","0.2.27":"2026-01-07T05:07:59.066Z","0.2.28":"2026-01-07T07:25:05.657Z","0.2.29":"2026-01-07T08:07:49.652Z","0.2.30":"2026-01-07T09:36:22.324Z","0.3.0":"2026-01-10T05:35:01.335Z","0.3.1":"2026-01-10T07:58:38.519Z","0.3.2":"2026-01-10T08:37:08.986Z","0.3.4":"2026-01-11T10:15:55.928Z","0.3.5":"2026-01-11T10:29:06.761Z","0.3.6":"2026-01-13T08:18:57.900Z","0.3.7":"2026-01-13T09:19:20.879Z","0.3.8":"2026-01-14T05:42:58.060Z","0.3.9":"2026-01-14T10:54:40.118Z","0.3.10":"2026-01-14T12:17:50.390Z","0.3.12":"2026-01-19T05:30:12.419Z","0.3.13":"2026-01-19T08:23:42.413Z","0.3.15":"2026-01-23T15:34:05.492Z","0.3.16":"2026-01-24T07:06:21.816Z","0.3.17":"2026-01-24T08:26:25.047Z","0.3.18":"2026-01-24T08:39:47.231Z","0.3.19":"2026-01-24T09:23:43.871Z","0.3.20":"2026-01-24T09:51:52.567Z","0.3.21":"2026-01-26T04:35:17.891Z","0.3.22":"2026-01-28T04:09:19.231Z","0.3.23":"2026-01-30T04:18:43.476Z","0.3.24":"2026-01-31T04:31:29.068Z","0.3.25":"2026-02-02T05:17:25.479Z","0.3.27":"2026-02-07T05:05:46.812Z","0.3.28":"2026-02-18T05:27:52.759Z","0.3.30":"2026-02-20T14:53:10.417Z","0.3.31":"2026-02-21T07:34:16.762Z","0.3.32":"2026-02-21T11:36:27.983Z","0.3.33":"2026-02-21T17:41:02.683Z","0.4.0":"2026-02-23T05:54:23.581Z","0.4.1":"2026-02-23T20:16:27.418Z","0.4.2":"2026-02-24T03:51:46.620Z","0.4.3":"2026-02-24T05:31:14.752Z","0.4.4":"2026-02-25T06:04:53.750Z","0.4.5":"2026-02-25T09:43:22.446Z","0.4.7":"2026-02-26T07:07:42.714Z","0.4.8":"2026-03-03T08:17:49.533Z","0.4.9":"2026-03-03T11:46:35.551Z","0.4.10":"2026-03-03T14:57:28.192Z","0.4.11":"2026-03-03T15:52:26.522Z","0.4.13":"2026-03-03T17:20:22.717Z","0.4.14":"2026-03-04T05:14:39.581Z","0.4.15":"2026-03-04T06:03:03.743Z","0.4.16":"2026-03-04T07:16:54.584Z","0.4.17":"2026-03-04T10:56:35.443Z","0.4.18":"2026-03-04T11:29:22.706Z","0.4.19":"2026-03-04T12:19:32.652Z","0.4.20":"2026-03-04T16:09:35.922Z","0.4.21":"2026-03-05T07:02:27.278Z","0.4.22":"2026-03-05T07:36:23.002Z","0.4.23":"2026-03-05T15:07:15.342Z","0.4.24":"2026-03-06T05:50:21.842Z","0.4.25":"2026-03-06T08:36:08.444Z","0.4.26":"2026-03-10T15:03:47.375Z","0.4.27":"2026-03-10T15:34:44.602Z","0.4.28":"2026-03-11T03:44:14.359Z","0.4.29":"2026-03-11T05:11:15.763Z","0.4.30":"2026-03-13T05:07:30.481Z","0.4.31":"2026-03-17T07:59:15.611Z","0.4.32":"2026-03-18T05:46:30.117Z","0.4.33":"2026-03-18T07:21:45.371Z","0.4.34":"2026-03-18T09:01:55.778Z","0.4.35":"2026-03-21T03:27:52.627Z","0.4.36":"2026-03-21T08:29:05.905Z","0.4.37":"2026-03-22T06:13:08.161Z","0.4.38":"2026-03-22T06:57:11.070Z","0.4.39":"2026-03-22T07:20:42.922Z","0.4.40":"2026-03-22T07:33:25.029Z","0.4.41":"2026-03-22T08:47:11.066Z","0.4.42":"2026-03-22T14:51:37.635Z","0.4.43":"2026-03-28T08:48:46.915Z","0.4.44":"2026-03-29T02:41:43.411Z","0.4.45":"2026-03-29T04:11:13.625Z","0.4.46":"2026-03-29T04:37:11.029Z","0.4.47":"2026-03-29T05:05:02.490Z","0.4.48":"2026-03-29T08:42:45.596Z","0.4.49":"2026-03-29T09:44:05.434Z","0.4.50":"2026-03-29T10:25:08.091Z","0.4.51":"2026-03-29T11:02:10.434Z","0.4.52":"2026-03-30T08:52:16.553Z","0.4.53":"2026-03-30T09:25:53.375Z","0.5.0":"2026-04-01T04:57:05.229Z","0.5.1":"2026-04-06T16:55:03.796Z","0.5.3":"2026-04-10T04:26:13.877Z","0.5.4":"2026-04-11T04:50:46.691Z","0.5.5":"2026-04-12T04:15:11.089Z","0.5.6":"2026-04-22T19:24:25.316Z","0.5.7":"2026-05-30T05:03:25.465Z","0.5.8":"2026-06-11T04:33:42.947Z","0.6.0":"2026-06-15T05:54:46.692Z","0.6.1":"2026-06-16T04:26:17.527Z","0.6.2":"2026-06-17T04:21:41.192Z","0.6.3":"2026-06-19T04:59:38.585Z","0.6.4":"2026-06-20T04:07:58.600Z","0.6.5":"2026-07-21T08:51:12.642Z","0.6.6":"2026-07-29T10:22:24.858Z","0.6.7":"2026-08-30T03:41:43.474Z","0.7.0":"2026-08-30T06:58:08.570Z","0.7.1":"2026-08-30T08:09:49.529Z","0.8.0":"2026-08-31T05:45:55.501Z","0.8.1":"2026-08-31T10:42:20.166Z","0.8.2":"2026-08-31T12:33:48.090Z","0.8.3":"2026-08-31T16:09:54.635Z","0.9.0":"2026-09-02T05:49:58.716Z","0.9.2":"2026-09-12T07:23:19.639Z","0.9.3":"2026-09-14T12:05:11.949Z","0.9.4":"2026-09-21T05:30:21.966Z","0.9.5":"2026-09-23T09:34:33.796Z","0.9.6":"2026-09-26T04:44:38.486Z"},"bugs":{"url":"https://github.com/cliftonc/drizzle-cube/issues"},"author":{"name":"Clifton Cunningham","email":"clifton.cunningham@gmail.com"},"license":"MIT","homepage":"https://try.drizzle-cube.dev","keywords":["drizzle-orm","drizzle","cube","cubejs","semantic-layer","analytics","dashboard","react","typescript","type-safe","sql-injection-protection","hono","postgres","mysql","sqlite"],"repository":{"url":"git+https://github.com/cliftonc/drizzle-cube.git","type":"git"},"description":"Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.","maintainers":[{"name":"cliftonc","email":"clifton.cunningham@gmail.com"}],"readme":"# Drizzle Cube\n\n**A Drizzle ORM-first semantic layer for type-safe analytics**\n\n![Drizzle Cube Dashboard](https://try.drizzle-cube.dev/dashboard_light.png)\n\nBuild a semantic layer on top of your existing Drizzle ORM schema. Define cubes with measures, dimensions, joins, and security filters in TypeScript, then query them through Cube.js-compatible HTTP APIs, React analytics components, framework adapters, or MCP-enabled AI tools. SQL is generated through Drizzle ORM and parameterized query primitives; your application remains responsible for authentication, authorization, and tenant scoping.\n\n- **[Documentation](https://www.drizzle-cube.dev/)**\n- **[Try the Sandbox](https://try.drizzle-cube.dev/)**\n- **[Ask for help in Discord](https://discord.gg/kFvT97hZsv)**\n- **[Contribute to the Roadmap](https://github.com/users/cliftonc/projects/2)**\n\n[![NPM Version](https://img.shields.io/npm/v/drizzle-cube)](https://www.npmjs.com/package/drizzle-cube)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue)](https://www.typescriptlang.org/)\n[![Drizzle ORM](https://img.shields.io/badge/Drizzle%20ORM-0.45+-green)](https://orm.drizzle.team/)\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n\n## What is a Semantic Layer?\n\nA semantic layer sits between your database and your applications. It provides:\n\n- **Business-friendly abstractions** - define \"Revenue\" once and use it everywhere.\n- **Consistent metrics** - every dashboard, API caller, and AI agent uses the same calculation for \"Active Users\".\n- **Security hooks** - route verified identity into `securityContext` and apply tenant filters or database RLS consistently.\n- **Self-service analytics** - users explore data without writing SQL.\n- **Decoupling** - reports and AI agents continue to work when you change the underlying data model.\n\nDrizzle Cube brings this to the Drizzle ORM ecosystem with full TypeScript inference, Cube.js-compatible APIs, React components, framework adapters, and MCP integration.\n\n## Why Drizzle Cube?\n\n| Feature | Drizzle Cube | Raw SQL | Other BI Tools |\n|---------|--------------|---------|----------------|\n| Type safety | TypeScript cube definitions and inferred schema types | Manual types | Varies |\n| SQL generation | Drizzle ORM query builder and parameterized SQL | Manual, error-prone | Tool-specific |\n| Multi-tenant isolation | Application-provided `securityContext`, cube filters, and RLS hooks | Manual | Tool-specific |\n| AI integration | MCP endpoint included in adapters | Build yourself | Varies |\n| Setup | Add cubes to your existing Drizzle app | Build API and UI yourself | Often separate infrastructure |\n\n## Quick Start\n\nThis example uses Hono, PostgreSQL, and `postgres` as one concrete path. Substitute your Drizzle driver and preferred adapter as needed.\n\n### 1. Install\n\n```bash\nnpm install drizzle-cube drizzle-orm hono postgres\n```\n\nReact client usage also requires the optional React/client peers used by your app and the shipped stylesheet import shown below.\n\n### 2. Define Cubes on Your Schema\n\nDrizzle Cube does not infer or generate cube models from your database schema today. Define cubes in TypeScript, using your existing Drizzle tables. The CLI commands `npx drizzle-cube charts list` and `npx drizzle-cube charts init` scaffold custom chart plugins, not cube definitions.\n\n```typescript\nimport { defineCube } from 'drizzle-cube/server'\nimport { eq } from 'drizzle-orm'\nimport { departments, employees } from './schema'\n\nexport const departmentsCube = defineCube('Departments', {\n  sql: (ctx) => ({\n    from: departments,\n    where: eq(departments.organisationId, ctx.securityContext.organisationId)\n  }),\n\n  measures: {\n    count: {\n      name: 'count',\n      type: 'count',\n      sql: departments.id\n    }\n  },\n\n  dimensions: {\n    id: {\n      name: 'id',\n      type: 'number',\n      sql: departments.id,\n      primaryKey: true\n    },\n    name: {\n      name: 'name',\n      type: 'string',\n      sql: departments.name\n    }\n  }\n})\n\nexport const employeesCube = defineCube('Employees', {\n  sql: (ctx) => ({\n    from: employees,\n    where: eq(employees.organisationId, ctx.securityContext.organisationId)\n  }),\n\n  joins: {\n    Departments: {\n      targetCube: () => departmentsCube,\n      relationship: 'belongsTo',\n      on: [{ source: employees.departmentId, target: departments.id }]\n    }\n  },\n\n  measures: {\n    count: {\n      name: 'count',\n      type: 'count',\n      sql: employees.id\n    },\n    avgSalary: {\n      name: 'avgSalary',\n      type: 'avg',\n      sql: employees.salary\n    },\n    totalSalary: {\n      name: 'totalSalary',\n      type: 'sum',\n      sql: employees.salary\n    }\n  },\n\n  dimensions: {\n    id: {\n      name: 'id',\n      type: 'number',\n      sql: employees.id,\n      primaryKey: true\n    },\n    name: {\n      name: 'name',\n      type: 'string',\n      sql: employees.name\n    },\n    email: {\n      name: 'email',\n      type: 'string',\n      sql: employees.email\n    },\n    hiredAt: {\n      name: 'hiredAt',\n      type: 'time',\n      sql: employees.hiredAt\n    }\n  }\n})\n```\n\n### 3. Create an API Server\n\n```typescript\nimport { createCubeApp } from 'drizzle-cube/adapters/hono'\nimport { drizzle } from 'drizzle-orm/postgres-js'\nimport postgres from 'postgres'\nimport { departmentsCube, employeesCube } from './cubes'\nimport * as schema from './schema'\n\nconst client = postgres(process.env.DATABASE_URL!)\nconst db = drizzle(client, { schema })\n\nconst app = createCubeApp({\n  cubes: [departmentsCube, employeesCube],\n  drizzle: db,\n  schema,\n  extractSecurityContext: async (c) => {\n    const organisationId = c.req.header('x-organisation-id')\n\n    if (!organisationId) {\n      throw new Error('Missing organisation context')\n    }\n\n    return { organisationId }\n  }\n})\n\nexport default app\n```\n\n> **Security note:** `x-organisation-id` is a local demonstration shortcut. In production, derive tenant and user identity from verified authentication, then return it from `extractSecurityContext`. Treat this function as your authentication and authorization boundary.\n\nAdapter defaults expose Cube.js-compatible REST routes at `/cubejs-api/v1` and the MCP endpoint at `/mcp` with MCP enabled by default. See the adapter documentation for [Express](https://www.drizzle-cube.dev/frameworks/express/), [Fastify](https://www.drizzle-cube.dev/frameworks/fastify/), [Hono](https://www.drizzle-cube.dev/frameworks/hono/), and [Next.js](https://www.drizzle-cube.dev/frameworks/nextjs/) variants.\n\n### 4. Query from Your App\n\n```typescript\nconst response = await fetch('/cubejs-api/v1/load', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    'x-organisation-id': 'demo-org'\n  },\n  body: JSON.stringify({\n    query: {\n      measures: ['Employees.count', 'Employees.avgSalary'],\n      dimensions: ['Departments.name']\n    }\n  })\n})\n\nif (!response.ok) {\n  throw new Error(`Cube query failed: ${response.status}`)\n}\n\nconst result = await response.json()\n```\n\n### 5. Add React Analytics Components\n\n```tsx\nimport { AnalysisBuilder, CubeProvider } from 'drizzle-cube/client'\nimport 'drizzle-cube/client/styles.css'\n\nexport function AnalyticsPage() {\n  return (\n    <CubeProvider\n      apiOptions={{\n        apiUrl: '/cubejs-api/v1',\n        headers: { 'x-organisation-id': 'demo-org' }\n      }}\n    >\n      <AnalysisBuilder />\n    </CubeProvider>\n  )\n}\n```\n\nUse `AnalyticsDashboard` when you want to compose and persist dashboard layouts in your own application storage. AI agents can connect to `/mcp`; those requests use the same adapter security context as the REST API.\n\n## Analysis Modes\n\nDrizzle Cube supports multiple analysis modes at the semantic-layer level:\n\n### Query Builder (Analysis Builder)\n\nBuild ad-hoc queries with measures, dimensions, filters, and time ranges. The React Analysis Builder includes a search-first field picker, chart configuration, and multiple visualization options.\n\n![Analysis Builder](https://try.drizzle-cube.dev/dashboard_light.png)\n\n**[Try the Analysis Builder →](https://try.drizzle-cube.dev/analysis-builder)**\n\n### Funnel Analysis\n\nTrack conversion through ordered steps, drop-off rates, and time-to-convert metrics. Funnels require a binding key, an event time dimension, and ordered step filters. A canonical request nests the funnel configuration under `funnel`:\n\n```typescript\n{\n  funnel: {\n    bindingKey: 'Users.id',\n    timeDimension: 'Events.timestamp',\n    includeTimeMetrics: true,\n    steps: [\n      {\n        name: 'Signed Up',\n        filter: { member: 'Events.type', operator: 'equals', values: ['signed_up'] }\n      },\n      {\n        name: 'Activated',\n        filter: { member: 'Events.type', operator: 'equals', values: ['activated'] }\n      },\n      {\n        name: 'Subscribed',\n        filter: { member: 'Events.type', operator: 'equals', values: ['subscribed'] }\n      }\n    ]\n  }\n}\n```\n\n### Flow Analysis\n\nVisualize user journeys and navigation paths through states, pages, or events. Flow analysis needs event-style dimensions that identify the actor, timestamp, and step value.\n\n### Retention Analysis\n\nMeasure cohort retention over days, weeks, or months. Retention analysis requires suitable cohort, return-event, and time dimensions.\n\n### Dashboards\n\nCompose multiple charts into dashboards with grid layouts, filters, themes, and custom chart plugins. Applications own dashboard persistence and sharing workflows.\n\n**[Try the Dashboard Builder →](https://try.drizzle-cube.dev/)**\n\nValidation surfaces missing mode prerequisites and engine capability differences before execution. See the [analysis documentation](https://www.drizzle-cube.dev/client/analysis-builder/) for detailed mode configuration.\n\n## AI & MCP Integration\n\nDrizzle Cube adapters include a default-enabled MCP endpoint at `/mcp`, allowing AI agents to discover metadata, validate queries, and load results through the same security boundary as other API calls.\n\n![Claude using Drizzle Cube MCP](https://try.drizzle-cube.dev/claude_mcp.png)\n\n### Available MCP Tools\n\n| Tool | Availability | Purpose |\n|------|--------------|---------|\n| `discover` | Always available | Find relevant cubes and members by topic. |\n| `validate` | Always available | Validate queries and return corrections before execution. |\n| `load` | Always available | Execute validated queries and return data. |\n| `chart` | Conditional | Available only when MCP App support is enabled with `mcp.app`; returns interactive chart visualizations. |\n\nFor public deployments, configure verified bearer-token handling, resource metadata, and explicit browser origins as appropriate for your MCP clients. `extractSecurityContext` remains the application authentication boundary.\n\n### Connect AI Tools\n\nConnector setup varies by client and transport. For example, Claude Desktop can use `mcp-remote`:\n\n```json\n{\n  \"mcpServers\": {\n    \"analytics\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@anthropic/mcp-remote\", \"https://your-app.com/mcp\"]\n    }\n  }\n}\n```\n\nSee the [MCP endpoint documentation](https://www.drizzle-cube.dev/ai/mcp-endpoints/) for transport, authentication, and client-specific guidance.\n\n## Claude Code Plugin\n\nQuery your semantic layer with natural language directly from Claude Code. In Claude Code, run the interactive command:\n\n```text\n/plugin install cliftonc/drizzle-cube-plugin\n```\n\nThe plugin repository is the source of truth for installation and configuration: **[cliftonc/drizzle-cube-plugin](https://github.com/cliftonc/drizzle-cube-plugin)**. For custom servers, configure Claude's `.mcp.json` plus the plugin's `.drizzle-cube.json` endpoint settings.\n\n## Features\n\n### Semantic Layer\n\n- **Cubes** - define measures, dimensions, hierarchies, calculated measures, and member metadata.\n- **Joins** - model `belongsTo`, `hasOne`, `hasMany`, and `belongsToMany` relationships.\n- **Query planning** - resolve cross-cube paths, validate queries, dry-run generated SQL, and explain plans.\n- **Security hooks** - pass application-authenticated context into cube SQL and optional database RLS patterns.\n- **Performance hooks** - configure query caching and execution options where appropriate.\n\n### Modeling Limitation: Multi-Fact Queries\n\n- For `FactA -> Dimension <- FactB` star or snowflake patterns, define reverse `hasMany` joins on the center dimension back to each fact.\n- Example: if `Sales` and `Inventory` both `belongsTo Products`, `Products` should define `hasMany Sales` and `hasMany Inventory`.\n- Join-path traversal is directional. Without reverse joins, the planner may not be able to pick the center dimension as the primary cube, which can lead to fan-out-prone execution plans.\n- If you cannot add reverse joins immediately, include the center join key dimension, such as `Products.id`, in the query grain to reduce aggregation ambiguity.\n\n### Client Components\n\n- **AnalysisBuilder** - interactive query builder for ad-hoc exploration.\n- **AnalyticsDashboard** - dashboard composition with application-owned persistence.\n- **Data browser** - metadata-driven field exploration.\n- **Analysis modes** - query, funnel, flow, and retention.\n- **Charts** - 26 built-in chart types, including Cartesian, pie, KPI, funnel, Sankey, sunburst, heatmap, retention, statistical, financial, profile, and gauge visualizations.\n- **Customization** - theming, i18n, and custom chart plugins.\n\n### Framework and Database Support\n\n- **Framework adapters** - Express, Fastify, Hono, and Next.js.\n- **Database engines** - PostgreSQL, MySQL, SQLite, DuckDB, Snowflake, Databend, and SingleStore.\n- **Client runtime** - React components with TanStack Query integration and optional feature-specific peer dependencies.\n\n### Responsibilities and Limitations\n\n- Provide a connected Drizzle instance and schema for the selected driver.\n- Install optional peer dependencies for selected adapters, chart types, and client features.\n- Authenticate every request before returning `securityContext`.\n- Apply tenant filters in cube SQL or configure database RLS for the same isolation goal.\n- Persist dashboard configurations, sharing permissions, and user preferences in your application.\n\n## Documentation\n\n- **[Getting Started](https://www.drizzle-cube.dev/getting-started/)** - installation and setup.\n- **[Semantic Layer](https://www.drizzle-cube.dev/semantic-layer/)** - cubes, measures, dimensions, joins, and security context.\n- **[Client Components](https://www.drizzle-cube.dev/client/)** - React components, dashboards, charts, and analysis modes.\n- **[AI Integration](https://www.drizzle-cube.dev/ai/)** - MCP endpoints and Claude Code plugin.\n- **[API Reference](https://www.drizzle-cube.dev/api-reference/)** - detailed API documentation.\n\n## Examples\n\n- **[Hono Example](https://github.com/cliftonc/drizzle-cube-hono)** - Hono server integration.\n- **[Express Example](https://github.com/cliftonc/drizzle-cube-express)** - Express server integration.\n- **[Fastify Example](https://github.com/cliftonc/drizzle-cube-fastify)** - Fastify server integration.\n- **[Next.js Example](https://github.com/cliftonc/drizzle-cube-nextjs)** - full-stack Next.js integration.\n\n## Contributing\n\nWe welcome contributions. Please see our [Contributing Guide](./CONTRIBUTING.md).\n\nQuery performance is benchmarked on every push to `main` — browse the historical trends at the **[Performance Dashboard](https://cliftonc.github.io/drizzle-cube/dev/bench/)**.\n\n## Roadmap\n\nView and contribute to the roadmap on [GitHub Projects](https://github.com/users/cliftonc/projects/2).\n\n## License\n\nMIT © [Clifton Cunningham](https://github.com/cliftonc)\n\n---\n\nBuilt for the Drizzle ORM community.\n\n---\n\n> This repository is maintained with the assistance of [Last Light](https://github.com/apps/last-light), an automated GitHub maintenance bot that handles issue triage, pull request reviews, and routine repository upkeep.\n","readmeFilename":"README.md"}