{ "name": "@coder/coder", "description": "Coder", "repository": "https://github.com/coder/coder", "private": true, "license": "AGPL-3.0", "packageManager": "pnpm@10.33.2+sha512.a90faf6feeab71ad6c6e57f94e0fe1a12f5dcc22cd754db40ae9593eb6a3e0b6b12e3540218bb37ae083404b1f2ce6db2a4121e979829b4aff94b99f49da1cf8", "scripts": { "build": "NODE_ENV=production pnpm vite build", "check": "biome check --error-on-warnings .", "check:fix": "biome check --error-on-warnings --fix .", "check:all": "pnpm check && pnpm test", "dev": "vite", "format": "biome format --write .", "format:check": "biome format .", "lint": "pnpm run lint:check && pnpm run lint:oxlint && pnpm run lint:types && pnpm run lint:circular-deps && pnpm run lint:compiler && knip", "lint:compiler": "node scripts/check-compiler.mjs", "lint:check": "biome lint --error-on-warnings .", "lint:oxlint": "oxlint --deny-warnings", "lint:design-system": "oxlint --config .oxlintrc.design-system.jsonc", "lint:circular-deps": "dpdm --no-tree --no-warning -T ./src/App.tsx", "lint:knip": "knip", "lint:fix": "biome lint --error-on-warnings --write . && knip --fix", "lint:types": "tsc -p .", "playwright:install": "playwright install --with-deps chromium", "playwright:test": "make -C .. site/e2e/bin/coder && playwright test --config=e2e/playwright.config.ts", "playwright:test-ui": "make -C .. site/e2e/bin/coder && playwright test --config=e2e/playwright.config.ts --ui $([[ \"$CODER\" == \"true\" ]] && echo --ui-port=7500 --ui-host=0.0.0.0)", "gen:provisioner": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./e2e/ --ts_proto_opt=outputJsonMethods=false,outputEncodeMethods=encode-no-creation,outputClientImpl=false,nestJs=false,outputPartialMethods=false,fileSuffix=Generated,suffix=hey -I ../provisionersdk/proto ../provisionersdk/proto/provisioner.proto", "storybook": "STORYBOOK=true storybook dev -p 6006", "storybook:build": "storybook build", "pixel-storybook:ci": "node scripts/pixelStorybookCi.mjs", "test": "vitest run --project=unit", "test:storybook": "vitest --project=storybook", "test:ci": "vitest run --project=unit", "test:watch": "vitest --project=unit", "stats": "STATS=true pnpm build && npx http-server ./stats -p 8081 -c-1", "update-emojis": "cp -rf ./node_modules/emoji-datasource-apple/img/apple/64/* ./static/emojis && cp -f ./node_modules/emoji-datasource-apple/img/apple/sheets-256/64.png ./static/emojis/spritesheet.png" }, "imports": { "#/*": "./src/*" }, "dependencies": { "@dnd-kit/core": "6.3.1", "@dnd-kit/sortable": "10.0.0", "@dnd-kit/utilities": "3.2.2", "@emoji-mart/data": "1.2.1", "@emoji-mart/react": "1.1.1", "@fontsource-variable/geist": "5.3.0", "@fontsource-variable/geist-mono": "5.3.0", "@fontsource/fira-code": "5.3.0", "@fontsource/ibm-plex-mono": "5.3.0", "@fontsource/jetbrains-mono": "5.2.8", "@fontsource/source-code-pro": "5.3.0", "@lexical/react": "0.44.0", "@lexical/utils": "0.49.0", "@monaco-editor/react": "4.7.0", "@novnc/novnc": "^1.5.0", "@pierre/diffs": "1.5.1", "@pierre/trees": "1.0.0-beta.6", "@tanstack/react-query-devtools": "5.82.0", "@xterm/addon-canvas": "0.7.0", "@xterm/addon-fit": "0.11.0", "@xterm/addon-unicode11": "0.9.0", "@xterm/addon-web-links": "0.12.0", "@xterm/addon-webgl": "0.19.0", "@xterm/xterm": "5.5.0", "axios": "1.20.0", "class-variance-authority": "0.7.1", "cmdk": "1.1.1", "cn": "0.3.2", "color-convert": "2.0.1", "cron-parser": "4.9.0", "cronstrue": "2.59.0", "dayjs": "1.11.23", "diff": "8.0.4", "dompurify": "3.4.16", "emoji-mart": "5.6.0", "fancy-ansi": "0.1.3", "file-saver": "2.0.5", "formik": "2.4.9", "front-matter": "4.0.2", "humanize-duration": "3.34.0", "jszip": "3.10.1", "lexical": "0.44.0", "lodash": "4.18.1", "lucide-react": "0.577.0", "mermaid": "11.17.2", "monaco-editor": "0.55.1", "motion": "12.43.0", "pretty-bytes": "6.1.1", "radix-ui": "1.6.7", "react": "19.2.8", "react-confetti": "6.4.0", "react-day-picker": "9.14.0", "react-dom": "19.2.8", "react-markdown": "9.1.0", "react-query": "npm:@tanstack/react-query@5.82.0", "react-router": "7.18.2", "react-syntax-highlighter": "15.6.6", "react-textarea-autosize": "8.5.9", "react-virtualized-auto-sizer": "1.0.26", "react-window": "1.8.11", "recharts": "2.15.4", "remark-gfm": "4.0.1", "remark-parse": "11.0.0", "remend": "1.3.1", "semver": "7.8.5", "sonner": "2.0.7", "streamdown": "2.6.0", "tzdata": "1.0.50", "ua-parser-js": "1.0.41", "ufuzzy": "npm:@leeoniya/ufuzzy@1.0.10", "unified": "11.0.5", "unique-names-generator": "4.7.1", "websocket-ts": "2.3.0", "yup": "1.7.1" }, "devDependencies": { "@babel/core": "7.29.7", "@babel/plugin-syntax-typescript": "7.29.7", "@biomejs/biome": "2.5.10", "@coder/pixel-storybook": "0.3.0", "@octokit/types": "12.6.0", "@playwright/test": "1.63.0", "@rolldown/plugin-babel": "0.2.3", "@shadcn/lint": "0.2.0", "@storybook/addon-a11y": "10.3.3", "@storybook/addon-docs": "10.3.3", "@storybook/addon-links": "10.3.3", "@storybook/addon-mcp": "^0.7.0", "@storybook/addon-themes": "10.3.3", "@storybook/addon-vitest": "10.3.3", "@storybook/react-vite": "10.3.3", "@tailwindcss/typography": "0.5.20", "@tailwindcss/vite": "4.3.3", "@testing-library/jest-dom": "6.9.1", "@testing-library/react": "14.3.1", "@testing-library/user-event": "14.6.6", "@types/color-convert": "2.0.4", "@types/express": "4.17.17", "@types/file-saver": "2.0.7", "@types/humanize-duration": "3.27.4", "@types/lodash": "4.17.25", "@types/mdast": "4.0.4", "@types/node": "20.19.41", "@types/novnc__novnc": "1.5.0", "@types/react": "19.2.18", "@types/react-dom": "19.2.5", "@types/react-syntax-highlighter": "15.5.13", "@types/react-virtualized-auto-sizer": "1.0.8", "@types/react-window": "1.8.8", "@types/semver": "7.8.0", "@types/ssh2": "1.15.5", "@types/ua-parser-js": "0.7.36", "@vitejs/plugin-react": "6.1.0", "@vitest/browser-playwright": "4.1.10", "babel-plugin-react-compiler": "1.0.0", "dpdm": "3.15.1", "express": "4.22.2", "jest-canvas-mock": "2.5.2", "jest-websocket-mock": "2.5.0", "jsdom": "27.2.0", "knip": "5.71.0", "msw": "2.4.8", "oxlint": "1.80.0", "protobufjs": "7.6.5", "resize-observer-polyfill": "1.5.1", "rollup-plugin-visualizer": "7.1.1", "rxjs": "7.8.2", "ssh2": "1.17.0", "storybook": "10.5.10", "storybook-addon-remix-react-router": "6.0.0", "tailwindcss": "4.3.3", "ts-proto": "1.181.2", "tw-animate-css": "1.4.0", "typescript": "6.0.2", "vite": "8.2.1", "vite-plugin-checker": "0.14.5", "vitest": "4.1.11" }, "browserslist": [ "chrome 111", "firefox 128", "safari 16.4" ], "resolutions": { "optionator": "0.9.3", "semver": "7.8.5" }, "engines": { "pnpm": ">=10.0.0 <11.0.0", "node": ">=22.0.0 <25.0.0" }, "pnpm": { "overrides": { "esbuild": "0.28.2", "prismjs": "1.30.0", "dompurify": "3.4.14", "qs": "6.16.0" }, "ignoredBuiltDependencies": [ "cpu-features", "msw", "protobufjs", "storybook-addon-remix-react-router" ], "onlyBuiltDependencies": [ "esbuild", "odiff-bin", "ssh2" ] } }