{ "version": "0.0.0", "scripts": { "dev": "vite", "build": "rimraf build && tsc && vite build", "preview": "vite preview", "lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'", "fmt": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'" }, "eslintConfig": { "parser": "@typescript-eslint/parser", "extends": [ "preact", "plugin:@typescript-eslint/recommended" ], "ignorePatterns": [ "build/" ], "rules": { "@typescript-eslint/explicit-module-boundary-types": "off" } }, "dependencies": { "preact": "^10.5.13" }, "devDependencies": { "@fontsource/fira-mono": "^4.4.5", "@fontsource/open-sans": "^4.4.5", "@hcaptcha/react-hcaptcha": "^0.3.6", "@preact/preset-vite": "^2.0.0", "@styled-icons/bootstrap": "^10.34.0", "@styled-icons/feather": "^10.34.0", "@traptitech/markdown-it-katex": "^3.4.3", "@traptitech/markdown-it-spoiler": "^1.1.6", "@types/markdown-it": "^12.0.2", "@types/node": "^15.12.4", "@types/preact-i18n": "^2.3.0", "@types/prismjs": "^1.16.5", "@types/react-helmet": "^6.1.1", "@types/react-router-dom": "^5.1.7", "@types/styled-components": "^5.1.10", "@types/twemoji": "^12.1.1", "@typescript-eslint/eslint-plugin": "^4.27.0", "@typescript-eslint/parser": "^4.27.0", "classnames": "^2.3.1", "dayjs": "^1.10.5", "detect-browser": "^5.2.0", "eslint": "^7.28.0", "eslint-config-preact": "^1.1.4", "highlight.js": "^11.0.1", "idb": "^6.1.2", "localforage": "^1.9.0", "markdown-it": "^12.0.6", "markdown-it-emoji": "^2.0.0", "markdown-it-sub": "^1.0.0", "markdown-it-sup": "^1.0.0", "preact-i18n": "^2.4.0-preactx", "prettier": "^2.3.1", "prismjs": "^1.23.0", "react-device-detect": "^1.17.0", "react-helmet": "^6.1.0", "react-hook-form": "6.3.0", "react-overlapping-panels": "1.2.1", "react-redux": "^7.2.4", "react-router-dom": "^5.2.0", "react-tippy": "^1.4.0", "redux": "^4.1.0", "revolt.js": "4.3.0", "rimraf": "^3.0.2", "sass": "^1.35.1", "styled-components": "^5.3.0", "twemoji": "^13.1.0", "typescript": "^4.3.2", "ulid": "^2.3.0", "vite": "^2.3.7", "vite-plugin-pwa": "^0.8.1" } }