apps/nextjs-app/package.json
{
"name": "@teable/app",
"version": "1.5.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_ENV_LINT=0 next build",
"bundle-analyze": "cross-env ANALYZE=true NEXT_BUILD_ENV_SENTRY_ENABLED=1 NEXT_BUILD_ENV_SENTRY_UPLOAD_DRY_RUN=1 NEXT_BUILD_ENV_TYPECHECK=0 NEXT_BUILD_ENV_LINT=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": "14.2.14",
"@next/env": "14.2.14",
"@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/cors": "2.8.17",
"@types/express": "4.17.21",
"@types/lodash": "4.17.0",
"@types/node": "20.9.0",
"@types/nprogress": "0.2.3",
"@types/react": "18.2.69",
"@types/react-dom": "18.2.22",
"@types/react-grid-layout": "1.3.5",
"@types/react-syntax-highlighter": "15.5.11",
"@types/react-test-renderer": "18.0.7",
"@types/sharedb": "3.3.10",
"@vitejs/plugin-react-swc": "3.6.0",
"@vitest/coverage-v8": "1.4.0",
"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": "14.2.14",
"get-tsconfig": "4.7.3",
"happy-dom": "14.3.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": "1.6.0"
},
"dependencies": {
"@antv/g6": "4.8.24",
"@asteasolutions/zod-to-openapi": "6.4.0",
"@belgattitude/http-exception": "1.5.0",
"@codemirror/autocomplete": "6.15.0",
"@codemirror/commands": "6.3.3",
"@codemirror/language": "6.10.1",
"@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",
"@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": "7.108.0",
"@sentry/react": "7.108.0",
"@tailwindcss/container-queries": "0.1.1",
"@tanstack/react-query": "4.36.1",
"@tanstack/react-table": "8.11.7",
"@teable/common-i18n": "workspace:^",
"@teable/core": "workspace:^",
"@teable/icons": "workspace:^",
"@teable/next-themes": "0.3.3",
"@teable/openapi": "workspace:^",
"@teable/sdk": "workspace:^",
"@teable/ui-lib": "workspace:^",
"allotment": "1.20.0",
"axios": "1.6.8",
"buffer": "6.0.3",
"class-variance-authority": "0.7.0",
"dayjs": "1.11.10",
"echarts": "5.5.0",
"emoji-mart": "5.5.2",
"eventsource-parser": "1.1.2",
"express": "4.19.1",
"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": "14.2.14",
"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",
"react": "18.3.1",
"react-confetti": "6.1.0",
"react-day-picker": "8.10.0",
"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-markdown": "9.0.1",
"react-resizable": "3.0.5",
"react-responsive-carousel": "3.2.23",
"react-rnd": "10.4.1",
"react-syntax-highlighter": "15.5.0",
"react-textarea-autosize": "8.5.3",
"react-use": "17.5.0",
"react-virtuoso": "4.7.10",
"recharts": "2.12.3",
"reconnecting-websocket": "4.4.0",
"reflect-metadata": "0.2.1",
"rehype-raw": "7.0.0",
"remark-gfm": "4.0.0",
"sharedb": "4.1.2",
"tailwind-scrollbar": "3.1.0",
"tailwindcss": "3.4.1",
"type-fest": "4.14.0",
"zod": "3.22.4",
"zod-i18n-map": "2.27.0",
"zod-validation-error": "3.0.3",
"zustand": "4.5.2"
}
}