{
  "name": "pl-fe",
  "displayName": "pl-fe",
  "version": "0.0.1",
  "type": "module",
  "description": "Mastodon-compatible social media front-end",
  "homepage": "https://codeberg.org/mkljczk/pl-fe",
  "repository": {
    "type": "git",
    "url": "https://codeberg.org/mkljczk/pl-fe"
  },
  "keywords": [
    "fediverse",
    "pleroma"
  ],
  "bugs": {
    "url": "https://codeberg.org/mkljczk/pl-fe/issues"
  },
  "scripts": {
    "start": "npx vite serve",
    "dev": "${npm_execpath} run start",
    "build": "npx vite build --emptyOutDir",
    "preview": "npx vite preview",
    "audit:fix": "npx yarn-audit-fix",
    "i18n": "npx formatjs extract 'src/**/*.{ts,tsx}' --ignore '**/*.d.ts' --out-file build/messages.json && npx formatjs compile build/messages.json --out-file src/locales/en.json",
    "test": "npx vitest",
    "test:coverage": "${npm_execpath} run test --coverage",
    "test:all": "${npm_execpath} run test:coverage && ${npm_execpath} run lint",
    "lint": "${npm_execpath} run lint:js && ${npm_execpath} run lint:sass",
    "lint:js": "npx eslint --ext .js,.jsx,.cjs,.mjs,.ts,.tsx . --cache",
    "lint:sass": "npx stylelint src/styles/**/*.scss",
    "precommit": "lint-staged"
  },
  "license": "AGPL-3.0-or-later",
  "browserslist": [
    "> 0.5%",
    "last 2 versions",
    "not dead"
  ],
  "dependencies": {
    "@emoji-mart/data": "^1.2.1",
    "@floating-ui/react": "^0.27.2",
    "@fontsource/inter": "^5.1.1",
    "@fontsource/noto-sans-javanese": "^5.1.1",
    "@fontsource/roboto-mono": "^5.1.1",
    "@fontsource/tajawal": "^5.1.1",
    "@lexical/code": "^0.38.2",
    "@lexical/hashtag": "^0.38.2",
    "@lexical/link": "^0.38.2",
    "@lexical/list": "^0.38.2",
    "@lexical/markdown": "^0.38.2",
    "@lexical/react": "^0.38.2",
    "@lexical/rich-text": "^0.38.2",
    "@lexical/selection": "^0.38.2",
    "@lexical/utils": "^0.38.2",
    "@mkljczk/url-purify": "^0.0.5",
    "@phosphor-icons/core": "^2.1.1",
    "@reach/combobox": "^0.18.0",
    "@reach/rect": "^0.18.0",
    "@reach/tabs": "^0.18.0",
    "@reduxjs/toolkit": "^2.5.0",
    "@sentry/browser": "^8.47.0",
    "@sentry/react": "^8.47.0",
    "@tailwindcss/aspect-ratio": "^0.4.2",
    "@tailwindcss/forms": "^0.5.10",
    "@tailwindcss/typography": "^0.5.16",
    "@tanstack/react-pacer": "^0.16.4",
    "@tanstack/react-query": "^5.62.11",
    "@tanstack/react-router": "^1.141.6",
    "@tanstack/react-router-devtools": "^1.141.6",
    "@transfem-org/sfm-js": "^0.24.6",
    "@twemoji/svg": "^15.0.0",
    "@uidotdev/usehooks": "^2.4.1",
    "@vitejs/plugin-react": "^4.3.4",
    "@yornaath/batshit": "^0.11.1",
    "abortcontroller-polyfill": "^1.7.8",
    "autoprefixer": "^10.4.21",
    "blurhash": "^2.0.5",
    "bowser": "^2.11.0",
    "browserslist": "^4.24.4",
    "browserslist-to-esbuild": "^2.1.1",
    "clsx": "^2.1.1",
    "core-js": "^3.39.0",
    "cryptocurrency-icons": "^0.18.1",
    "cssnano": "^6.0.0",
    "detect-passive-events": "^2.0.0",
    "emoji-datasource": "15.0.1",
    "emoji-mart": "^5.6.0",
    "exifr": "^7.1.3",
    "fast-average-color": "^9.5.0",
    "fasttext.wasm.js": "^1.0.0",
    "flexsearch": "^0.7.43",
    "fuzzysort": "^3.1.0",
    "graphemesplit": "^2.4.4",
    "html-react-parser": "^5.2.2",
    "immutable": "^5.0.3",
    "intersection-observer": "^0.12.2",
    "intl-messageformat": "^10.7.10",
    "intl-pluralrules": "^2.0.1",
    "isomorphic-dompurify": "^2.19.0",
    "leaflet": "^1.8.0",
    "lexical": "^0.38.2",
    "line-awesome": "^1.3.0",
    "localforage": "^1.10.0",
    "lodash": "^4.17.21",
    "mini-css-extract-plugin": "^2.9.2",
    "mutative": "^1.1.0",
    "path-browserify": "^1.0.1",
    "pl-api": "workspace:*",
    "postcss": "^8.5.3",
    "process": "^0.11.10",
    "punycode": "^2.1.1",
    "qrcode.react": "^4.2.0",
    "query-string": "^9.2.2",
    "react": "^18.3.1",
    "react-color": "^2.19.3",
    "react-datepicker": "^8.3.0",
    "react-dom": "^18.3.1",
    "react-error-boundary": "^4.1.2",
    "react-helmet-async": "^2.0.5",
    "react-hot-toast": "^2.5.2",
    "react-inlinesvg": "^4.1.8",
    "react-intl": "^7.0.4",
    "react-motion": "^0.5.2",
    "react-redux": "^9.0.4",
    "react-sparklines": "^1.7.0",
    "react-sticky-box": "^2.0.5",
    "react-swipeable-views": "^0.14.0",
    "react-virtuoso": "^4.13.0",
    "redux": "^5.0.1",
    "redux-thunk": "^3.1.0",
    "reselect": "^5.1.1",
    "resize-observer": "^1.0.4",
    "sass-embedded": "^1.93.3",
    "stringz": "^2.1.0",
    "tabbable": "^6.2.0",
    "tiny-queue": "^0.2.1",
    "use-mutative": "^1.2.1",
    "util": "^0.12.5",
    "valibot": "^1.2.0",
    "zustand": "^5.0.3",
    "zustand-mutative": "^1.2.0"
  },
  "devDependencies": {
    "@formatjs/cli": "^6.3.14",
    "@jedmao/redux-mock-store": "^3.0.5",
    "@sentry/types": "^8.47.0",
    "@stylistic/eslint-plugin": "^3.1.0",
    "@testing-library/jest-dom": "^6.6.3",
    "@testing-library/react": "^16.1.0",
    "@testing-library/react-hooks": "^8.0.1",
    "@testing-library/user-event": "^14.5.2",
    "@types/dom-chromium-ai": "^0.0.11",
    "@types/leaflet": "^1.9.15",
    "@types/lodash": "^4.17.13",
    "@types/path-browserify": "^1.0.3",
    "@types/react": "^18.3.18",
    "@types/react-color": "^3.0.13",
    "@types/react-dom": "^18.3.5",
    "@types/react-motion": "^0.0.40",
    "@types/react-router-dom": "^5.3.3",
    "@types/react-sparklines": "^1.7.5",
    "@types/react-swipeable-views": "^0.13.6",
    "@types/redux-mock-store": "^1.5.0",
    "@typescript-eslint/eslint-plugin": "^8.24.1",
    "@typescript-eslint/parser": "^8.24.0",
    "eslint": "^8.57.1",
    "eslint-import-resolver-typescript": "^4.0.0",
    "eslint-plugin-compat": "^6.0.2",
    "eslint-plugin-formatjs": "^5.2.8",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-jsdoc": "^50.6.1",
    "eslint-plugin-jsx-a11y": "^6.10.2",
    "eslint-plugin-promise": "^7.2.1",
    "eslint-plugin-react": "^7.37.3",
    "eslint-plugin-react-hooks": "^4.6.2",
    "eslint-plugin-tailwindcss": "^3.17.5",
    "fake-indexeddb": "^6.0.0",
    "globals": "^15.14.0",
    "jsdom": "^25.0.1",
    "rollup-plugin-bundle-stats": "^4.17.0",
    "stylelint": "^16.12.0",
    "stylelint-config-standard-scss": "^12.0.0",
    "tailwindcss": "^3.4.17",
    "tslib": "^2.8.1",
    "type-fest": "^4.30.1",
    "typescript": "5.7.3",
    "vite": "^5.4.21",
    "vite-plugin-checker": "^0.10.0",
    "vite-plugin-compile-time": "^0.3.2",
    "vite-plugin-html": "^3.2.2",
    "vite-plugin-pwa": "^0.21.1",
    "vite-plugin-require": "^1.2.14",
    "vite-plugin-static-copy": "^2.3.2",
    "vitest": "^2.1.9"
  },
  "lint-staged": {
    "*.{js,cjs,mjs,ts,tsx}": "eslint --cache",
    "src/styles/**/*.scss": "stylelint"
  }
}
