{
  "name": "dashy",
  "version": "3.2.0",
  "license": "MIT",
  "main": "server",
  "author": "Alicia Sykes <alicia@omg.lol> (https://aliciasykes.com)",
  "scripts": {
    "start": "node server",
    "dev": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve",
    "build": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build",
    "lint": "vue-cli-service lint",
    "test": "vitest run",
    "test:watch": "vitest",
    "test:ui": "vitest --ui",
    "test:coverage": "vitest run --coverage",
    "pm2-start": "npx pm2 start server.js",
    "build-watch": "vue-cli-service build --watch --mode production",
    "build-and-start": "NODE_OPTIONS=--openssl-legacy-provider npm-run-all --parallel build start",
    "validate-config": "node services/config-validator",
    "health-check": "node services/healthcheck",
    "dependency-audit": "npx improved-yarn-audit --ignore-dev-deps"
  },
  "dependencies": {
    "@babel/core": "^7.26.0",
    "@formschema/native": "^2.0.0-beta.6",
    "@sentry/tracing": "^7.102.1",
    "@sentry/vue": "^7.102.1",
    "ajv": "^8.10.0",
    "axios": "^1.12.0",
    "connect-history-api-fallback": "^1.6.0",
    "crypto-js": "^4.2.0",
    "dompurify": "^3.0.8",
    "express": "^4.21.0",
    "express-basic-auth": "^1.2.1",
    "frappe-charts": "^1.6.2",
    "js-yaml": "^4.1.0",
    "keycloak-js": "^20.0.3",
    "oidc-client-ts": "^3.0.1",
    "register-service-worker": "^1.7.2",
    "remedial": "^1.0.8",
    "rss-parser": "3.13.0",
    "rsup-progress": "^3.2.0",
    "simple-icons": "^16.6.0",
    "v-jsoneditor": "^1.4.5",
    "v-tooltip": "^2.1.3",
    "vue": "^2.7.0",
    "vue-i18n": "^8.27.2",
    "vue-js-modal": "^2.0.1",
    "vue-json-tree-view": "^2.1.6",
    "vue-material-tabs": "0.1.5",
    "vue-router": "^3.5.3",
    "vue-select": "^3.20.2",
    "vue-swatches": "^2.1.1",
    "vue-toasted": "^1.1.28",
    "vuex": "^3.6.2"
  },
  "devDependencies": {
    "@babel/preset-env": "^7.26.0",
    "@vitest/ui": "^1.6.0",
    "@vue/cli-plugin-babel": "^5.0.8",
    "@vue/cli-plugin-eslint": "^5.0.8",
    "@vue/cli-plugin-pwa": "^5.0.8",
    "@vue/cli-plugin-typescript": "^5.0.8",
    "@vue/cli-service": "^5.0.8",
    "@babel/eslint-parser": "^7.25.0",
    "@vue/eslint-config-standard": "^4.0.0",
    "@vue/test-utils": "^1.3.6",
    "copy-webpack-plugin": "6.4.0",
    "eslint": "^7.32.0",
    "eslint-config-airbnb": "^18.0.1",
    "eslint-plugin-vue": "^7.9.0",
    "happy-dom": "^20.8.9",
    "npm-run-all": "^4.1.5",
    "sass": "^1.77.0",
    "sass-loader": "^12.0.0",
    "typescript": "^5.4.4",
    "vite-plugin-vue2": "^2.0.3",
    "vitest": "^1.6.0",
    "vue-cli-plugin-yaml": "^1.0.2",
    "vue-svg-loader": "^0.16.0",
    "vue-template-compiler": "^2.7.0"
  },
  "engines": {
    "node": ">=16.0.0 <21.6.2"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "@vue/standard",
      "airbnb-base"
    ],
    "rules": {
      "import/no-unresolved": "off",
      "import/extensions": "off",
      "arrow-parens": 0,
      "no-else-return": 0
    },
    "parserOptions": {
      "parser": "@babel/eslint-parser"
    },
    "overrides": [
      {
        "files": [
          "tests/**",
          "vitest.config.js"
        ],
        "rules": {
          "import/no-extraneous-dependencies": "off",
          "no-undef": "off",
          "global-require": "off",
          "no-unused-vars": "off"
        }
      }
    ]
  },
  "babel": {
    "presets": [
      "@vue/cli-plugin-babel/preset",
      "@babel/preset-env"
    ]
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ],
  "resolutions": {
    "ejs": "^3.1.10",
    "loader-utils": "^2.0.4",
    "minimatch": "^3.1.2",
    "braces": "^3.0.3",
    "micromatch": "^4.0.8",
    "serialize-javascript": "^6.0.2",
    "node-forge": "^1.3.1",
    "nth-check": "^2.1.1",
    "ip": "^2.0.1",
    "postcss": "^8.4.31",
    "tar": "^6.2.1"
  },
  "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
}
