{
  "name": "@plone/volto",
  "description": "Volto",
  "maintainers": [
    {
      "name": "Plone Foundation",
      "email": "plone-developers@lists.sourceforge.net",
      "url": "http://plone.org"
    }
  ],
  "license": "MIT",
  "version": "18.23.0",
  "repository": {
    "type": "git",
    "url": "git@github.com:plone/volto.git"
  },
  "customizationPaths": [
    "src/customizations/"
  ],
  "bugs": {
    "url": "https://github.com/plone/volto/issues",
    "email": "plone-developers@lists.sourceforge.net"
  },
  "homepage": "https://plone.org",
  "keywords": [
    "volto",
    "plone",
    "react"
  ],
  "coreAddons": {
    "volto-slate": {
      "package": "@plone/volto-slate"
    }
  },
  "main": "src/index.js",
  "types": "types/index.d.ts",
  "bundlewatch": {
    "files": [
      {
        "path": "build/public/static/js/*.js",
        "maxSize": "700kB"
      }
    ]
  },
  "jest": {
    "transform": {
      "^.+\\.js(x)?$": "babel-jest",
      "^.+\\.ts(x)?$": "ts-jest",
      "^.+\\.(png)$": "jest-file",
      "^.+\\.(jpg)$": "jest-file",
      "^.+\\.(svg)$": "./jest-svgsystem-transform.js"
    },
    "moduleNameMapper": {
      "@plone/volto/package.json": "<rootDir>/package.json",
      "@plone/volto/babel": "<rootDir>/babel.js",
      "@plone/volto/(.*)$": "<rootDir>/src/$1",
      "@plone/volto-slate/(.*)$": "<rootDir>/../volto-slate/src/$1",
      "@plone/registry/addon-registry$": "<rootDir>/node_modules/@plone/registry/dist/addon-registry/addon-registry.js",
      "@plone/registry/create-addons-loader$": "<rootDir>/node_modules/@plone/registry/dist/addon-registry/create-addons-loader.js",
      "@plone/registry": "<rootDir>/../registry/src",
      "@plone/registry/(.*)$": "<rootDir>/../registry/src/$1",
      "@plone/volto": "<rootDir>/src/index.js",
      "~/config": "<rootDir>/src/config",
      "~/../locales/${lang}.json": "<rootDir>/locales/en.json",
      "(.*)/locales/(.*)": "<rootDir>/locales/$2",
      "load-volto-addons": "<rootDir>/jest-addons-loader.js",
      "@package/(.*)$": "<rootDir>/src/$1",
      "@root/config": "<rootDir>/jest-addons-loader.js",
      "@root/(.*)$": "<rootDir>/src/$1",
      "@voltoconfig": "<rootDir>/jest-addons-loader.js",
      "\\.(css|less|scss|sass)$": "identity-obj-proxy"
    },
    "coverageThreshold": {
      "global": {
        "branches": 10,
        "functions": 10,
        "lines": 10,
        "statements": 10
      }
    },
    "setupFiles": [
      "./test-setup-globals.js",
      "./test-setup-config.jsx"
    ],
    "globalSetup": "./global-test-setup.js",
    "setupFilesAfterEnv": [
      "<rootDir>/jest-setup-afterenv.js"
    ],
    "globals": {
      "__DEV__": true
    },
    "testMatch": [
      "<rootDir>/__tests__/**/?(*.)(spec|test).{js,jsx,mjs,ts,tsx}",
      "<rootDir>/../**/?(*.)(spec|test).{js,jsx,mjs,ts,tsx}"
    ]
  },
  "stylelint": {
    "extends": [
      "stylelint-config-idiomatic-order"
    ],
    "plugins": [
      "stylelint-prettier"
    ],
    "overrides": [
      {
        "files": [
          "**/*.scss"
        ],
        "customSyntax": "postcss-scss"
      },
      {
        "files": [
          "**/*.less"
        ],
        "customSyntax": "postcss-less"
      },
      {
        "files": [
          "**/*.overrides"
        ],
        "customSyntax": "postcss-less"
      }
    ],
    "rules": {
      "prettier/prettier": true,
      "rule-empty-line-before": [
        "always-multi-line",
        {
          "except": [
            "first-nested"
          ],
          "ignore": [
            "after-comment"
          ]
        }
      ]
    },
    "ignoreFiles": "theme/themes/default/**/*.overrides"
  },
  "browserslist": [
    ">1%",
    "last 4 versions",
    "Firefox ESR",
    "not dead"
  ],
  "engines": {
    "node": "^20 || ^22"
  },
  "dependencies": {
    "@loadable/component": "5.14.1",
    "@loadable/server": "5.14.0",
    "@redux-devtools/extension": "^3.3.0",
    "classnames": "2.5.1",
    "connected-react-router": "6.8.0",
    "debug": "4.3.2",
    "decorate-component-with-props": "1.2.1",
    "dependency-graph": "0.10.0",
    "detect-browser": "5.1.0",
    "diff": "3.5.0",
    "express": "4.19.2",
    "filesize": "6",
    "github-slugger": "1.4.0",
    "history": "4.10.1",
    "hoist-non-react-statics": "3.3.2",
    "http-proxy-middleware": "2.0.1",
    "image-extensions": "1.1.0",
    "immutable": "3",
    "is-hotkey": "0.2.0",
    "is-url": "1.2.4",
    "jotai": "2.11.3",
    "jwt-decode": "2.2.0",
    "linkify-it": "3.0.2",
    "locale": "0.1.0",
    "lodash": "4.17.21",
    "lodash-move": "1.1.1",
    "moment": "2.29.4",
    "object-assign": "4.1.1",
    "prepend-http": "2",
    "pretty-bytes": "5.3.0",
    "prismjs": "1.27.0",
    "process": "^0.11.10",
    "promise-file-reader": "1.0.2",
    "prop-types": "15.7.2",
    "query-string": "7.1.0",
    "rc-time-picker": "3.7.3",
    "react": "18.2.0",
    "react-anchor-link-smooth-scroll": "1.0.12",
    "react-animate-height": "2.0.17",
    "react-beautiful-dnd": "13.0.0",
    "react-cookie": "4.1.1",
    "react-dates": "21.5.1",
    "react-detect-click-outside": "1.1.1",
    "react-dnd": "5.0.0",
    "react-dnd-html5-backend": "5.0.1",
    "react-dom": "18.2.0",
    "react-dropzone": "11.1.0",
    "react-fast-compare": "2.0.4",
    "react-image-gallery": "1.2.7",
    "react-intersection-observer": "9.1.0",
    "react-intl": "3.12.1",
    "react-intl-redux": "2.3.0",
    "react-medium-image-zoom": "3.0.15",
    "react-popper": "^2.3.0",
    "react-redux": "8.1.2",
    "react-router": "5.2.0",
    "react-router-config": "5.1.1",
    "react-router-dom": "5.2.0",
    "react-router-hash-link": "2.4.3",
    "react-select": "4.3.1",
    "react-select-async-paginate": "0.5.3",
    "react-side-effect": "2.1.2",
    "react-simple-code-editor": "0.7.1",
    "react-sortable-hoc": "2.0.0",
    "react-test-renderer": "18.2.0",
    "react-toastify": "5.5.0",
    "react-transition-group": "4.4.5",
    "react-virtualized": "9.22.3",
    "redux": "4.2.1",
    "redux-actions": "3.0.0",
    "redux-connect": "10.0.0",
    "redux-localstorage-simple": "2.5.1",
    "redux-mock-store": "1.5.4",
    "redux-thunk": "2.4.2",
    "rrule": "2.7.1",
    "semantic-ui-less": "2.4.1",
    "semantic-ui-react": "2.1.5",
    "serialize-javascript": "3.1.0",
    "slate": "0.100.0",
    "slate-hyperscript": "0.100.0",
    "slate-react": "0.98.4",
    "superagent": "3.8.2",
    "tlds": "1.203.1",
    "undoo": "0.5.0",
    "universal-cookie": "4.0.4",
    "universal-cookie-express": "4.0.3",
    "url": "^0.11.3",
    "use-deep-compare-effect": "1.8.1",
    "uuid": "^8.3.2",
    "@plone/registry": "2.5.4",
    "@plone/volto-slate": "18.5.0",
    "@plone/scripts": "3.10.1"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "@babel/eslint-parser": "7.22.15",
    "@babel/plugin-proposal-export-default-from": "7.18.10",
    "@babel/plugin-proposal-export-namespace-from": "7.18.9",
    "@babel/plugin-proposal-json-strings": "7.18.6",
    "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
    "@babel/plugin-proposal-throw-expressions": "7.18.6",
    "@babel/plugin-syntax-export-namespace-from": "7.8.3",
    "@babel/runtime": "7.20.6",
    "@babel/types": "7.20.5",
    "@dnd-kit/core": "6.0.8",
    "@dnd-kit/sortable": "7.0.2",
    "@dnd-kit/utilities": "3.2.2",
    "@fiverr/afterbuild-webpack-plugin": "^1.0.0",
    "@jest/globals": "^29.7.0",
    "@loadable/babel-plugin": "5.13.2",
    "@loadable/webpack-plugin": "5.15.2",
    "@sinonjs/fake-timers": "^6.0.1",
    "@storybook/addon-actions": "^8.0.4",
    "@storybook/addon-controls": "^8.0.4",
    "@storybook/addon-docs": "^8.0.4",
    "@storybook/addon-essentials": "^8.0.4",
    "@storybook/addon-links": "^8.0.4",
    "@storybook/addon-webpack5-compiler-babel": "3.0.3",
    "@storybook/react": "^8.0.4",
    "@storybook/react-webpack5": "^8.0.4",
    "@storybook/theming": "^8.0.4",
    "@testing-library/cypress": "10.0.1",
    "@testing-library/jest-dom": "6.4.2",
    "@testing-library/react": "14.2.0",
    "@testing-library/react-hooks": "8.0.1",
    "@types/history": "^4.7.11",
    "@types/jest": "^29.5.8",
    "@types/loadable__component": "^5.13.9",
    "@types/lodash": "^4.14.201",
    "@types/node": "^22.13.0",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "@types/react-router-dom": "^5.3.3",
    "@types/react-test-renderer": "18.0.7",
    "@types/uuid": "^9.0.2",
    "@typescript-eslint/eslint-plugin": "^7.7.0",
    "@typescript-eslint/parser": "^7.7.0",
    "@vitejs/plugin-react": "^4.3.4",
    "@vitest/ui": "^2.1.8",
    "autoprefixer": "10.4.8",
    "axe-core": "4.4.2",
    "babel-loader": "9.1.0",
    "babel-plugin-add-module-exports": "0.2.1",
    "babel-plugin-lodash": "3.3.4",
    "babel-plugin-react-intl": "5.1.17",
    "babel-plugin-root-import": "6.1.0",
    "babel-preset-razzle": "4.2.18",
    "bundlewatch": "0.3.3",
    "circular-dependency-plugin": "5.2.2",
    "css-loader": "5.2.7",
    "cypress": "13.13.2",
    "cypress-axe": "1.5.0",
    "cypress-file-upload": "5.0.8",
    "deep-freeze": "0.0.1",
    "eslint": "^8.57.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-config-react-app": "^7.0.1",
    "eslint-import-resolver-alias": "^1.1.2",
    "eslint-import-resolver-babel-plugin-root-import": "^1.1.1",
    "eslint-import-resolver-typescript": "^3.6.1",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-prettier": "^5.1.3",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-react-hooks": "^4.6.0",
    "full-icu": "1.4.0",
    "html-webpack-plugin": "5.5.0",
    "identity-obj-proxy": "3.0.0",
    "jest": "26.6.3",
    "jest-environment-jsdom": "^26",
    "jest-file": "1.0.0",
    "jiti": "^2.4.2",
    "jsdom": "^16.7.0",
    "jsonwebtoken": "9.0.0",
    "less": "3.11.1",
    "less-loader": "11.1.0",
    "lodash-webpack-plugin": "0.11.6",
    "mini-css-extract-plugin": "2.7.2",
    "moment-locales-webpack-plugin": "1.2.0",
    "postcss": "8.4.31",
    "postcss-flexbugs-fixes": "5.0.2",
    "postcss-less": "6.0.0",
    "postcss-load-config": "3.1.4",
    "postcss-loader": "7.0.2",
    "postcss-overrides": "3.1.4",
    "postcss-scss": "4.0.6",
    "prettier": "3.2.5",
    "razzle": "4.2.18",
    "razzle-dev-utils": "4.2.18",
    "razzle-plugin-scss": "4.2.18",
    "react-docgen-typescript-plugin": "^1.0.5",
    "react-error-overlay": "6.0.9",
    "react-is": "^18.2.0",
    "release-it": "^17.1.1",
    "semver": "^7.5.4",
    "start-server-and-test": "1.14.0",
    "storybook": "^8.0.4",
    "style-loader": "3.3.1",
    "stylelint": "^16.3.1",
    "stylelint-config-idiomatic-order": "10.0.0",
    "stylelint-prettier": "5.0.0",
    "svg-loader": "0.0.2",
    "svgo": "^3.0.0",
    "svgo-loader": "3.0.3",
    "terser-webpack-plugin": "5.3.6",
    "tmp": "0.2.1",
    "ts-jest": "^26.4.2",
    "ts-loader": "9.4.4",
    "typescript": "^5.7.3",
    "use-trace-update": "1.3.2",
    "vitest": "^3.0.4",
    "wait-on": "6.0.0",
    "webpack": "5.90.1",
    "webpack-bundle-analyzer": "4.10.1",
    "webpack-dev-server": "4.11.1",
    "webpack-node-externals": "3.0.0",
    "why": "0.6.2",
    "@plone/volto-coresandbox": "1.0.0",
    "@plone/types": "1.4.5"
  },
  "volta": {
    "node": "20.9.0"
  },
  "scripts": {
    "analyze": "BUNDLE_ANALYZE=true razzle build",
    "start": "make build-deps && razzle start",
    "start:coresandbox": "make build-deps && ADDONS=coresandbox razzle start",
    "build": "make build-deps && razzle build --noninteractive",
    "build:types": "tsc --project tsconfig.declarations.json",
    "vitest": "vitest",
    "coverage": "vitest run --coverage",
    "test": "razzle test --maxWorkers=50%",
    "test:ci": "CI=true NODE_ICU_DATA=node_modules/full-icu razzle test",
    "test:husky": "CI=true yarn test --bail --findRelatedTests",
    "start:prod": "NODE_ENV=production node build/server.js",
    "prettier": "prettier --single-quote --check '{src,cypress}/**/*.{js,jsx,ts,tsx}' --check '*.js'",
    "prettier:fix": "prettier --single-quote --write '{src,cypress}/**/*.{js,jsx,ts,tsx}' --write '*.js'",
    "prettier:husky": "prettier --single-quote --write",
    "stylelint": "stylelint 'theme/**/*.{css,less}' 'src/**/*.{css,less}'",
    "stylelint:overrides": "stylelint 'theme/**/*.overrides' 'src/**/*.overrides'",
    "stylelint:fix": "yarn stylelint --fix && yarn stylelint:overrides --fix",
    "lint": "eslint --max-warnings=0 'src/**/*.{js,jsx,ts,tsx,json}'",
    "lint:fix": "eslint --fix 'src/**/*.{js,jsx,ts,tsx,json}'",
    "lint:husky": "eslint --max-warnings=0 --fix",
    "i18n": "rm -rf build/messages && NODE_ENV=production i18n",
    "i18n:ci": "pnpm i18n && git diff -G'^[^\"POT]' --exit-code",
    "typecheck": "tsc --project tsconfig.json --noEmit",
    "dry-release": "release-it --dry-run",
    "release": "release-it",
    "release-major-alpha": "release-it major --preRelease=alpha",
    "release-alpha": "release-it --preRelease=alpha",
    "storybook": "storybook dev -p 6006",
    "build-storybook": "storybook build"
  }
}