Files
mygit/ghost/core/package.json
T
DuckQ1u 93d1b7c3d3
Copilot Setup Steps / copilot-setup-steps (push) Has been cancelled
first commit
2026-04-22 19:51:20 +07:00

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"
]
}
}
}
}