UNPKG

drizzle-cube

Version:

Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.

250 lines (249 loc) 8.43 kB
{ "name": "drizzle-cube", "version": "0.1.60", "description": "Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.", "main": "./dist/server/index.js", "types": "./dist/server/index.d.ts", "type": "module", "exports": { "./server": { "types": "./dist/server/index.d.ts", "import": "./dist/server/index.js", "require": "./dist/server/index.cjs" }, "./client": { "types": "./dist/client/index.d.ts", "import": "./dist/client/index.js" }, "./client/charts": { "types": "./dist/client/charts.d.ts", "import": "./dist/client/charts.js" }, "./client/hooks": { "types": "./dist/client/hooks.d.ts", "import": "./dist/client/hooks.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/utils": { "types": "./dist/client/utils.d.ts", "import": "./dist/client/utils.js" }, "./client/styles.css": "./dist/client/styles.css", "./adapters/hono": { "types": "./dist/adapters/hono/index.d.ts", "import": "./dist/adapters/hono/index.js", "require": "./dist/adapters/hono/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" }, "./adapters/nextjs": { "types": "./dist/adapters/nextjs/index.d.ts", "import": "./dist/adapters/nextjs/index.js", "require": "./dist/adapters/nextjs/index.cjs" } }, "files": [ "dist/", "README.md", "LICENSE" ], "scripts": { "dev": "concurrently \"npm run dev:server\" \"npm run dev:client\"", "dev:server": "tsx watch dev/server/index.ts", "dev:client": "cd dev/client && vite", "dev:build": "concurrently \"npm run dev:build-server\" \"npm run dev:build-client\"", "dev:build-server": "vite build src/server --watch --mode development", "dev:build-client": "vite build src/client --watch --mode development", "build": "npm run build:server && npm run build:client && npm run build:adapters", "build:server": "vite build --config vite.config.server.ts", "build:client": "vite build --config vite.config.client.ts", "analyze:client": "vite build --config vite.config.client.ts && open dist/client-bundle-stats.html", "build:adapters": "vite build --config vite.config.adapters.ts", "test": "vitest run", "test:watch": "vitest --watch", "test:coverage": "vitest run --coverage", "test:coverage:watch": "vitest --watch --coverage", "test:coverage:ui": "vitest --ui --coverage", "test:coverage:postgres": "COVERAGE_DIR=./coverage/postgres vitest run --coverage", "test:coverage:mysql": "TEST_DB_TYPE=mysql COVERAGE_DIR=./coverage/mysql vitest run --coverage", "test:coverage:sqlite": "TEST_DB_TYPE=sqlite COVERAGE_DIR=./coverage/sqlite vitest run --coverage", "test:coverage:all": "npm run test:coverage:postgres && npm run test:coverage:mysql && npm run test:coverage:sqlite && npm run coverage:index", "test:coverage:complete": "npm run test:coverage:all && npm run test:client:coverage && npm run coverage:index", "test:client": "vitest run --config vitest.config.client.ts", "test:client:watch": "vitest --watch --config vitest.config.client.ts", "test:client:coverage": "vitest run --coverage --config vitest.config.client.ts", "test:client:ui": "vitest --ui --config vitest.config.client.ts", "coverage:index": "node scripts/merge-coverage.js", "coverage:open": "open coverage/index.html", "coverage:client:open": "open coverage/client/index.html", "test:postgres": "vitest run", "test:mysql": "TEST_DB_TYPE=mysql vitest run", "test:sqlite": "TEST_DB_TYPE=sqlite vitest run", "test:all": "vitest run && TEST_DB_TYPE=mysql vitest run && TEST_DB_TYPE=sqlite vitest run", "test:setup": "docker-compose up -d", "test:teardown": "docker-compose down", "typecheck": "tsc --noEmit", "lint": "eslint src/**/*.ts tests/**/*.ts", "lint:fix": "eslint src/**/*.ts tests/**/*.ts --fix", "prepublishOnly": "npm run lint && npm run typecheck && npm run build", "dev:db:up": "cd dev && docker-compose up -d", "dev:db:down": "cd dev && docker-compose down", "dev:db:migrate": "cd dev && tsx scripts/migrate.ts", "dev:db:seed": "cd dev && tsx scripts/seed.ts", "dev:setup": "npm run dev:db:up && npm run dev:db:migrate && npm run dev:db:seed" }, "keywords": [ "drizzle-orm", "drizzle", "cube", "cubejs", "semantic-layer", "analytics", "dashboard", "react", "typescript", "type-safe", "sql-injection-protection", "hono", "postgres", "mysql", "sqlite" ], "author": "Clifton Cunningham <clifton.cunningham@gmail.com>", "license": "MIT", "homepage": "https://try.drizzle-cube.dev", "repository": { "type": "git", "url": "https://github.com/cliftonc/drizzle-cube.git" }, "bugs": { "url": "https://github.com/cliftonc/drizzle-cube/issues" }, "peerDependencies": { "@neondatabase/serverless": "^1.0.1", "cors": "^2.8.5", "d3": "^7.9.0", "drizzle-orm": "^0.44.4", "express": "^5.0.0", "fastify": "^5.0.0", "hono": "^4.0.0", "react": "^18.0.0", "react-dom": "^18.0.0", "react-grid-layout": "^1.4.0", "recharts": "^3.0.0" }, "peerDependenciesMeta": { "react": { "optional": true }, "react-dom": { "optional": true }, "react-grid-layout": { "optional": true }, "drizzle-orm": { "optional": true }, "hono": { "optional": true }, "express": { "optional": true }, "fastify": { "optional": true }, "cors": { "optional": true }, "@neondatabase/serverless": { "optional": true }, "next": { "optional": true } }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.34.0", "@fastify/cors": "^11.1.0", "@heroicons/react": "^2.2.0", "@hono/node-server": "^1.19.0", "@iconify-icons/tabler": "^1.2.95", "@iconify/react": "^6.0.0", "@neondatabase/serverless": "^1.0.1", "@tailwindcss/postcss": "^4.1.12", "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", "@types/better-sqlite3": "^7.6.0", "@types/cors": "^2.8.17", "@types/d3": "^7.4.3", "@types/express": "^5.0.0", "@types/node": "^24.0.0", "@types/react": "^18.0.0", "@types/react-dom": "^18.0.0", "@types/react-grid-layout": "^1.3.5", "@types/supertest": "^6.0.2", "@typescript-eslint/eslint-plugin": "^8.0.0", "@typescript-eslint/parser": "^8.0.0", "@vitejs/plugin-react": "^5.0.0", "@vitest/coverage-v8": "^4.0.0", "@vitest/ui": "^4.0.0", "better-sqlite3": "^12.0.0", "concurrently": "^9.0.0", "cors": "^2.8.5", "drizzle-kit": "^0.31.4", "drizzle-orm": "^0.44.4", "eslint": "^9.34.0", "express": "^5.1.0", "fastify": "^5.5.0", "globals": "^16.3.0", "hono": "^4.0.0", "jsdom": "^27.0.0", "mysql2": "^3.14.3", "next": "^15.0.0", "postcss": "^8.5.6", "postgres": "^3.4.7", "react": "^18.0.0", "react-dom": "^18.0.0", "react-grid-layout": "^1.4.0", "react-hook-form": "^7.47.0", "react-resizable": "^3.0.5", "recharts": "^3.0.0", "rollup-plugin-visualizer": "^6.0.3", "sql-formatter": "^15.6.6", "supertest": "^7.0.0", "tailwindcss": "^4.1.12", "tsx": "^4.20.5", "typescript": "^5.0.0", "vite": "^7.0.0", "vite-plugin-dts": "^4.0.0", "vitest": "^4.0.0", "zod": "^4.0.0" }, "dependencies": { "@tanstack/react-query": "^5.85.5", "@types/dagre": "^0.7.53", "dagre": "^0.8.5", "react-intersection-observer": "^10.0.0", "react-router-dom": "^7.8.2", "reactflow": "^11.11.4" } }