{ "name": "xlog", "private": true, "description": "xLog is the best on-chain and open-source blogging community for everyone.", "license": "AGPL-3.0", "sideEffects": false, "scripts": { "build": "next build", "dev": "next -p 2222", "test-e2e": "playwright test", "start": "node server.js", "prepare": "husky install", "prisma:migrate:dev": "prisma migrate dev", "prisma:migrate:deploy": "prisma migrate deploy --preview-feature", "prisma:migrate:status": "prisma migrate status --preview-feature", "prisma:migrate:resolve": "prisma migrate resolve --preview-feature", "prisma:generate": "prisma generate", "prisma:studio": "prisma studio", "docker:db": "docker-compose -f docker-compose.db.yml up -d", "spell-check": "cspell lint . --no-progress", "analyze": "NODE_ENV=production ANALYZE=true BUNDLE_ANALYZE=browser next build" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --cache --fix", "prettier --ignore-unknown --ignore-path ./.gitignore --write " ] }, "dependencies": { "@codemirror/commands": "6.2.4", "@codemirror/lang-markdown": "6.1.1", "@codemirror/language": "6.6.0", "@codemirror/language-data": "6.3.1", "@codemirror/state": "6.2.0", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.11.0", "@crossbell/connect-kit": "0.0.81", "@crossbell/contract": "0.0.81", "@crossbell/indexer": "0.0.81", "@crossbell/notification": "0.0.81", "@crossbell/ui": "0.0.81", "@crossbell/util-hooks": "0.0.81", "@ddietr/codemirror-themes": "1.4.1", "@dqbd/tiktoken": "^1.0.7", "@emoji-mart/data": "1.1.2", "@emoji-mart/react": "1.1.1", "@floating-ui/react": "^0.24.0", "@headlessui/react": "1.7.14", "@heroicons/react": "2.0.17", "@iconify-json/mingcute": "^1.1.6", "@lezer/highlight": "^1.1.4", "@mantine/core": "^6.0.10", "@monaco-editor/react": "4.5.1", "@popperjs/core": "^2.11.7", "@prisma/client": "^4.13.0", "@tanstack/react-query": "4.29.5", "@tanstack/react-query-devtools": "4.29.6", "@tanstack/react-query-persist-client": "4.29.5", "@uiw/codemirror-extensions-events": "4.19.16", "@urql/core": "4.0.7", "ahooks": "^3.7.7", "aplayer-react": "^1.1.0", "canvas-confetti": "^1.6.0", "chroma-js": "^2.4.2", "clsx": "1.2.1", "crossbell.js": "0.19.9", "dayjs": "1.11.7", "dotenv": "16.0.3", "emoji-mart": "5.5.2", "fast-average-color": "^9.3.0", "fast-deep-equal": "3.1.3", "hast-util-to-html": "^8.0.4", "hast-util-to-text": "^3.1.2", "i18next": "^22.4.15", "i18next-browser-languagedetector": "^7.0.1", "i18next-resources-to-backend": "^1.1.3", "idb-keyval": "6.2.1", "immer": "10.0.1", "ioredis": "5.3.2", "isomorphic-dompurify": "^1.4.0", "js-yaml": "4.1.0", "jsonfeed-to-rss": "^3.0.7", "katex": "^0.16.7", "langchain": "^0.0.71", "lottie-react": "^2.4.0", "mdast-util-to-hast": "^12.3.0", "mdast-util-to-string": "3.2.0", "mdast-util-toc": "6.1.1", "medium-zoom": "1.0.8", "mermaid": "10.1.0", "nanoid": "4.0.2", "next": "13.4.1", "next-i18next": "^13.2.2", "nextjs-progressbar": "0.0.16", "node-id3": "^0.2.6", "pangu": "^4.0.7", "pinyin": "3.0.0-alpha.5", "prismjs": "1.29.0", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "7.43.9", "react-hot-toast": "2.4.1", "react-i18next": "^12.2.2", "react-parallax-tilt": "^1.7.137", "react-popper": "^2.3.0", "react-scroll": "1.8.9", "react-sortablejs": "6.1.4", "react-string-replace": "^1.1.0", "react-virtuoso": "4.3.5", "refractor": "4.8.1", "rehype-autolink-headings": "6.1.1", "rehype-infer-description-meta": "^1.1.0", "rehype-katex": "^6.0.3", "rehype-prism-plus": "1.5.1", "rehype-raw": "6.1.1", "rehype-react": "7.2.0", "rehype-rewrite": "^3.0.6", "rehype-sanitize": "5.0.1", "rehype-slug": "5.1.0", "rehype-stringify": "9.0.3", "remark-breaks": "^3.0.2", "remark-directive": "2.0.1", "remark-directive-rehype": "0.4.2", "remark-frontmatter": "4.0.1", "remark-gfm": "3.0.1", "remark-math": "^5.1.1", "remark-parse": "10.0.1", "remark-rehype": "10.1.0", "remark-stringify": "10.0.2", "remove-markdown": "0.5.0", "serialize-javascript": "^6.0.1", "sharp": "0.32.1", "sortablejs": "1.15.0", "tailwind-merge": "^1.12.0", "tailwind-scrollbar-hide": "^1.1.7", "tailwindcss-animate": "^1.0.5", "unidata.js": "0.7.20", "unified": "10.1.2", "unist-builder": "3.0.1", "unist-util-visit": "4.1.2", "use-onclickoutside": "0.4.1", "uuid": "9.0.0", "wagmi": "0.12.13", "zustand": "^4.3.8" }, "devDependencies": { "@iconify/tailwind": "^0.1.2", "@next/bundle-analyzer": "13.4.1", "@playwright/test": "1.33.0", "@trivago/prettier-plugin-sort-imports": "4.1.1", "@types/canvas-confetti": "^1.6.0", "@types/chroma-js": "^2.4.0", "@types/cookie": "0.5.1", "@types/hast": "2.3.4", "@types/js-yaml": "4.0.5", "@types/katex": "^0.16.0", "@types/mdast": "^3.0.11", "@types/mjml": "4.7.1", "@types/node": "20.1.0", "@types/pangu": "^4.0.0", "@types/prismjs": "1.26.0", "@types/react": "18.2.6", "@types/react-dom": "18.2.4", "@types/react-infinite-scroller": "1.2.3", "@types/react-scroll": "1.8.7", "@types/remove-markdown": "0.3.1", "@types/serialize-javascript": "^5.0.2", "@types/sortablejs": "1.15.1", "@types/ua-parser-js": "0.7.36", "@types/uuid": "9.0.1", "autoprefixer": "10.4.14", "babel-loader": "^9.1.2", "cspell": "^6.31.1", "esbuild": "0.17.18", "esbuild-register": "3.4.2", "eslint": "8.40.0", "eslint-config-next": "13.4.1", "eslint-plugin-import": "2.27.5", "eslint-plugin-unused-imports": "2.0.0", "husky": "8.0.3", "lint-staged": "13.2.2", "next-pwa": "^5.6.0", "postcss-import": "15.1.0", "prettier": "2.8.8", "prettier-package-json": "2.8.0", "prisma": "^4.13.0", "tailwindcss": "3.3.2", "typescript": "5.0.4" }, "engines": { "node": ">=15" }, "nextBundleAnalysis": { "budget": 358400, "budgetPercentIncreaseRed": 20, "minimumChangeThreshold": 0, "showDetails": true } }