Files

292 lines
11 KiB
JSON

{
"name": "status.app",
"version": "0.1.2",
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/status-im/status-website.git"
},
"scripts": {
"preinstall": "npx only-allow pnpm",
"predev": "pnpm install",
"predev:next": "pnpm generate:blog-search",
"dev:next": "next dev --turbopack --port 3001",
"dev:content": "contentlayer2 dev",
"watch:content": "node --watch-path=./content --watch-preserve-output ./scripts/trigger-content-compilation.cjs",
"prebuild": "node scripts/ensure-specs-content.mjs",
"build": "pnpm lint && pnpm generate:blog-search && next build",
"generate:blog-search": "tsx scripts/generate-blog-search-index.ts",
"prebuild:content": "node scripts/ensure-specs-content.mjs",
"build:content": "contentlayer2 build && :",
"build:docker": "bash -c 'set -a && . .env.local && set +a && cd ../.. && docker build -f apps/status.app/Dockerfile --secret id=infura_api_key,env=INFURA_API_KEY --secret id=greenhouse_api_key,env=GREENHOUSE_API_KEY --secret id=github_token,env=GITHUB_TOKEN --build-arg NEXT_PUBLIC_GHOST_API_URL=\"$NEXT_PUBLIC_GHOST_API_URL\" --build-arg NEXT_PUBLIC_GHOST_API_KEY=\"$NEXT_PUBLIC_GHOST_API_KEY\" --build-arg NEXT_PUBLIC_INFURA_API_KEY=\"$NEXT_PUBLIC_INFURA_API_KEY\" --build-arg NEXT_PUBLIC_HASURA_API_URL=\"$NEXT_PUBLIC_HASURA_API_URL\" --build-arg GREENHOUSE_STATUS_BOARD_ID=\"$GREENHOUSE_STATUS_BOARD_ID\" --build-arg GREENHOUSE_LOGOS_BOARD_ID=\"$GREENHOUSE_LOGOS_BOARD_ID\" -t status-web/status.app:dev .'",
"start": "next start",
"test": "vitest run",
"start:standalone": "node .next/standalone/apps/status.app/server.js",
"start:docker": "bash -c 'set -a && . .env.local && set +a && docker run --rm -p 3001:3001 -e SITE_URL -e NEXT_PUBLIC_GHOST_API_URL -e NEXT_PUBLIC_GHOST_API_KEY -e NEXT_PUBLIC_INFURA_API_KEY -e NEXT_PUBLIC_HASURA_API_URL -e INFURA_API_KEY -e GREENHOUSE_API_KEY -e GREENHOUSE_STATUS_BOARD_ID -e GREENHOUSE_LOGOS_BOARD_ID -e GITHUB_TOKEN -e POSTGRES_URL -e KEYCLOAK_API_URL -e KEYCLOAK_REALM -e KEYCLOAK_ISSUER -e KEYCLOAK_CLIENT_ID -e KEYCLOAK_CLIENT_SECRET -e BAMBOOHR_API_KEY -e UMAMI_WEBSITE_ID -e UMAMI_API_URL status-web/status.app:dev'",
"preview:docker": "pnpm build:docker && pnpm start:docker",
"prelint": "contentlayer2 build",
"lint": "pnpm lint:remark && pnpm lint:next",
"lint:next": "eslint src",
"lint:remark": "remark --quiet --ext md --ext mdx content/help content/legal",
"lint:fix": "pnpm lint:fix:remark && pnpm lint:fix:next",
"lint:fix:next": "pnpm lint:next --fix",
"lint:fix:remark": "pnpm lint:remark --silent --output",
"format": "pnpm format:remark && pnpm format:prettier",
"format:remark": "pnpm lint:fix:remark",
"format:prettier": "prettier --write .",
"types:check": "contentlayer2 build && tsc",
"env:check": "node -r dotenv/config ./src/config/env.server.mjs dotenv_config_path=./.env && node -r dotenv/config ./src/config/env.client.mjs dotenv_config_path=./.env && :",
"clean": "rimraf .next .vercel/output node_modules .contentlayer .contentlayer2 .turbo",
"preview": "next start --port 8151",
"codegen": "graphql-codegen -r dotenv/config --config codegen.yml",
"codegen:watch": "pnpm run codegen -- --watch",
"sync:cloudinary": "DOTENV_CONFIG_PATH='.env.local' node -r dotenv/config scripts/generate-cloudinary-type.mjs && prettier -w 'src/app/_components/assets/types.ts'",
"db:check": "drizzle-kit check",
"db:generate": "drizzle-kit generate",
"db:push": "drizzle-kit push",
"db:explore": "drizzle-kit studio --port 3001",
"knip": "knip"
},
"dependencies": {
"@date-fns/utc": "^1.2.0",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/modifiers": "^7.0.0",
"@dnd-kit/sortable": "^8.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@headlessui/react": "^1.7.15",
"@hookform/devtools": "^4.3.1",
"@hookform/resolvers": "^3.1.1",
"@mdx-js/react": "^2.3.0",
"@octokit/rest": "^20.0.2",
"@radix-ui/react-accordion": "^1.2.0",
"@radix-ui/react-alert-dialog": "^1.1.1",
"@radix-ui/react-dialog": "^1.1.1",
"@radix-ui/react-navigation-menu": "1.2.0",
"@radix-ui/react-popover": "^1.1.1",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-tooltip": "^1.1.1",
"@react-spring/core": "^9.7.5",
"@react-spring/shared": "^9.7.5",
"@react-spring/types": "^9.7.5",
"@react-spring/web": "^9.7.5",
"@scure/base": "^1.1.1",
"@status-im/colors": "workspace:*",
"@status-im/components": "workspace:*",
"@status-im/icons": "workspace:*",
"@status-im/js": "workspace:*",
"@tanstack/query-core": "5.29.0",
"@tanstack/react-query": "5.29.0",
"@tanstack/react-query-devtools": "5.29.0",
"@trpc/react-query": "11.1.0",
"@trpc/server": "11.1.0",
"@tryghost/content-api": "^1.11.13",
"@types/title": "^3.4.3",
"@vercel/analytics": "^1.2.2",
"@vercel/toolbar": "^0.1.5",
"@visx/axis": "^3.0.0",
"@visx/curve": "^3.0.0",
"@visx/event": "^3.0.0",
"@visx/glyph": "^3.0.0",
"@visx/gradient": "^3.0.0",
"@visx/grid": "^3.0.0",
"@visx/group": "^3.0.0",
"@visx/responsive": "^3.0.0",
"@visx/scale": "^3.0.0",
"@visx/shape": "^3.0.0",
"@visx/text": "^3.0.0",
"@visx/tooltip": "^3.0.0",
"@visx/visx": "^3.0.0",
"arctic": "1.2.0",
"class-variance-authority": "^0.6.0",
"contentlayer2": "^0.5.8",
"csstype": "^3.1.3",
"d3-array": "^3.2.3",
"d3-scale": "^4.0.2",
"d3-time-format": "^4.1.0",
"date-fns": "^3.6.0",
"drizzle-orm": "^0.31.0",
"drizzle-zod": "^0.5.1",
"emoji-datasource-twitter": "^15.1.2",
"entities": "^8.0.0",
"fast-xml-parser": "^5.2.2",
"github-slugger": "^2.0.0",
"google-auth-library": "^9.0.0",
"google-spreadsheet": "^4.1.0",
"graphql": "^16.7.1",
"graphql-request": "^6.1.0",
"highlight-words-core": "^1.2.2",
"inspx": "^0.0.1-alpha.6",
"match-sorter": "^6.3.4",
"minisearch": "^6.1.0",
"next": "15.5.16",
"next-contentlayer2": "^0.5.8",
"next-intl": "^4.6.0",
"next-mdx-remote": "^6.0.0",
"oslo": "1.0.1",
"pg": "^8.13.1",
"parallax-controller": "^1.7.1",
"prettier-plugin-tailwindcss": "^0.6.6",
"qrcode.react": "^3.1.0",
"react": "19.1.2",
"react-children-utilities": "^2.9.0",
"react-day-picker": "^8.7.1",
"react-dom": "19.1.2",
"react-hook-form": "^7.45.1",
"react-remove-scroll": "^2.5.5",
"react-scroll-parallax": "^3.4.5",
"react-swipeable": "^7.0.1",
"remark-comment": "^1.0.0",
"server-only": "^0.0.1",
"superjson": "^2.2.1",
"tailwind-merge": "^1.14.0",
"tinykeys": "^3.0.0",
"title": "^3.5.3",
"ts-pattern": "^5.3.1",
"type-fest": "^4.18.2",
"unified": "^11.0.5",
"vfile-matter": "^5.0.1",
"zod": "3.25.76"
},
"devDependencies": {
"@1stg/remark-preset": "^3.0.0",
"@eslint/eslintrc": "^3.1.0",
"@graphql-codegen/cli": "5.0.2",
"@graphql-codegen/import-types-preset": "3.0.0",
"@graphql-codegen/typescript": "4.0.6",
"@graphql-codegen/typescript-operations": "4.2.0",
"@graphql-codegen/typescript-react-query": "6.1.0",
"@mdx-js/mdx": "^2.3.0",
"@next/env": "15.5.16",
"@next/eslint-plugin-next": "15.5.16",
"@status-im/eslint-config": "workspace:*",
"@tailwindcss/typography": "^0.5.15",
"@types/d3-array": "^3.0.4",
"@types/d3-scale": "^4.0.8",
"@types/d3-time-format": "^4.0.0",
"@types/highlight-words-core": "^1.2.1",
"@types/mdx": "^2.0.5",
"@types/node": "^22.5.5",
"@types/pg": "^8.11.10",
"@types/prettier": "^3.0.0",
"@types/react": "19.1.0",
"@types/react-dom": "19.1.1",
"@types/tryghost__content-api": "^1.3.11",
"@types/unist": "^3.0.3",
"@vcarl/remark-headings": "^0.1.0",
"autoprefixer": "^10.4.14",
"dotenv": "^16.4.5",
"drizzle-kit": "^0.22.2",
"eslint": "^9.14.0",
"eslint-config-next": "15.5.16",
"eslint-config-prettier": "^9.1.0",
"eslint-mdx": "^2.1.0",
"eslint-plugin-mdx": "^2.1.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-tailwindcss": "^3.17.4",
"globals": "^15.12.0",
"husky": "^8.0.3",
"knip": "^5.30.2",
"lint-staged": "^13.2.0",
"mdast": "^3.0.0",
"mdast-util-to-string": "^4.0.0",
"mdx-bundler": "^10.0.0",
"nanoid": "^5.0.8",
"postcss": "^8.4.21",
"prettier": "^3.3.3",
"react-easy-emoji": "^1.8.1",
"rehype": "^12.0.1",
"rehype-format": "^4.0.1",
"rehype-parse": "^9.0.1",
"rehype-pretty-code": "0.14.1",
"rehype-raw": "^6.1.1",
"rehype-react": "^8.0.0",
"rehype-slug": "^6.0.0",
"rehype-stringify": "^9.0.3",
"remark": "^15.0.0",
"remark-breaks": "^3.0.3",
"remark-cli": "^12.0.0",
"remark-directive": "^4.0.0",
"remark-frontmatter": "^4.0.1",
"remark-gfm": "^4.0.1",
"remark-github-beta-blockquote-admonitions": "^1.1.0",
"remark-lint": "9.1.2",
"remark-lint-emphasis-marker": "^3.1.2",
"remark-lint-file-extension": "^2.1.2",
"remark-lint-list-item-indent": "^3.1.2",
"remark-lint-maximum-line-length": "^3.1.3",
"remark-lint-no-consecutive-blank-lines": "^4.1.3",
"remark-lint-no-undefined-references": "^5.0.0",
"remark-lint-ordered-list-marker-value": "^3.1.2",
"remark-mdx": "^3.1.1",
"remark-parse": "^11.0.0",
"remark-preset-lint-consistent": "^6.0.0",
"remark-preset-lint-markdown-style-guide": "^6.0.0",
"remark-preset-lint-recommended": "^7.0.0",
"remark-preset-prettier": "^2.0.1",
"remark-preset-wooorm": "^11.0.0",
"remark-prettier": "^2.0.0",
"remark-rehype": "^10.1.0",
"remark-retext": "^6.0.0",
"remark-stringify": "^10.0.3",
"remark-validate-links": "^12.1.1",
"retext-contractions": "^5.2.0",
"retext-english": "^4.1.0",
"retext-preset-wooorm": "^4.1.0",
"retext-quotes": "^5.2.0",
"retext-sentence-spacing": "^5.2.0",
"rimraf": "^4.4.1",
"shiki": "^3.15.0",
"strip-markdown": "^6.0.0",
"superjson": "^2.2.1",
"tailwind-scrollbar-utilities": "^0.2.0",
"tailwindcss": "^3.4.11",
"tailwindcss-animate": "^1.0.5",
"tailwindcss-react-aria-components": "^1.1.5",
"tsx": "^4.11.0",
"typescript": "^5.6.2",
"unist-util-visit": "^5.0.0",
"vfile": "5.3.7"
},
"engines": {
"node": "22.x"
},
"lint-staged": {
"{.env,src/config/env.{server,client}.mjs}": [
"pnpm env:check"
],
"./migrations/**/*": [
"pnpm db:check"
],
"*.{ts,tsx,js,jsx}": [
"eslint",
"prettier --write"
],
"scripts/**/*.mjs": [
"prettier --write"
],
"content/**/*.{md,mdx}": [
"pnpm build:content",
"echo \"remark --ext mdx\"",
"remark --ext md --ext mdx --frail --output --",
"echo \"#prettier --write\"",
"echo \"#remark --ext mdx --output\"",
"echo \"#pnpm lint:fix:remark --\"",
"echo \"#prettier --write\"",
"echo \"#prettier --ignore-path=null --write\""
],
"*.{yml,yaml,json}": [
"prettier --write"
]
},
"knip": {
"project": [
"src/app/**/*.{ts,tsx}"
],
"ignore": [
"src/app/(website)/insights/_graphql/generated/schemas.ts",
"src/app/(website)/insights/_graphql/generated/operations.ts",
"src/app/(website)/insights/_graphql/generated/hooks.ts"
]
}
}