347 lines
12 KiB
JSON
347 lines
12 KiB
JSON
{
|
|
"name": "ghost",
|
|
"version": "6.33.0-rc.0",
|
|
"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",
|
|
"publishConfig": {
|
|
"access": "public",
|
|
"registry": "https://registry.npmjs.org/"
|
|
},
|
|
"scripts": {
|
|
"archive": "pnpm pack:standalone && pnpm pack:tarball",
|
|
"pack:standalone": "rm -rf package; find . -maxdepth 1 -name 'ghost-*.tgz' -delete; npm pack && tar xzf ghost-*.tgz && cp ../../pnpm-lock.yaml package/ && cp ../../.npmrc package/.npmrc && echo '\nfrozen-lockfile=false\nshamefully-hoist=true' >> package/.npmrc && rm ghost-*.tgz && rm -f pnpm-lock.yaml pnpm-workspace.yaml .npmrc",
|
|
"pack:tarball": "tar czf ghost-$(node -p \"require('./package.json').version\").tgz package",
|
|
"dev": "nodemon index.js",
|
|
"build:assets": "pnpm build:assets:css && pnpm build:assets:js",
|
|
"build:assets:js": "node bin/minify-assets.js",
|
|
"generate-golden-email": "node bin/generate-golden-email.js",
|
|
"migrate:create": "node bin/create-migration.js",
|
|
"build:assets:css": "postcss core/frontend/public/ghost.css --no-map --use cssnano -o core/frontend/public/ghost.min.css",
|
|
"build:tsc": "tsc",
|
|
"pretest": "pnpm build:assets",
|
|
"test": "pnpm test:unit",
|
|
"test:base": "mocha --reporter dot --node-option import=tsx --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js,test.ts",
|
|
"test:single": "f() { q=$(echo \"$1\" | sed 's/\\.test\\.[jt]s$//'); case \"$q\" in */*) pnpm test:base --timeout=60000 \"$1\" ;; *) pnpm test:base --timeout=60000 \"test/**/*$q*.test.{js,ts}\" ;; esac; }; f",
|
|
"test:all": "pnpm test:unit && pnpm test:integration && pnpm test:e2e && pnpm lint",
|
|
"test:debug": "DEBUG=ghost:test* pnpm test",
|
|
"test:unit": "c8 pnpm test:unit:${GHOST_UNIT_TEST_VARIANT:-base}",
|
|
"test:unit:base": "pnpm test:base './test/unit' --timeout=2000",
|
|
"test:unit:ci": "pnpm test:unit:base --reporter=min",
|
|
"test:integration": "pnpm test:base './test/integration' --timeout=10000",
|
|
"test:e2e": "pnpm test:base ./test/e2e-* --timeout=15000",
|
|
"test:legacy": "pnpm test:base './test/legacy' --timeout=60000",
|
|
"test:ci:e2e": "c8 -c ./.c8rc.e2e.json -o coverage-e2e pnpm test:e2e -b",
|
|
"test:ci:legacy": "pnpm test:legacy -b",
|
|
"test:ci:integration": "c8 -c ./.c8rc.e2e.json -o coverage-integration --lines 52 --functions 47 --branches 73 --statements 52 pnpm test:integration -b",
|
|
"test:unit:slow": "pnpm test:unit --reporter=mocha-slow-test-reporter",
|
|
"test:int:slow": "pnpm test:integration --reporter=mocha-slow-test-reporter",
|
|
"test:e2e:slow": "pnpm test:e2e --reporter=mocha-slow-test-reporter",
|
|
"test:leg:slow": "mocha --reporter dot --require=./test/utils/overrides.js --exit --trace-warnings --recursive --extension=test.js './test/legacy' --timeout=60000 --reporter=mocha-slow-test-reporter",
|
|
"lint:server": "eslint --ignore-path .eslintignore 'core/server/**/*.js' 'core/*.js' '*.js' --cache",
|
|
"lint:shared": "eslint --ignore-path .eslintignore 'core/shared/**/*.js' --cache",
|
|
"lint:frontend": "eslint --ignore-path .eslintignore 'core/frontend/**/*.js' --cache",
|
|
"lint:test": "eslint -c test/.eslintrc.js --ignore-path test/.eslintignore 'test/**/*.js' --cache",
|
|
"lint:code": "pnpm lint:server && pnpm lint:shared && pnpm lint:frontend",
|
|
"lint:types": "eslint --ignore-path .eslintignore '**/*.ts' --cache && tsc --noEmit",
|
|
"lint": "pnpm lint:server && pnpm lint:shared && pnpm lint:frontend && pnpm lint:test && pnpm lint:types",
|
|
"prepack": "node monobundle.js",
|
|
"postpack": "cd ../.. && git checkout -- ghost/core/package.json ghost/i18n/package.json ghost/parse-email-address/package.json && rm -f ghost/core/pnpm-lock.yaml ghost/core/pnpm-workspace.yaml ghost/core/.npmrc && rm -rf ghost/core/components"
|
|
},
|
|
"engines": {
|
|
"node": "^22.13.1",
|
|
"cli": "^1.29.1"
|
|
},
|
|
"dependencies": {
|
|
"@aws-sdk/client-s3": "3.1025.0",
|
|
"@extractus/oembed-extractor": "3.2.1",
|
|
"@faker-js/faker": "7.6.0",
|
|
"@isaacs/ttlcache": "1.4.1",
|
|
"@sentry/node": "7.120.4",
|
|
"@slack/webhook": "7.0.9",
|
|
"@tryghost/adapter-base-cache": "0.1.23",
|
|
"@tryghost/admin-api-schema": "4.7.2",
|
|
"@tryghost/api-framework": "1.0.7",
|
|
"@tryghost/bookshelf-plugins": "2.0.3",
|
|
"@tryghost/color-utils": "0.2.16",
|
|
"@tryghost/config-url-helpers": "1.0.23",
|
|
"@tryghost/custom-fonts": "1.0.8",
|
|
"@tryghost/database-info": "0.3.35",
|
|
"@tryghost/debug": "0.1.40",
|
|
"@tryghost/domain-events": "1.0.8",
|
|
"@tryghost/email-mock-receiver": "0.3.16",
|
|
"@tryghost/errors": "1.3.13",
|
|
"@tryghost/helpers": "1.1.103",
|
|
"@tryghost/html-to-plaintext": "1.0.8",
|
|
"@tryghost/http-cache-utils": "0.1.25",
|
|
"@tryghost/i18n": "workspace:*",
|
|
"@tryghost/image-transform": "1.4.13",
|
|
"@tryghost/job-manager": "1.0.9",
|
|
"@tryghost/kg-card-factory": "5.1.14",
|
|
"@tryghost/kg-clean-basic-html": "4.2.23",
|
|
"@tryghost/kg-converters": "1.1.21",
|
|
"@tryghost/kg-default-atoms": "5.1.9",
|
|
"@tryghost/kg-default-cards": "10.2.13",
|
|
"@tryghost/kg-default-nodes": "2.0.21",
|
|
"@tryghost/kg-default-transforms": "1.2.44",
|
|
"@tryghost/kg-html-to-lexical": "1.2.45",
|
|
"@tryghost/kg-lexical-html-renderer": "1.3.44",
|
|
"@tryghost/kg-markdown-html-renderer": "7.1.18",
|
|
"@tryghost/kg-mobiledoc-html-renderer": "7.1.18",
|
|
"@tryghost/limit-service": "1.5.2",
|
|
"@tryghost/logging": "2.5.5",
|
|
"@tryghost/members-csv": "2.0.5",
|
|
"@tryghost/metrics": "1.0.43",
|
|
"@tryghost/mongo-utils": "0.6.3",
|
|
"@tryghost/mw-error-handler": "1.0.13",
|
|
"@tryghost/mw-vhost": "1.0.6",
|
|
"@tryghost/nodemailer": "0.3.48",
|
|
"@tryghost/nql": "0.12.10",
|
|
"@tryghost/nql-lang": "0.6.4",
|
|
"@tryghost/parse-email-address": "workspace:*",
|
|
"@tryghost/pretty-cli": "1.2.52",
|
|
"@tryghost/prometheus-metrics": "1.0.8",
|
|
"@tryghost/promise": "0.3.20",
|
|
"@tryghost/referrer-parser": "0.1.15",
|
|
"@tryghost/request": "1.0.12",
|
|
"@tryghost/root-utils": "0.3.38",
|
|
"@tryghost/security": "1.0.6",
|
|
"@tryghost/social-urls": "0.1.60",
|
|
"@tryghost/string": "0.3.2",
|
|
"@tryghost/tpl": "0.1.40",
|
|
"@tryghost/url-utils": "5.1.2",
|
|
"@tryghost/validator": "0.2.22",
|
|
"@tryghost/version": "0.1.38",
|
|
"@tryghost/zip": "1.1.54",
|
|
"body-parser": "1.20.4",
|
|
"bookshelf": "1.2.0",
|
|
"bookshelf-relations": "2.8.0",
|
|
"brute-knex": "4.0.1",
|
|
"bson-objectid": "2.0.4",
|
|
"cache-manager": "4.1.0",
|
|
"cache-manager-ioredis": "2.1.0",
|
|
"chalk": "4.1.2",
|
|
"charset": "1.0.1",
|
|
"cheerio": "0.22.0",
|
|
"clsx": "2.1.1",
|
|
"cluster-key-slot": "1.1.2",
|
|
"common-tags": "1.8.2",
|
|
"compression": "1.8.1",
|
|
"connect-slashes": "1.4.0",
|
|
"cookie-session": "2.1.1",
|
|
"cookies": "0.9.1",
|
|
"cors": "2.8.6",
|
|
"countries-and-timezones": "3.8.0",
|
|
"csso": "5.0.5",
|
|
"csv-writer": "1.6.0",
|
|
"date-fns": "2.30.0",
|
|
"dompurify": "3.3.0",
|
|
"downsize": "0.0.8",
|
|
"entities": "4.5.0",
|
|
"express": "4.21.2",
|
|
"express-brute": "1.0.1",
|
|
"express-hbs": "2.5.0",
|
|
"express-jwt": "8.5.1",
|
|
"express-lazy-router": "1.0.6",
|
|
"express-query-boolean": "2.0.0",
|
|
"express-queue": "0.0.13",
|
|
"express-session": "1.19.0",
|
|
"file-type": "16.5.4",
|
|
"form-data": "4.0.5",
|
|
"fs-extra": "11.3.4",
|
|
"ghost-storage-base": "1.1.2",
|
|
"glob": "8.1.0",
|
|
"got": "13.0.0",
|
|
"gscan": "5.4.3",
|
|
"handlebars": "4.7.9",
|
|
"heic-convert": "2.1.0",
|
|
"html-to-text": "5.1.1",
|
|
"html5parser": "2.0.2",
|
|
"human-number": "2.0.10",
|
|
"iconv-lite": "0.7.2",
|
|
"image-size": "1.2.1",
|
|
"intl": "1.2.5",
|
|
"intl-messageformat": "5.4.3",
|
|
"js-yaml": "4.1.1",
|
|
"jsdom": "28.1.0",
|
|
"jsonc-parser": "3.3.1",
|
|
"jsonwebtoken": "8.5.1",
|
|
"juice": "9.1.0",
|
|
"keypair": "1.0.4",
|
|
"knex": "2.4.2",
|
|
"knex-migrator": "5.3.2",
|
|
"leaky-bucket": "2.2.0",
|
|
"lodash": "4.17.23",
|
|
"luxon": "3.7.2",
|
|
"mailgun.js": "10.4.0",
|
|
"metascraper": "5.45.15",
|
|
"metascraper-author": "5.45.10",
|
|
"metascraper-description": "5.45.10",
|
|
"metascraper-image": "5.45.10",
|
|
"metascraper-logo": "5.45.10",
|
|
"metascraper-logo-favicon": "5.42.0",
|
|
"metascraper-publisher": "5.45.10",
|
|
"metascraper-title": "5.45.10",
|
|
"metascraper-url": "5.45.10",
|
|
"mime-types": "2.1.35",
|
|
"mingo": "2.5.3",
|
|
"moment": "2.24.0",
|
|
"moment-timezone": "0.5.45",
|
|
"multer": "2.0.2",
|
|
"mysql2": "3.18.1",
|
|
"nconf": "0.13.0",
|
|
"node-fetch": "2.7.0",
|
|
"node-jose": "2.2.0",
|
|
"nodemailer": "6.10.1",
|
|
"on-headers": "^1.1.0",
|
|
"otplib": "12.0.1",
|
|
"papaparse": "5.5.3",
|
|
"path-match": "1.2.4",
|
|
"probability-distributions": "0.9.1",
|
|
"probe-image-size": "7.2.3",
|
|
"rss": "1.2.2",
|
|
"sanitize-html": "2.17.0",
|
|
"semver": "7.7.4",
|
|
"simple-dom": "1.4.0",
|
|
"stoppable": "1.1.0",
|
|
"stripe": "8.222.0",
|
|
"superagent": "5.3.1",
|
|
"superagent-throttle": "1.0.1",
|
|
"terser": "5.46.1",
|
|
"tiny-glob": "0.2.9",
|
|
"ua-parser-js": "1.0.41",
|
|
"xml": "1.0.1"
|
|
},
|
|
"overrides": {
|
|
"lodash.template": "4.5.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"@tryghost/html-to-mobiledoc": "3.2.26",
|
|
"sqlite3": "5.1.7"
|
|
},
|
|
"devDependencies": {
|
|
"@actions/core": "3.0.0",
|
|
"@prettier/sync": "0.6.1",
|
|
"@tryghost/express-test": "0.15.5",
|
|
"@tryghost/webhook-mock-receiver": "0.2.22",
|
|
"@types/bookshelf": "1.2.9",
|
|
"@types/common-tags": "1.8.4",
|
|
"@types/express": "4.17.25",
|
|
"@types/jsdom": "28.0.1",
|
|
"@types/jsonwebtoken": "9.0.10",
|
|
"@types/lodash": "4.17.24",
|
|
"@types/lodash-es": "4.17.12",
|
|
"@types/mime-types": "3.0.1",
|
|
"@types/mocha": "10.0.10",
|
|
"@types/node": "22.19.17",
|
|
"@types/node-fetch": "2.6.13",
|
|
"@types/node-jose": "1.1.13",
|
|
"@types/nodemailer": "6.4.23",
|
|
"@types/on-headers": "1.0.4",
|
|
"@types/sinon": "17.0.4",
|
|
"@types/supertest": "6.0.3",
|
|
"c8": "10.1.3",
|
|
"cli-progress": "3.12.0",
|
|
"cssnano": "7.1.1",
|
|
"detect-indent": "6.1.0",
|
|
"detect-newline": "3.1.0",
|
|
"expect": "29.7.0",
|
|
"find-root": "1.1.0",
|
|
"form-data": "4.0.5",
|
|
"html-minifier": "4.0.0",
|
|
"html-validate": "8.29.0",
|
|
"inquirer": "8.2.7",
|
|
"jwk-to-pem": "2.0.7",
|
|
"jwks-rsa": "3.2.0",
|
|
"lodash-es": "4.17.23",
|
|
"mocha": "11.7.5",
|
|
"mocha-slow-test-reporter": "0.1.2",
|
|
"mock-knex": "TryGhost/mock-knex#68948e11b0ea4fe63456098dfdc169bea7f62009",
|
|
"nock": "13.5.6",
|
|
"nodemon": "3.1.14",
|
|
"papaparse": "5.5.3",
|
|
"parse-prometheus-text-format": "1.1.1",
|
|
"postcss": "8.5.6",
|
|
"postcss-cli": "11.0.1",
|
|
"rewire": "9.0.1",
|
|
"sinon": "18.0.1",
|
|
"supertest": "6.3.4",
|
|
"tmp": "0.2.5",
|
|
"toml": "3.0.0",
|
|
"tsx": "4.21.0",
|
|
"typescript": "5.9.3"
|
|
},
|
|
"nx": {
|
|
"targets": {
|
|
"build:tsc": {
|
|
"dependsOn": [
|
|
"^build"
|
|
]
|
|
},
|
|
"archive": {
|
|
"dependsOn": [
|
|
"build:assets",
|
|
"build:tsc",
|
|
{
|
|
"projects": [
|
|
"@tryghost/admin"
|
|
],
|
|
"target": "build"
|
|
}
|
|
]
|
|
},
|
|
"dev": {
|
|
"dependsOn": [
|
|
"build:assets"
|
|
]
|
|
},
|
|
"lint": {
|
|
"dependsOn": [
|
|
"^build"
|
|
]
|
|
},
|
|
"test:all": {
|
|
"dependsOn": [
|
|
"build:assets"
|
|
]
|
|
},
|
|
"test:unit": {
|
|
"dependsOn": [
|
|
"build:assets",
|
|
"^build"
|
|
]
|
|
},
|
|
"test:ci:e2e": {
|
|
"dependsOn": [
|
|
"^build"
|
|
]
|
|
},
|
|
"test:ci:legacy": {
|
|
"dependsOn": [
|
|
"^build"
|
|
]
|
|
},
|
|
"test:ci:integration": {
|
|
"dependsOn": [
|
|
"^build"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|