{ "name": "@teable/app", "version": "1.10.0", "license": "AGPL-3.0", "private": true, "main": "main/index.js", "homepage": "https://github.com/teableio/teable", "repository": { "type": "git", "url": "https://github.com/teableio/teable", "directory": "apps/nextjs-app" }, "author": { "name": "tea artist", "url": "https://github.com/tea-artist" }, "browserslist": { "production": [ ">0.3%", "not ie 11", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "scripts": { "build": "next build", "build-fast": "cross-env NEXT_BUILD_ENV_SENTRY_ENABLED=0 NEXT_BUILD_ENV_SOURCEMAPS=0 NEXT_BUILD_ENV_TYPECHECK=0 next build", "bundle-analyze": "cross-env ANALYZE=true NEXT_BUILD_ENV_SENTRY_ENABLED=1 NEXT_BUILD_ENV_TYPECHECK=0 pnpm build", "check-dist": "es-check -v", "check-size": "size-limit --highlight-less", "clean": "rimraf ./.next ./out ./coverage ./tsconfig.tsbuildinfo ./node_modules/.cache ./.eslintcache", "clean:backend": "rimraf --no-glob ./main", "test": "run-s test-unit", "test-unit": "vitest run --silent", "test-unit-cover": "pnpm test-unit --coverage", "typecheck": "tsc --project ./tsconfig.json --noEmit", "lint": "eslint . --ext .ts,.tsx,.js,.jsx,.cjs,.mjs,.mdx --cache --cache-location ../../.cache/eslint/nextjs-app.eslintcache", "fix-all-files": "eslint . --ext .ts,.tsx,.js,.jsx,.cjs,.mjs,.mdx --fix", "flamegraph-home": "npx 0x --output-dir './.debug/flamegraph/{pid}.0x' --on-port 'autocannon http://localhost:$PORT --duration 20' -- node ../../node_modules/.bin/next start" }, "devDependencies": { "@next/bundle-analyzer": "16.1.1", "@next/env": "16.1.1", "@playwright/test": "1.42.1", "@size-limit/file": "11.1.2", "@svgr/webpack": "8.1.0", "@testing-library/dom": "9.3.4", "@testing-library/jest-dom": "6.4.2", "@testing-library/react": "14.2.2", "@testing-library/user-event": "14.5.2", "@types/canvas-confetti": "1.9.0", "@types/cors": "2.8.17", "@types/express": "4.17.21", "@types/lodash": "4.17.0", "@types/node": "22.18.0", "@types/nprogress": "0.2.3", "@types/react": "18.3.18", "@types/react-dom": "18.3.5", "@types/react-grid-layout": "1.3.5", "@types/react-syntax-highlighter": "15.5.11", "@types/react-test-renderer": "18.3.1", "@types/sharedb": "3.3.10", "@types/streamsaver": "2.0.5", "@vitejs/plugin-react-swc": "3.6.0", "@vitest/coverage-v8": "4.0.17", "autoprefixer": "10.4.19", "cross-env": "7.0.3", "dotenv-flow": "4.1.0", "dotenv-flow-cli": "1.1.1", "es-check": "7.1.1", "eslint": "8.57.0", "eslint-config-next": "15.5.9", "get-tsconfig": "4.7.3", "happy-dom": "15.11.6", "npm-run-all2": "6.1.2", "postcss": "8.4.38", "postcss-flexbugs-fixes": "5.0.2", "postcss-preset-env": "9.5.2", "prettier": "3.2.5", "rimraf": "5.0.5", "size-limit": "11.1.2", "symlink-dir": "5.2.1", "sync-directory": "6.0.5", "ts-node": "10.9.2", "typescript": "5.4.3", "vite-plugin-svgr": "4.2.0", "vite-tsconfig-paths": "4.3.2", "vitest": "4.0.17" }, "dependencies": { "@asteasolutions/zod-to-openapi": "8.1.0", "@belgattitude/http-exception": "1.5.0", "@codemirror/autocomplete": "6.15.0", "@codemirror/commands": "6.3.3", "@codemirror/lang-json": "6.0.1", "@codemirror/language": "6.10.1", "@codemirror/lint": "6.8.2", "@codemirror/state": "6.4.1", "@codemirror/view": "6.26.0", "@dnd-kit/core": "6.1.0", "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", "@fontsource-variable/inter": "5.0.17", "@fullcalendar/core": "6.1.15", "@fullcalendar/daygrid": "6.1.15", "@fullcalendar/interaction": "6.1.15", "@fullcalendar/react": "6.1.15", "@glideapps/glide-data-grid": "6.0.3", "@hello-pangea/dnd": "16.6.0", "@hookform/resolvers": "3.3.4", "@nem035/gpt-3-encoder": "1.1.7", "@radix-ui/react-icons": "1.3.0", "@sentry/nextjs": "10.33.0", "@sentry/react": "10.33.0", "@tailwindcss/container-queries": "0.1.1", "@tanstack/react-query": "5.90.16", "@tanstack/react-table": "8.11.7", "@tanstack/react-virtual": "3.2.0", "@teable/common-i18n": "workspace:^", "@teable/core": "workspace:^", "@teable/icons": "workspace:^", "@teable/next-themes": "0.3.5", "@teable/openapi": "workspace:^", "@teable/sdk": "workspace:^", "@teable/ui-lib": "workspace:^", "allotment": "1.20.0", "axios": "1.7.7", "buffer": "6.0.3", "canvas-confetti": "1.9.4", "class-variance-authority": "0.7.0", "date-fns": "4.1.0", "date-fns-tz": "3.2.0", "dayjs": "1.11.10", "echarts": "5.5.0", "emoji-mart": "5.5.2", "eventsource-parser": "1.1.2", "express": "4.21.1", "fflate": "0.8.2", "filesize": "10.1.1", "fuse.js": "7.0.0", "i18next": "23.10.1", "is-port-reachable": "3.1.0", "jschardet": "3.1.3", "knex": "3.1.0", "lodash": "4.17.21", "lru-cache": "10.2.0", "lucide-react": "0.363.0", "next": "16.1.3", "next-i18next": "15.2.0", "next-secure-headers": "2.2.0", "next-seo": "6.5.0", "next-transpile-modules": "10.0.1", "nprogress": "0.2.0", "penpal": "6.2.2", "picocolors": "1.0.0", "qrcode.react": "3.1.0", "re-resizable": "6.10.3", "react": "18.3.1", "react-confetti": "6.1.0", "react-day-picker": "9.5.1", "react-dom": "18.3.1", "react-error-boundary": "4.0.13", "react-grid-layout": "1.4.4", "react-hook-form": "7.51.1", "react-hotkeys-hook": "4.5.0", "react-i18next": "14.1.0", "react-joyride": "2.8.0", "react-resizable": "3.0.5", "react-responsive-carousel": "3.2.23", "react-rnd": "10.4.14", "react-syntax-highlighter": "15.5.0", "react-textarea-autosize": "8.5.3", "react-use": "17.5.1", "react-virtuoso": "4.7.10", "reactflow": "11.11.1", "recharts": "2.12.3", "reconnecting-websocket": "4.4.0", "reflect-metadata": "0.2.1", "sharedb": "4.1.2", "streamsaver": "2.0.6", "tailwind-scrollbar": "3.1.0", "tailwindcss": "3.4.1", "type-fest": "4.14.0", "zod": "4.1.8", "zod-validation-error": "4.0.2", "zustand": "4.5.2" } }