{
  "name": "apostrophe",
  "version": "4.28.1",
  "description": "The Apostrophe Content Management System.",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/apostrophecms/apostrophe.git",
    "directory": "packages/apostrophe"
  },
  "homepage": "https://github.com/apostrophecms/apostrophe/tree/main/packages/apostrophe",
  "engines": {
    "node": ">=16.0.0"
  },
  "keywords": [
    "apostrophe",
    "apostrophe-cms",
    "apostrophecms",
    "cms",
    "node cms",
    "headless cms",
    "content management system"
  ],
  "author": "Apostrophe Technologies, Inc.",
  "license": "MIT",
  "dependencies": {
    "@apostrophecms/vue-material-design-icons": "^1.0.0",
    "@ctrl/tinycolor": "^4.1.0",
    "@floating-ui/dom": "^1.5.3",
    "@opentelemetry/api": "^1.9.0",
    "@opentelemetry/semantic-conventions": "^1.0.1",
    "@paralleldrive/cuid2": "^2.2.2",
    "@tiptap/extension-color": "^2.4.0",
    "@tiptap/extension-floating-menu": "^2.0.3",
    "@tiptap/extension-highlight": "^2.0.3",
    "@tiptap/extension-link": "^2.0.3",
    "@tiptap/extension-placeholder": "^2.0.3",
    "@tiptap/extension-subscript": "^2.0.3",
    "@tiptap/extension-superscript": "^2.0.3",
    "@tiptap/extension-table": "^2.0.3",
    "@tiptap/extension-table-cell": "^2.0.3",
    "@tiptap/extension-table-header": "^2.0.3",
    "@tiptap/extension-table-row": "^2.0.3",
    "@tiptap/extension-text-align": "^2.0.3",
    "@tiptap/extension-text-style": "^2.0.3",
    "@tiptap/extension-underline": "^2.0.3",
    "@tiptap/starter-kit": "^2.0.3",
    "@tiptap/vue-3": "^2.0.3",
    "@vue/compiler-sfc": "^3.3.8",
    "autoprefixer": "^10.4.1",
    "bluebird": "^3.7.2",
    "body-parser": "^1.18.2",
    "cheerio": "^1.0.0-rc.10",
    "chokidar": "^3.5.2",
    "common-tags": "^1.8.0",
    "concat-with-sourcemaps": "^1.1.0",
    "connect-mongo": "^5.1.0",
    "cookie-parser": "^1.4.5",
    "cors": "^2.8.5",
    "css-loader": "^5.2.4",
    "cssnano": "^7.1.1",
    "csv-parse": "^5.6.0",
    "dayjs": "^1.9.8",
    "dompurify": "^3.2.5",
    "encodeurl": "^2.0.0",
    "express": "^4.16.4",
    "express-bearer-token": "^3.0.0",
    "express-session": "^1.18.2",
    "fs-extra": "^7.0.1",
    "glob": "^10.4.5",
    "he": "^1.2.0",
    "html-to-text": "^9.0.5",
    "i18next": "^20.3.2",
    "i18next-http-middleware": "^3.1.5",
    "import-fresh": "^3.3.0",
    "is-wsl": "^2.2.0",
    "jsdom": "^24.1.0",
    "klona": "^2.0.4",
    "launder": "^1.4.0",
    "lodash": "^4.17.21",
    "mini-css-extract-plugin": "^1.6.0",
    "minimatch": "^3.0.4",
    "mkdirp": "^0.5.5",
    "multer": "^2.0.2",
    "node-fetch": "^2.6.1",
    "nodemailer": "^7.0.10",
    "nunjucks": "^3.2.1",
    "oembetter": "^1.1.3",
    "parseurl": "^1.3.3",
    "passport": "^0.6.0",
    "passport-local": "^1.0.0",
    "path-to-regexp": "^1.8.0",
    "performance-now": "^2.1.0",
    "pinia": "^2.1.7",
    "postcss": "^8.4.47",
    "postcss-html": "^1.3.0",
    "postcss-loader": "^8.1.1",
    "postcss-scss": "^4.0.3",
    "prompts": "^2.4.1",
    "qs": "^6.10.1",
    "regexp-quote": "0.0.0",
    "resolve": "^1.19.0",
    "resolve-from": "^5.0.0",
    "sass": "^1.80.3",
    "sass-loader": "^16.0.0",
    "server-destroy": "^1.0.1",
    "sluggo": "^1.0.0",
    "sortablejs": "^1.15.0",
    "sortablejs-vue3": "^1.2.11",
    "tiny-emitter": "^2.1.0",
    "tough-cookie": "^4.0.0",
    "underscore.string": "^3.3.4",
    "uploadfs": "^1.26.1",
    "void-elements": "^3.1.0",
    "vue": "^3.5.20",
    "vue-advanced-cropper": "^2.8.8",
    "vue-loader": "^17.1.0",
    "vue-style-loader": "^4.1.3",
    "webpack": "^5.72.0",
    "webpack-merge": "^5.7.3",
    "xregexp": "^2.0.0",
    "@apostrophecms/emulate-mongo-3-driver": "^1.0.6",
    "express-cache-on-demand": "^1.0.4",
    "broadband": "^1.1.0",
    "sanitize-html": "^2.17.2",
    "postcss-viewport-to-container-toggle": "^2.3.0",
    "boring": "^1.1.1"
  },
  "devDependencies": {
    "eslint": "^9.39.1",
    "form-data": "^4.0.4",
    "mocha": "^11.7.1",
    "nyc": "^17.1.0",
    "stylelint": "^16.5.0",
    "eslint-config-apostrophe": "^6.0.2",
    "stylelint-config-apostrophe": "^4.4.0"
  },
  "browserslist": [
    "ie >= 10"
  ],
  "scripts": {
    "pretest": "npm run lint",
    "test": "npm run test:base && npm run test:missing && npm run test:assets && npm run test:esm",
    "test:base": "nyc mocha -t 10000 --ignore=test/assets.js",
    "test:missing": "nyc mocha -t 10000 test/add-missing-schema-fields-project/test.js",
    "test:assets": "nyc mocha -t 10000 test/assets.js",
    "test:esm": "mocha -t 1000 test/esm-project/esm.js",
    "eslint": "eslint .",
    "eslint-fix": "npm run eslint -- --fix",
    "i18n": "node scripts/lint-i18n",
    "stylelint": "stylelint modules/**/*.{scss,vue}",
    "lint": "npm run eslint && npm run i18n && npm run stylelint",
    "mocha": "mocha"
  }
}