{ "name": "xlog", "private": true, "description": "xLog is the best on-chain and open-source blogging community for everyone.", "license": "AGPL-3.0", "sideEffects": false, "packageManager": "pnpm@8.6.2", "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", "postinstall": "prisma generate", "lint": "next lint" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --cache --fix", "prettier --ignore-unknown --ignore-path ./.gitignore --write " ] }, "dependencies": { "@birdgg/react-github": "0.2.3", "@codemirror/autocomplete": "^6.8.1", "@codemirror/commands": "6.2.4", "@codemirror/lang-markdown": "6.2.0", "@codemirror/language": "6.8.0", "@codemirror/language-data": "6.3.1", "@codemirror/state": "6.2.1", "@codemirror/theme-one-dark": "6.1.2", "@codemirror/view": "6.14.0", "@crossbell/connect-kit": "1.4.8", "@crossbell/contract": "1.4.8", "@crossbell/indexer": "1.4.8", "@crossbell/notification": "1.4.8", "@crossbell/ui": "1.4.8", "@crossbell/util-hooks": "1.4.4", "@crossbell/util-metadata": "1.4.0", "@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.3", "@headlessui/react": "1.7.15", "@heroicons/react": "2.0.18", "@iconify-json/mingcute": "1.1.7", "@lezer/highlight": "1.1.6", "@mantine/core": "6.0.14", "@mantine/dates": "6.0.14", "@monaco-editor/react": "4.5.1", "@popperjs/core": "2.11.8", "@prisma/client": "4.16.1", "@supercharge/request-ip": "1.2.0", "@tanstack/react-query": "4.29.15", "@tanstack/react-query-devtools": "4.29.15", "@tanstack/react-query-persist-client": "4.29.15", "@uiw/codemirror-extensions-events": "4.21.7", "@urql/core": "4.0.10", "ahooks": "3.7.7", "aplayer": "^1.10.1", "async-lock": "1.4.0", "canvas": "2.11.2", "canvas-confetti": "1.6.0", "chroma-js": "2.4.2", "clsx": "1.2.1", "crossbell": "1.4.0", "dayjs": "1.11.8", "dotenv": "16.3.1", "emoji-mart": "5.5.2", "fast-average-color": "9.3.0", "fast-deep-equal": "3.1.3", "hast-util-from-html": "1.0.2", "hast-util-to-html": "8.0.4", "hast-util-to-text": "3.1.2", "i18next": "23.2.3", "i18next-resources-to-backend": "1.1.4", "idb-keyval": "6.2.1", "immer": "10.0.2", "ioredis": "5.3.2", "isomorphic-dompurify": "1.6.0", "js-yaml": "4.1.0", "jsdom": "22.1.0", "jsonfeed-to-rss": "3.0.7", "katex": "0.16.7", "langchain": "0.0.96", "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.2.3", "nanoid": "4.0.2", "next": "13.4.7", "node-id3": "0.2.6", "pangu": "4.0.7", "path-to-regexp": "6.2.1", "pinyin-pro": "3.15.2", "plaiceholder": "3.0.0", "prismjs": "1.29.0", "qier-progress": "1.0.4", "qrcode.react": "3.1.0", "rc-dplayer": "0.1.0", "react": "18.2.0", "react-dom": "18.2.0", "react-hook-form": "7.45.0", "react-hot-toast": "2.4.1", "react-i18next": "13.0.1", "react-parallax-tilt": "1.7.149", "react-popper": "2.3.0", "react-sortablejs": "6.1.4", "react-string-replace": "1.1.1", "react-tweet": "2.0.2", "react-virtuoso": "4.3.11", "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.3", "remark-directive": "2.0.1", "remark-directive-rehype": "0.4.2", "remark-emoji": "3.1.2", "remark-frontmatter": "4.0.1", "remark-gfm": "3.0.1", "remark-math": "5.1.1", "remark-parse": "10.0.2", "remark-rehype": "10.1.0", "remark-stringify": "10.0.3", "remove-markdown": "0.5.0", "serialize-javascript": "6.0.1", "sharp": "0.32.1", "sortablejs": "1.15.0", "tailwind-merge": "1.13.2", "tailwind-scrollbar-hide": "1.1.7", "tailwindcss-animate": "1.0.6", "unified": "10.1.2", "unist-builder": "3.0.1", "unist-util-visit": "4.1.2", "use-onclickoutside": "0.4.1", "uuid": "9.0.0", "viem": "1.1.7", "wagmi": "1.3.0", "zustand": "4.3.8" }, "devDependencies": { "@ducanh2912/next-pwa": "9.0.1", "@iconify/tailwind": "0.1.3", "@next/bundle-analyzer": "13.4.7", "@trivago/prettier-plugin-sort-imports": "4.1.1", "@types/async-lock": "1.4.0", "@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.3.2", "@types/pangu": "4.0.0", "@types/prismjs": "1.26.0", "@types/react": "18.2.14", "@types/react-dom": "18.2.6", "@types/react-infinite-scroller": "1.2.3", "@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.2", "autoprefixer": "10.4.14", "babel-loader": "9.1.2", "cspell": "6.31.1", "esbuild": "0.18.10", "esbuild-register": "3.4.2", "eslint": "8.43.0", "eslint-config-next": "13.4.7", "eslint-plugin-import": "2.27.5", "eslint-plugin-react": "7.32.2", "eslint-plugin-unused-imports": "2.0.0", "husky": "8.0.3", "lint-staged": "13.2.2", "postcss-import": "15.1.0", "postcss-prune-var": "1.1.1", "prettier": "2.8.8", "prettier-package-json": "2.8.0", "prisma": "4.16.1", "tailwindcss": "3.3.2", "tailwindcss-variable-colors": "0.0.1", "typescript": "5.1.3" }, "engines": { "node": ">=15" }, "nextBundleAnalysis": { "budget": 358400, "budgetPercentIncreaseRed": 20, "minimumChangeThreshold": 0, "showDetails": true } }