{
    "name": "@orchard/frontend-workstation",
    "version": "2.4.0",
    "description": "Master layout and dynamic module loader for workstation SPA.",
    "url": "https://github.com/theorchard/frontend-workstation",
    "author": "The Orchard",
    "license": "UNLICENSED",
    "private": true,
    "packageManager": "pnpm@9.0.5",
    "main": "build/frontend-workstation.development.js",
    "types": "types.d.ts",
    "engines": {
        "node": ">=24"
    },
    "prettier": "@theorchard/prettier-config",
    "lint-staged": {
        "*.{js,jsx,ts,tsx,css,scss,json,md}": [
            "prettier --write"
        ]
    },
    "scripts": {
        "prepare": "husky install",
        "build": "./scripts/build.sh",
        "build:pri": "./scripts/buildPrInstance.sh",
        "clean": "rm -rf node_modules && rm -rf .cache && pnpm install --force",
        "lint": "pnpm lint:css && pnpm lint:js",
        "lint:css": "stylelint 'src/**/*.scss'",
        "lint:js": "eslint --ext .js,.ts,.tsx,.jsx --cache --cache-location .cache/.eslintcache src",
        "start": "frontend start",
        "start:phpApp": "pnpm start -e 'applications/index.tsx' --pug ./src/applications/index.pug",
        "test": "pnpm format:check && frontend init && pnpm lint && pnpm validate && pnpm test:unit",
        "test:unit": "jest",
        "validate": "tsc --noEmit",
        "format": "prettier --write .",
        "format:check": "prettier --check ."
    },
    "devDependencies": {
        "@babel/plugin-proposal-class-properties": "^7.18.6",
        "@babel/plugin-proposal-export-default-from": "^7.27.1",
        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
        "@graphql-tools/jest-transform": "^1.2.3",
        "@testing-library/dom": "^10.4.1",
        "@testing-library/jest-dom": "^6.9.1",
        "@testing-library/react": "^16.3.2",
        "@theorchard/eslint-config-react-ts-prettier": "^2.3.1",
        "@theorchard/frontend-cli": "4.2.7",
        "@theorchard/frontend-cli-rspack": "1.0.0",
        "@theorchard/jest-config": "^3.0.0",
        "@theorchard/prettier-config": "^1.0.0",
        "@theorchard/stylelint-config-prettier": "^1.1.2",
        "@theorchard/suite-testing": "^3.1.1",
        "@types/crypto-js": "^4.2.2",
        "@types/jest": "^30.0.0",
        "@types/lodash": "^4.17.24",
        "@types/react": "18.3.18",
        "@types/react-dom": "18.3.5",
        "@types/react-router-dom": "^5.3.3",
        "@types/superagent": "^4.1.24",
        "eslint-config-prettier": "^8.10.2",
        "express": "^4.22.1",
        "husky": "^8.0.3",
        "jest": "^30.3.0",
        "jest-environment-jsdom": "^30.3.0",
        "jest-fetch-mock": "^3.0.3",
        "jest-location-mock": "^3.0.0",
        "jest-transform-graphql": "^2.1.0",
        "lint-staged": "^16.4.0",
        "nock": "^13.5.6",
        "node-fetch": "^3.3.2",
        "prettier": "^2.8.8",
        "stylelint": "^14.16.1",
        "ts-jest": "^29.4.9",
        "typescript": "^4.9.5",
        "webpack-dev-server": "5.2.6"
    },
    "dependencies": {
        "@apollo/client": "^3.14.1",
        "@orchard/frontend-identity": "^1.3.3",
        "@orchard/frontend-localization": "^1.2.0",
        "@orchard/frontend-react-components": "^3.3.24",
        "@theorchard/grass-token-manager": "^1.4.1",
        "@theorchard/suite-components": "^13.6.0",
        "@theorchard/suite-frontend": "^9.9.0",
        "@theorchard/suite-icons": "^7.22.1",
        "apollo-cache": "^1.3.5",
        "apollo-cache-inmemory": "^1.6.6",
        "apollo-client": "^2.6.10",
        "apollo-link": "^1.2.14",
        "apollo-link-context": "^1.0.20",
        "apollo-link-http": "^1.5.17",
        "apollo-utilities": "^1.3.4",
        "cache-service-cache-module": "^2.0.1",
        "classnames": "2.5.1",
        "common-tags": "^1.8.2",
        "crypto-js": "^4.2.0",
        "graphql": "^15.10.1",
        "graphql-tag": "^2.12.6",
        "html-react-parser": "^5.2.17",
        "intl": "^1.2.5",
        "lodash": "^4.18.1",
        "moment": "^2.30.1",
        "prop-types": "^15.8.1",
        "query-string": "^5.1.1",
        "querystring-es3": "^0.2.1",
        "react": "18.2.0",
        "react-apollo": "^3.1.5",
        "react-dom": "18.2.0",
        "react-intl": "^2.9.0",
        "react-loadable": "^5.5.0",
        "react-router-dom": "^5.3.4",
        "react-with-hook": "^1.3.0",
        "superagent": "^3.8.3",
        "superagent-cache-plugin": "^2.1.0",
        "unfetch": "^4.2.0"
    },
    "pnpm": {
        "overrides": {
            "react-tagsinput": "3.19.0",
            "d3-color@<3.1.0": "3.1.0",
            "immutable@<3.8.3": "3.8.3",
            "@babel/runtime@<7.26.10": "7.26.10",
            "js-cookie@<3.0.7": "3.0.7",
            "shell-quote@<1.8.4": "1.8.4",
            "http-proxy-middleware@<2.0.10": "2.0.10",
            "launch-editor@<2.14.1": "2.14.1",
            "uuid@<14.0.0": "14.0.0"
        }
    },
    "eslintConfig": {
        "extends": [
            "@theorchard/eslint-config-react-ts-prettier"
        ],
        "rules": {
            "no-new": "off",
            "class-methods-use-this": "off",
            "react/forbid-prop-types": "off",
            "react/static-property-placement": "off",
            "jsx-a11y/click-events-have-key-events": "off",
            "jsx-a11y/no-static-element-interactions": "off"
        },
        "overrides": [
            {
                "files": [
                    "**/*.spec.ts",
                    "**/*.spec.tsx"
                ],
                "rules": {
                    "@typescript-eslint/no-empty-function": "off",
                    "@typescript-eslint/no-explicit-any": "off"
                }
            }
        ]
    },
    "jest": {
        "preset": "@theorchard/jest-config",
        "setupFiles": [
            "<rootDir>/jest.polyfills.js"
        ],
        "setupFilesAfterEnv": [
            "<rootDir>/jest.setup.js"
        ],
        "moduleNameMapper": {
            "^lodash-es$": "<rootDir>/node_modules/lodash",
            "^lib/(.*)$": "<rootDir>/lib/$1"
        }
    },
    "files": [
        "build",
        "frontend.config.js",
        "types.d.ts",
        "src/styles",
        "server.js"
    ],
    "browserslist": {
        "production": [
            ">0.2%",
            "not dead",
            "not op_mini all"
        ],
        "development": [
            "last 1 chrome version",
            "last 1 firefox version",
            "last 1 safari version"
        ]
    }
}
