{ "name": "ghost", "version": "4.22.3", "description": "The professional publishing platform", "author": "Ghost Foundation", "homepage": "https://ghost.org", "keywords": [ "ghost", "blog", "cms", "headless", "content", "markdown" ], "repository": { "type": "git", "url": "git://github.com/TryGhost/Ghost.git" }, "bugs": "https://github.com/TryGhost/Ghost/issues", "contributors": "https://github.com/TryGhost/Ghost/graphs/contributors", "license": "MIT", "scripts": { "start": "node index", "dev": "grunt dev", "dev:debug": "DEBUG=ghost:* grunt dev", "setup": "yarn install && knex-migrator init && grunt symlink && grunt init || (exit 0)", "main": "grunt shell:main && grunt subgrunt:init", "build": "grunt build", "test": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js --timeout=60000", "test:all": "yarn test:unit && yarn test:integration && yarn test:e2e && yarn lint", "test:debug": "DEBUG=ghost:test* yarn test", "test:unit": "c8 --all -n 'core/{*.js,frontend,server,shared}' --reporter text-summary --reporter cobertura mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/unit' --timeout=2000", "test:integration": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/integration' --timeout=5000", "test:e2e": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/e2e-api' './test/e2e-frontend' './test/e2e-server' --timeout=10000", "test:regression": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000", "test:unit:slow": "yarn test:unit --reporter=mocha-slow-test-reporter", "test:int:slow": "yarn test:integration --reporter=mocha-slow-test-reporter", "test:e2e:slow": "yarn test:e2e --reporter=mocha-slow-test-reporter", "test:reg:slow": "mocha --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/regression' --timeout=60000 --reporter=mocha-slow-test-reporter", "cov:unit": "c8 report --all -n 'core/{*.js,frontend,server,shared}' -x 'core/frontend/public' --reporter text --reporter html", "lint:server": "eslint --ignore-path .eslintignore 'core/server/**/*.js' 'core/*.js' '*.js'", "lint:shared": "eslint --ignore-path .eslintignore 'core/shared/**/*.js'", "lint:frontend": "eslint --ignore-path .eslintignore 'core/frontend/**/*.js'", "lint:test": "eslint -c test/.eslintrc.js --ignore-path test/.eslintignore 'test/**/*.js'", "lint:code": "yarn lint:server && yarn lint:shared && yarn lint:frontend", "lint": "yarn lint:server && yarn lint:shared && yarn lint:frontend && yarn lint:test", "fix:client": "yarn cache clean && cd core/client && rm -rf node_modules tmp dist && yarn && cd ../../", "fix:server": "yarn cache clean && rm -rf node_modules && yarn", "fix": "yarn fix:client && yarn fix:server" }, "engines": { "node": "^12.22.1 || ^14.17.0 || ^16.13.0", "cli": "^1.17.0" }, "dependencies": { "@nexes/nql": "0.6.0", "@sentry/node": "6.14.3", "@tryghost/adapter-manager": "0.2.18", "@tryghost/admin-api-schema": "2.6.1", "@tryghost/bookshelf-plugins": "0.3.4", "@tryghost/bootstrap-socket": "0.2.13", "@tryghost/color-utils": "0.1.4", "@tryghost/config-url-helpers": "0.1.3", "@tryghost/constants": "1.0.0", "@tryghost/custom-theme-settings-service": "0.3.1", "@tryghost/debug": "0.1.9", "@tryghost/email-analytics-provider-mailgun": "1.0.5", "@tryghost/email-analytics-service": "1.0.4", "@tryghost/errors": "0.2.17", "@tryghost/express-dynamic-redirects": "0.2.1", "@tryghost/helpers": "1.1.53", "@tryghost/image-transform": "1.0.18", "@tryghost/job-manager": "0.8.12", "@tryghost/kg-card-factory": "3.1.0", "@tryghost/kg-default-atoms": "3.1.0", "@tryghost/kg-default-cards": "5.6.1", "@tryghost/kg-markdown-html-renderer": "5.1.0", "@tryghost/kg-mobiledoc-html-renderer": "5.2.0", "@tryghost/limit-service": "1.0.0", "@tryghost/logging": "1.0.0", "@tryghost/magic-link": "1.0.14", "@tryghost/members-api": "2.7.4", "@tryghost/members-csv": "1.1.8", "@tryghost/members-importer": "0.3.4", "@tryghost/members-offers": "0.10.2", "@tryghost/members-ssr": "1.0.15", "@tryghost/metrics": "1.0.0", "@tryghost/minifier": "0.1.0", "@tryghost/mw-session-from-token": "0.1.26", "@tryghost/nodemailer": "0.3.6", "@tryghost/package-json": "1.0.6", "@tryghost/promise": "0.1.13", "@tryghost/request": "0.1.8", "@tryghost/root-utils": "0.3.7", "@tryghost/security": "0.2.13", "@tryghost/session-service": "0.1.28", "@tryghost/social-urls": "0.1.27", "@tryghost/string": "0.1.21", "@tryghost/tpl": "0.1.8", "@tryghost/update-check-service": "0.2.5", "@tryghost/url-utils": "2.0.3", "@tryghost/validator": "0.1.8", "@tryghost/version": "0.1.7", "@tryghost/vhost-middleware": "1.0.19", "@tryghost/zip": "1.1.18", "amperize": "0.6.1", "analytics-node": "5.1.2", "bluebird": "3.7.2", "body-parser": "1.19.0", "bookshelf": "1.2.0", "bookshelf-relations": "2.3.0", "brute-knex": "4.0.1", "bson-objectid": "2.0.1", "bthreads": "0.5.1", "cheerio": "0.22.0", "compression": "1.7.4", "connect-slashes": "1.4.0", "cookie-session": "1.4.0", "cors": "2.8.5", "downsize": "0.0.8", "express": "4.17.1", "express-brute": "1.0.1", "express-hbs": "2.4.0", "express-jwt": "6.1.0", "express-lazy-router": "1.0.4", "express-query-boolean": "2.0.0", "express-session": "1.17.2", "fs-extra": "10.0.0", "ghost-storage-base": "1.0.0", "glob": "7.2.0", "got": "9.6.0", "gscan": "4.10.1", "html-to-text": "5.1.1", "image-size": "1.0.0", "intl": "1.2.5", "intl-messageformat": "5.4.3", "js-yaml": "4.1.0", "jsonpath": "1.1.1", "jsonwebtoken": "8.5.1", "juice": "8.0.0", "keypair": "1.0.4", "knex": "0.21.21", "knex-migrator": "4.1.1", "lodash": "4.17.21", "luxon": "2.1.1", "mailgun-js": "0.22.0", "metascraper": "5.25.0", "metascraper-author": "5.25.0", "metascraper-description": "5.25.0", "metascraper-image": "5.25.0", "metascraper-logo": "5.25.0", "metascraper-logo-favicon": "5.25.0", "metascraper-publisher": "5.25.0", "metascraper-title": "5.25.0", "metascraper-url": "5.25.0", "moment": "2.24.0", "moment-timezone": "0.5.23", "multer": "1.4.3", "mysql": "2.18.1", "nconf": "0.11.3", "node-jose": "2.0.0", "oembed-parser": "1.5.2", "passport": "0.5.0", "passport-google-oauth": "2.0.0", "path-match": "1.2.4", "probe-image-size": "5.0.0", "rss": "1.2.2", "sanitize-html": "2.5.3", "semver": "7.3.5", "stoppable": "1.1.0", "tough-cookie": "4.0.0", "uuid": "8.3.2", "xml": "1.0.1" }, "optionalDependencies": { "@tryghost/html-to-mobiledoc": "1.2.3", "sqlite3": "5.0.2" }, "devDependencies": { "@lodder/grunt-postcss": "3.1.1", "c8": "7.10.0", "coffeescript": "2.6.1", "cssnano": "5.0.10", "eslint": "7.32.0", "eslint-plugin-ghost": "2.7.0", "grunt": "1.4.1", "grunt-bg-shell": "2.3.3", "grunt-contrib-clean": "2.0.0", "grunt-contrib-compress": "2.0.0", "grunt-contrib-copy": "1.0.0", "grunt-contrib-symlink": "1.0.0", "grunt-contrib-watch": "1.1.0", "grunt-express-server": "0.5.4", "grunt-shell": "3.0.1", "grunt-subgrunt": "1.3.0", "grunt-update-submodules": "0.4.1", "jwks-rsa": "2.0.5", "mocha": "9.1.3", "mocha-slow-test-reporter": "0.1.2", "mock-knex": "0.4.10", "nock": "13.2.1", "papaparse": "5.3.1", "postcss": "8.3.11", "rewire": "5.0.0", "should": "13.2.3", "sinon": "11.1.2", "supertest": "6.1.6", "tmp": "0.2.1" }, "resolutions": { "moment": "2.24.0", "moment-timezone": "0.5.23" } }