{
  "name": "@remark42/app",
  "version": "0.16.0",
  "license": "MIT",
  "scripts": {
    "dev": "cross-env REMARK_URL=http://127.0.0.1:8080 pnpm dev:custom",
    "dev:demo": "cross-env REMARK_API_BASE_URL=https://demo.remark42.com pnpm dev:custom",
    "dev:custom": "webpack serve --mode development",
    "build": "webpack --mode production",
    "build:analyze": "webpack --mode production --analyze",
    "lint": "run-p lint:*",
    "lint:styles": "stylelint \"app/**/*.css\" \"templates/**\"",
    "lint:scripts": "eslint --max-warnings=0 \"**/*.{ts?(x),?(c)js,mjs}\"",
    "test": "jest",
    "test:unit": "node --test \"app/**/*.unit.test.ts\"",
    "coverage": "jest --coverage",
    "format": "prettier --write \"./**/*.{js,mjs,ts,tsx,css,html}\"",
    "size-check": "cross-env NODE_ENV=production npm run build && size-limit",
    "type-check": "tsc -p tsconfig.json --noEmit",
    "translation-check": "run-s translation:extract translation:check",
    "translation:extract": "formatjs extract --out-file=./extracted-messages/messages.json \"**/*.{ts,tsx}\" --ignore=\"**/*.d.ts\" --ignore=\"**/*.{test,spec}.{ts,tsx}\" --ignore=\"app/tests/**\" --ignore=\"app/__mocks__/**\" --ignore=\"app/__stubs__/**\"",
    "translation:generate": "node ./tasks/generateDictionary.js",
    "translation:check": "node ./tasks/checkTranslation.js",
    "prepare": "if [ -z \"$CI\" ]; then cd ../../.. && husky install frontend/.husky; else echo \"Skip Husky Hooks\"; fi"
  },
  "engines": {
    "node": ">=24",
    "pnpm": ">=10"
  },
  "packageManager": "pnpm@10.10.0",
  "dependencies": {
    "@github/markdown-toolbar-element": "^2.2.3",
    "@github/text-expander-element": "^2.9.4",
    "@ungap/custom-elements": "^1.3.0",
    "clsx": "^2.1.1",
    "lodash-es": "^4.18.1",
    "node-emoji": "^1.11.0",
    "preact": "10.29.8",
    "redux": "^4.2.0",
    "redux-thunk": "^2.4.1"
  },
  "devDependencies": {
    "@babel/core": "^8.0.1",
    "@babel/preset-env": "^8.0.2",
    "@babel/preset-react": "^8.0.1",
    "@babel/preset-typescript": "^8.0.1",
    "@formatjs/cli": "^5.0.2",
    "@size-limit/file": "^13.0.3",
    "@testing-library/jest-dom": "^7.0.1",
    "@testing-library/preact": "3.2.4",
    "@types/jest": "^30.0.0",
    "@types/lodash-es": "^4.17.12",
    "@types/node": "^26.2.0",
    "@types/node-emoji": "^1.8.2",
    "@types/redux-mock-store": "^1.5.0",
    "@types/webpack-env": "^1.18.8",
    "@typescript-eslint/eslint-plugin": "^8.67.0",
    "@typescript-eslint/parser": "^8.67.0",
    "babel-jest": "^30.4.1",
    "babel-loader": "^10.1.1",
    "babel-plugin-istanbul": "7.0.1",
    "clean-webpack-plugin": "^4.0.0",
    "confusing-browser-globals": "^1.0.11",
    "cross-env": "^10.1.0",
    "css-loader": "^7.1.4",
    "css-minimizer-webpack-plugin": "^8.0.0",
    "dotenv": "^17.4.2",
    "eslint": "^9.39.1",
    "eslint-config-preact": "^2.0.0",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-import": "^2.32.0",
    "eslint-plugin-jsx-a11y": "^6.10.2",
    "eslint-plugin-prettier": "^5.5.6",
    "file-loader": "^6.2.0",
    "fork-ts-checker-webpack-plugin": "^9.1.0",
    "html-webpack-plugin": "^5.6.8",
    "husky": "^8.0.1",
    "identity-obj-proxy": "^3.0.0",
    "incstr": "^1.2.3",
    "jest": "^30.4.2",
    "jest-environment-jsdom": "^30.4.1",
    "jest-fetch-mock": "^4.2.0",
    "jest-localstorage-mock": "^2.4.26",
    "lint-staged": "^13.0.3",
    "mini-css-extract-plugin": "^2.10.2",
    "npm-run-all": "^4.1.5",
    "nyc": "17.1.0",
    "postcss": "^8.5.26",
    "postcss-html": "^1.8.1",
    "postcss-loader": "^8.2.1",
    "postcss-preset-env": "^7.7.2",
    "prettier": "^3.9.6",
    "redux-mock-store": "^1.5.5",
    "size-limit": "^13.0.3",
    "style-loader": "^4.0.0",
    "stylelint": "^17.14.1",
    "stylelint-config-standard": "^40.0.0",
    "stylelint-declaration-strict-value": "^1.11.1",
    "stylelint-value-no-unknown-custom-properties": "^6.1.1",
    "tsconfig-paths-webpack-plugin": "^4.2.0",
    "typescript": "^5.9.3",
    "webpack": "^5.109.2",
    "webpack-bundle-analyzer": "^5.3.1",
    "webpack-cli": "^7.2.2",
    "webpack-dev-server": "^5.2.5"
  },
  "pnpm": {
    "overrides": {
      "decode-uri-component@<0.2.1": ">=0.2.1",
      "loader-utils@>=2.0.0 <2.0.3": ">=2.0.3 <3.0.0",
      "loader-utils@>=2.0.0 <2.0.4": ">=2.0.4 <3.0.0",
      "json5@<1.0.2": ">=1.0.2",
      "json5@>=2.0.0 <2.2.2": ">=2.2.2",
      "tough-cookie@<4.1.3": ">=4.1.3",
      "micromatch@<4.0.8": ">=4.0.8",
      "esbuild@<=0.24.2": ">=0.25.0",
      "word-wrap@<1.2.4": ">=1.2.4",
      "cookie@<0.7.0": ">=0.7.0",
      "@babel/runtime-corejs3@<7.26.10": ">=7.26.10 <8.0.0",
      "@babel/runtime@<7.26.10": ">=7.26.10 <8.0.0",
      "@babel/helpers@<7.26.10": ">=7.26.10 <8.0.0",
      "cross-spawn@<6.0.6": ">=6.0.6",
      "cross-spawn@>=7.0.0 <7.0.5": ">=7.0.5",
      "tmp@<=0.2.3": ">=0.2.4",
      "form-data@>=4.0.0 <4.0.4": ">=4.0.4",
      "nanoid@>=4.0.0 <5.0.9": ">=5.0.9",
      "glob@>=10.2.0 <10.5.0": ">=10.5.0 <11.0.0",
      "diff@>=4.0.0 <4.0.4": ">=4.0.4",
      "semver@>=2.0.0-alpha <5.7.2": ">=5.7.2",
      "semver@>=7.0.0 <7.5.2": ">=7.5.2",
      "semver@>=6.0.0 <6.3.1": ">=6.3.1",
      "serialize-javascript@<=7.0.2": ">=7.0.3",
      "flatted@<3.4.0": ">=3.4.0",
      "flatted@<=3.4.1": ">=3.4.2",
      "lodash-es@>=4.0.0 <=4.17.23": ">=4.18.0",
      "lodash@>=4.0.0 <=4.17.23": ">=4.18.0",
      "lodash-es@<=4.17.23": ">=4.18.0",
      "lodash@<=4.17.23": ">=4.18.0",
      "serialize-javascript@>=6.0.0 <6.0.2": ">=6.0.2",
      "@xmldom/xmldom@<0.8.12": ">=0.8.12",
      "@babel/traverse@<7.23.2": ">=7.23.2 <8.0.0",
      "@xmldom/xmldom@<0.8.13": ">=0.8.13",
      "@tootallnate/once@<2.0.1": ">=2.0.1",
      "serialize-javascript@>=5.0.0 <7.0.5": ">=7.0.5",
      "uuid@<11.1.1": ">=11.1.1",
      "@babel/plugin-transform-modules-systemjs@>=7.12.0 <=7.29.3": ">=7.29.4 <8.0.0",
      "lodash@>=4.0.0 <=4.17.22": ">=4.17.23",
      "shell-quote@>=1.1.0 <=1.8.3": ">=1.8.4",
      "tmp@<0.2.6": ">=0.2.6",
      "form-data@>=4.0.0 <4.0.6": ">=4.0.6",
      "launch-editor@<=2.14.0": ">=2.14.1",
      "@babel/core@<=7.29.0": ">=7.29.6 <8.0.0",
      "webpack-dev-server@<5.2.6": ">=5.2.6 <6.0.0",
      "http-proxy-middleware@>=0.16.0 <2.0.10": ">=2.0.10 <3.0.0",
      "yaml@>=1.0.0 <2.0.0": ">=1.10.3 <2.0.0",
      "yaml@>=2.0.0 <3.0.0": ">=2.9.0 <3.0.0",
      "js-yaml@>=3.0.0 <4.0.0": ">=3.15.1 <4.0.0",
      "js-yaml@>=4.0.0 <5.0.0": ">=5.2.2 <6.0.0",
      "minimatch@>=3.0.0 <4.0.0": ">=3.1.3 <4.0.0",
      "minimatch@>=9.0.0 <10.0.0": ">=9.0.7 <10.0.0",
      "ajv@>=8.0.0 <9.0.0": ">=8.18.0 <9.0.0",
      "ws@>=7.0.0 <8.0.0": ">=7.5.11 <8.0.0",
      "ws@>=8.0.0 <9.0.0": ">=8.21.0 <9.0.0",
      "brace-expansion@>=1.0.0 <2.0.0": ">=1.1.18 <2.0.0",
      "brace-expansion@>=2.0.0 <3.0.0": ">=2.0.2 <3.0.0",
      "brace-expansion@>=4.0.0 <6.0.0": ">=5.0.9 <6.0.0",
      "fast-uri": ">=4.1.4 <5.0.0",
      "nanoid@>=3.0.0 <4.0.0": ">=3.3.18 <4.0.0",
      "postcss@<8.5.23": ">=8.5.23 <9.0.0",
      "svgo": ">=4.0.2 <5.0.0",
      "undici@>=7.0.0 <8.0.0": ">=7.29.0 <8.0.0",
      "body-parser@<1.20.6": ">=1.20.6 <2.0.0",
      "preact": "10.29.8",
      "@types/minimatch": "5.1.2",
      "@babel/core": "^8.0.1",
      "eslint-config-preact>@babel/core": "^7.29.7"
    }
  }
}
