{
  "name": "homebrewery",
  "description": "Create authentic looking D&D homebrews using only markdown",
  "version": "3.15.0",
  "engines": {
    "npm": "^10.2.x",
    "node": "^20.8.x"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/naturalcrit/homebrewery.git"
  },
  "scripts": {
    "dev": "node scripts/dev.js",
    "quick": "node scripts/quick.js",
    "build": "node scripts/buildHomebrew.js && node scripts/buildAdmin.js",
    "builddev": "node scripts/buildHomebrew.js --dev",
    "lint": "eslint --fix",
    "lint:dry": "eslint",
    "stylelint": "stylelint --fix **/*.{less}",
    "stylelint:dry": "stylelint **/*.less",
    "circleci": "npm test && eslint **/*.{js,jsx} --max-warnings=0",
    "verify": "npm run lint && npm test",
    "test": "jest --runInBand",
    "test:api-unit": "jest \"server/.*.spec.js\" --verbose",
    "test:api-unit:themes": "jest \"server/.*.spec.js\" -t \"theme bundle\" --verbose",
    "test:api-unit:css": "jest \"server/.*.spec.js\" -t \"Get CSS\" --verbose",
    "test:coverage": "jest --coverage --silent --runInBand",
    "test:dev": "jest --verbose --watch",
    "test:basic": "jest tests/markdown/basic.test.js --verbose",
    "test:variables": "jest tests/markdown/variables.test.js --verbose",
    "test:mustache-syntax": "jest \".*(mustache-syntax).*\" --verbose --noStackTrace",
    "test:mustache-syntax:inline": "jest \".*(mustache-syntax).*\" -t '^Inline:.*' --verbose --noStackTrace",
    "test:mustache-syntax:block": "jest \".*(mustache-syntax).*\" -t '^Block:.*' --verbose --noStackTrace",
    "test:mustache-syntax:injection": "jest \".*(mustache-syntax).*\" -t '^Injection:.*' --verbose --noStackTrace",
    "test:definition-lists": "jest tests/markdown/definition-lists.test.js --verbose --noStackTrace",
    "test:hard-breaks": "jest tests/markdown/hard-breaks.test.js --verbose --noStackTrace",
    "test:emojis": "jest tests/markdown/emojis.test.js --verbose --noStackTrace",
    "test:route": "jest tests/routes/static-pages.test.js --verbose",
    "phb": "node scripts/phb.js",
    "prod": "set NODE_ENV=production && npm run build",
    "postinstall": "npm run build",
    "start": "node server.js"
  },
  "author": "stolksdorf",
  "license": "MIT",
  "eslintIgnore": [
    "build/*"
  ],
  "jest": {
    "testTimeout": 30000,
    "modulePaths": [
      "node_modules",
      "shared",
      "server"
    ],
    "coveragePathIgnorePatterns": [
      "build/*"
    ],
    "coverageThreshold": {
      "global": {
        "statements": 50,
        "branches": 40,
        "functions": 40,
        "lines": 50
      },
      "server/homebrew.api.js": {
        "statements": 70,
        "branches": 50,
        "functions": 65,
        "lines": 70
      }
    },
    "setupFilesAfterEnv": [
      "jest-expect-message"
    ]
  },
  "babel": {
    "presets": [
      "@babel/preset-env",
      "@babel/preset-react"
    ],
    "plugins": [
      "@babel/plugin-transform-runtime"
    ]
  },
  "dependencies": {
    "@babel/core": "^7.25.2",
    "@babel/plugin-transform-runtime": "^7.25.4",
    "@babel/preset-env": "^7.25.4",
    "@babel/preset-react": "^7.24.7",
    "@googleapis/drive": "^8.14.0",
    "body-parser": "^1.20.2",
    "classnames": "^2.5.1",
    "codemirror": "^5.65.6",
    "cookie-parser": "^1.4.6",
    "create-react-class": "^15.7.0",
    "dedent-tabs": "^0.10.3",
    "dompurify": "^3.1.6",
    "expr-eval": "^2.0.2",
    "express": "^4.19.2",
    "express-async-handler": "^1.2.0",
    "express-static-gzip": "2.1.7",
    "fs-extra": "11.2.0",
    "js-yaml": "^4.1.0",
    "jwt-simple": "^0.5.6",
    "less": "^3.13.1",
    "lodash": "^4.17.21",
    "marked": "11.2.0",
    "marked-emoji": "^1.4.2",
    "marked-extended-tables": "^1.0.10",
    "marked-gfm-heading-id": "^3.2.0",
    "marked-smartypants-lite": "^1.0.2",
    "markedLegacy": "npm:marked@^0.3.19",
    "moment": "^2.30.1",
    "mongoose": "^8.6.1",
    "nanoid": "3.3.4",
    "nconf": "^0.12.1",
    "react": "^18.3.1",
    "react-dom": "^18.3.1",
    "react-frame-component": "^4.1.3",
    "react-router-dom": "6.26.1",
    "sanitize-filename": "1.6.3",
    "superagent": "^10.1.0",
    "vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
  },
  "devDependencies": {
    "@stylistic/stylelint-plugin": "^3.0.1",
    "eslint": "^9.9.1",
    "eslint-plugin-jest": "^28.8.3",
    "eslint-plugin-react": "^7.35.2",
    "globals": "^15.9.0",
    "jest": "^29.7.0",
    "jest-expect-message": "^1.1.3",
    "postcss-less": "^6.0.0",
    "stylelint": "^16.9.0",
    "stylelint-config-recess-order": "^5.1.0",
    "stylelint-config-recommended": "^14.0.1",
    "supertest": "^7.0.0"
  }
}
