{ "name": "ghost-monorepo", "version": "0.0.0-private", "description": "The professional publishing platform", "private": true, "packageManager": "pnpm@10.33.0+sha512.10568bb4a6afb58c9eb3630da90cc9516417abebd3fabbe6739f0ae795728da1491e9db5a544c76ad8eb7570f5c4bb3d6c637b2cb41bfdcdb47fa823c8649319", "repository": "https://github.com/TryGhost/Ghost", "author": "Ghost Foundation", "license": "MIT", "monorepo": { "public": false, "internalPackages": true, "repo": "https://github.com/TryGhost/Ghost", "scope": "@tryghost" }, "eslintIgnore": [ "**/node_modules/**" ], "scripts": { "archive": "pnpm nx run ghost:archive", "build:production": "pnpm nx run ghost:build:tsc && pnpm nx run ghost:build:assets && pnpm nx run @tryghost/admin:build", "build": "pnpm nx run-many -t build", "build:clean": "nx reset && rimraf -g 'ghost/*/build' && rimraf -g 'ghost/*/tsconfig.tsbuildinfo'", "clean:hard": "node ./.github/scripts/clean.js", "dev": "pnpm nx run ghost-monorepo:docker:dev", "dev:sqlite": "DEV_COMPOSE_FILES='-f compose.dev.sqlite.yaml' pnpm nx run ghost-monorepo:docker:dev", "dev:mailgun": "DEV_COMPOSE_FILES='-f compose.dev.mailgun.yaml' pnpm nx run ghost-monorepo:docker:dev", "dev:lexical": "EDITOR_URL=http://localhost:2368/ghost/assets/koenig-lexical/ pnpm dev", "dev:analytics": "DEV_COMPOSE_FILES='-f compose.dev.analytics.yaml' pnpm nx run ghost-monorepo:docker:dev", "dev:storage": "DEV_COMPOSE_FILES='-f compose.dev.storage.yaml' pnpm nx run ghost-monorepo:docker:dev", "dev:stripe": "./docker/stripe/with-stripe.sh pnpm nx run ghost-monorepo:docker:dev", "dev:all": "DEV_COMPOSE_FILES='-f compose.dev.analytics.yaml -f compose.dev.storage.yaml' ./docker/stripe/with-stripe.sh pnpm nx run ghost-monorepo:docker:dev", "fix": "pnpm store prune && rimraf -g '**/node_modules' && pnpm install && pnpm nx reset", "knex-migrator": "pnpm --filter ghost run knex-migrator", "setup": "pnpm install && git submodule update --init --recursive", "reset:data": "docker exec ghost-dev bash -c 'cd /home/ghost/ghost/core && node index.js generate-data --clear-database --quantities members:1000,posts:100 --seed 123'", "reset:data:empty": "docker exec ghost-dev bash -c 'cd /home/ghost/ghost/core && node index.js generate-data --clear-database --quantities members:0,posts:0 --seed 123'", "reset:data:xxl": "docker exec ghost-dev bash -c 'cd /home/ghost/ghost/core && node index.js generate-data --clear-database --quantities members:2000000,posts:0,emails:0,members_stripe_customers:0,members_login_events:0,members_status_events:0 --seed 123'", "docker:build": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} build", "docker:clean": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} --profile all down -v --remove-orphans --rmi local", "docker:down": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} down", "lint": "pnpm nx run-many -t lint", "test": "pnpm nx run-many -t test --exclude @tryghost/e2e --exclude ghost-admin", "test:unit": "pnpm nx run-many -t test:unit", "test:e2e": "pnpm --filter @tryghost/e2e test", "test:e2e:analytics": "pnpm --filter @tryghost/e2e test:analytics", "test:e2e:all": "pnpm --filter @tryghost/e2e test:all", "test:e2e:debug": "DEBUG=@tryghost/e2e:* pnpm test:e2e", "main": "pnpm main:monorepo && pnpm main:submodules", "main:monorepo": "git checkout main && git pull ${GHOST_UPSTREAM:-origin} main && pnpm install", "main:submodules": "git submodule sync && git submodule update && git submodule foreach \"git checkout main && git pull ${GHOST_UPSTREAM:-origin} main\"", "preinstall": "node ./.github/scripts/enforce-package-manager.js", "prepare": "husky .github/hooks", "tb": "tb local start && cd ghost/core/core/server/data/tinybird && tb dev", "tb:install": "curl https://tinybird.co | sh", "data:analytics:generate": "node ghost/core/core/server/data/tinybird/scripts/docker-analytics-manager.js generate", "data:analytics:clear": "node ghost/core/core/server/data/tinybird/scripts/docker-analytics-manager.js clear", "release": "node scripts/release.js", "test:release": "node --test 'scripts/test/*.js'" }, "pnpm": { "overrides": { "@tryghost/errors": "^1.3.7", "@tryghost/logging": "2.5.5", "jackspeak": "2.3.6", "moment": "2.24.0", "moment-timezone": "0.5.45", "nwsapi": "2.2.23", "broccoli-persistent-filter": "^2.3.1", "juice": "9.1.0", "ember-basic-dropdown": "6.0.2", "ember-in-viewport": "4.1.0", "eslint-plugin-ghost>@typescript-eslint/eslint-plugin": "8.49.0", "eslint-plugin-ghost>@typescript-eslint/utils": "8.49.0", "ember-svg-jar>cheerio": "1.0.0-rc.12", "juice>cheerio": "0.22.0", "lodash.template": "4.5.0" }, "onlyBuiltDependencies": [ "@swc/core", "core-js", "cpu-features", "dtrace-provider", "esbuild", "fsevents", "msw", "nx", "protobufjs", "re2", "sharp", "sqlite3", "ssh2" ] }, "devDependencies": { "@actions/core": "3.0.0", "@playwright/test": "1.59.1", "chalk": "4.1.2", "chokidar": "3.6.0", "concurrently": "8.2.2", "eslint": "catalog:", "eslint-plugin-ghost": "3.5.0", "eslint-plugin-react": "7.37.5", "husky": "9.1.7", "inquirer": "8.2.7", "jsonc-parser": "3.3.1", "lint-staged": "16.4.0", "nx": "22.0.4", "rimraf": "6.1.3", "semver": "7.7.4", "typescript": "5.9.3" }, "nx": { "includedScripts": [], "targets": { "docker:up": { "executor": "nx:run-commands", "options": { "command": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} up -d --force-recreate --wait" }, "dependsOn": [ "docker:build" ] }, "docker:down": { "executor": "nx:run-commands", "options": { "command": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} down" } }, "docker:build": { "executor": "nx:run-commands", "options": { "command": "docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} build" } }, "docker:dev": { "continuous": true, "executor": "nx:run-commands", "options": { "command": "trap 'docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} down' EXIT; docker compose -f compose.dev.yaml ${DEV_COMPOSE_FILES} logs -f" }, "dependsOn": [ "docker:up", { "target": "dev", "projects": [ "@tryghost/admin", "@tryghost/portal", "@tryghost/comments-ui", "@tryghost/signup-form", "@tryghost/sodo-search", "@tryghost/announcement-bar", "@tryghost/parse-email-address" ] } ] } } } }