{ "name": "@lexical/monorepo", "description": "Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance.", "version": "0.53.0", "license": "MIT", "private": true, "type": "module", "packageManager": "pnpm@11.24.0", "engines": { "node": ">=20.19.0", "pnpm": ">=11.0.0" }, "scripts": { "capture-gallery-screenshots": "pnpm dlx tsx scripts/capture-gallery-screenshots.ts", "start:example": "sh -c '(cd \"examples/$0\"; pnpm i && pnpm run monorepo:dev)'", "start:dev-example": "sh -c '(cd \"dev-examples/$0\"; pnpm run dev)'", "start:dev-example:mdast-editor": "pnpm run start:dev-example mdast-editor", "start": "cross-env NODE_ENV=development concurrently \"pnpm:collab\" \"pnpm -C packages/lexical-playground run dev\"", "start:y": "cross-env NODE_ENV=development concurrently \"pnpm:collab:y\" \"pnpm -C packages/lexical-playground run dev\"", "start:website": "pnpm -C packages/lexical-website run start --port 3001", "start:playground": "pnpm run start-test-server", "dev": "pnpm -C packages/lexical-playground run dev", "start-test-server": "pnpm -C packages/lexical-playground run preview", "build": "node scripts/build.mjs", "generate-node-json": "node scripts/generate-node-json.mjs", "build-prod": "pnpm run clean && pnpm run build --prod", "build-docs": "pnpm -C packages/lexical-website run build", "build-playground-dev": "pnpm run build && pnpm -C packages/lexical-playground run build-dev", "build-playground-prod": "pnpm run build-prod && pnpm -C packages/lexical-playground run build-prod", "build-release": "pnpm run build-prod --release", "build:doc-examples": "node scripts/build-doc-examples.mjs", "build:dev-examples": "node scripts/build-dev-examples.mjs", "build-www": "pnpm run clean && pnpm run build --www && pnpm run build --www --prod && pnpm run prepare-www", "build-types": "tsc -p ./tsconfig.build.json && node ./scripts/validate-tsc-types.mjs", "lint-flow": "node ./scripts/lint-flow-types.mjs", "clean": "node scripts/clean.mjs", "extract-codes": "node scripts/build.mjs --codes", "flow": "node ./scripts/check-flow-types.mjs", "flow-typed-install": "flow-typed install -s -o --ignoreDeps dev peer bundled", "tsc": "tsc", "tsc-test": "tsc -p ./tsconfig.test.json", "tsc-scripts": "tsc -p ./tsconfig.scripts.json", "tsc-extension": "pnpm --filter @lexical/devtools run compile", "tsc-website": "pnpm --filter @lexical/website run tsc", "tsc-watch": "tsc -w", "collab": "cross-env HOST=localhost PORT=1234 pnpm exec y-websocket", "collab:y": "cross-env HOST=localhost PORT=1235 node packages/lexical-playground/scripts/collab-y-server.mjs", "vitest": "vitest", "test-unit": "vitest --project unit --project unit-size --project scripts-unit --no-watch", "test-unit-watch": "vitest --project unit --project scripts-unit", "test-browser": "vitest --project browser --no-watch", "test-browser-watch": "vitest --project browser", "bench": "vitest bench --project \"bench*\" --run", "test-eslint-integration": "node packages/lexical-eslint-plugin/__tests__/integration/integration-test.mjs", "test-integration": "vitest --project integration --no-watch", "test-e2e-chromium": "cross-env E2E_BROWSER=chromium playwright test --project=\"chromium\"", "test-e2e-firefox": "cross-env E2E_BROWSER=firefox playwright test --project=\"firefox\"", "test-e2e-webkit": "cross-env E2E_BROWSER=webkit playwright test --project=\"webkit\"", "test-e2e-plain-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=plain-text playwright test --project=\"chromium\"", "test-e2e-plain-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=plain-text playwright test --project=\"firefox\"", "test-e2e-plain-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=plain-text playwright test --project=\"webkit\"", "test-e2e-collab-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=rich-text-with-collab playwright test --project=\"chromium\"", "test-e2e-collab-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=rich-text-with-collab playwright test --project=\"firefox\"", "test-e2e-collab-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=rich-text-with-collab playwright test --project=\"webkit\"", "test-e2e-collab-v2-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=rich-text-with-collab-v2 playwright test --project=\"chromium\"", "test-e2e-collab-y-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=rich-text-with-collab-y playwright test --project=\"chromium\"", "test-e2e-collab-v2-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=rich-text-with-collab-v2 playwright test --project=\"firefox\"", "test-e2e-collab-y-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=rich-text-with-collab-y playwright test --project=\"firefox\"", "test-e2e-collab-v2-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=rich-text-with-collab-v2 playwright test --project=\"webkit\"", "test-e2e-collab-y-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=rich-text-with-collab-y playwright test --project=\"webkit\"", "test-e2e-prod-chromium": "cross-env E2E_BROWSER=chromium E2E_PORT=4000 playwright test --project=\"chromium\"", "test-e2e-collab-prod-chromium": "cross-env E2E_BROWSER=chromium E2E_PORT=4000 E2E_EDITOR_MODE=rich-text-with-collab playwright test --project=\"chromium\"", "test-e2e-ci-chromium": "pnpm run prepare-ci && cross-env E2E_PORT=4000 pnpm run test-e2e-chromium", "test-e2e-ci-firefox": "pnpm run prepare-ci && cross-env E2E_PORT=4000 pnpm run test-e2e-firefox", "test-e2e-ci-webkit": "pnpm run prepare-ci && cross-env E2E_PORT=4000 pnpm run test-e2e-webkit", "test-e2e-collab-ci-chromium": "pnpm run prepare-ci && cross-env E2E_PORT=4000 concurrently -k -s \"first\" \"pnpm run collab\" -P \"pnpm run test-e2e-collab-chromium {@}\"", "test-e2e-collab-ci-firefox": "pnpm run prepare-ci && cross-env E2E_PORT=4000 concurrently -k -s \"first\" \"pnpm run collab\" -P \"pnpm run test-e2e-collab-firefox {@}\"", "test-e2e-collab-ci-webkit": "pnpm run prepare-ci && cross-env E2E_PORT=4000 concurrently -k -s \"first\" \"pnpm run collab\" -P \"pnpm run test-e2e-collab-webkit {@}\"", "test-e2e-prod-ci-chromium": "pnpm run prepare-ci-prod && cross-env E2E_PORT=4000 pnpm run test-e2e-prod-chromium", "test-e2e-collab-prod-ci-chromium": "pnpm run prepare-ci-prod && cross-env E2E_PORT=4000 concurrently -k -s \"first\" \"pnpm run collab\" -P \"pnpm run test-e2e-collab-prod-chromium {@}\"", "debug-run-all": "npm-run-all 'debug-test-e2e-* -- {1}' --", "run-all": "npm-run-all 'test-e2e-* -- {1}' --", "debug-test-e2e": "cross-env playwright test --debug", "debug-test-e2e-chromium": "cross-env E2E_BROWSER=chromium playwright test --debug --project=\"chromium\"", "debug-test-e2e-prod-chromium": "cross-env E2E_BROWSER=chromium E2E_PORT=4000 playwright test --debug --project=\"chromium\"", "debug-test-e2e-firefox": "cross-env E2E_BROWSER=firefox playwright test --debug --project=\"firefox\"", "debug-test-e2e-webkit": "cross-env E2E_BROWSER=webkit playwright test --debug --project=\"webkit\"", "debug-test-e2e-collab": "cross-env E2E_EDITOR_MODE=rich-text-with-collab playwright test --debug", "debug-test-e2e-collab-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=rich-text-with-collab playwright test --debug --project=\"chromium\"", "debug-test-e2e-collab-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=rich-text-with-collab playwright test --debug --project=\"firefox\"", "debug-test-e2e-collab-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=rich-text-with-collab playwright test --debug --project=\"webkit\"", "debug-test-e2e-plain": "cross-env E2E_EDITOR_MODE=plain-text playwright test --debug", "debug-test-e2e-plain-chromium": "cross-env E2E_BROWSER=chromium E2E_EDITOR_MODE=plain-text playwright test --debug --project=\"chromium\"", "debug-test-e2e-plain-firefox": "cross-env E2E_BROWSER=firefox E2E_EDITOR_MODE=plain-text playwright test --debug --project=\"firefox\"", "debug-test-e2e-plain-webkit": "cross-env E2E_BROWSER=webkit E2E_EDITOR_MODE=plain-text playwright test --debug --project=\"webkit\"", "debug-test-unit": "vitest --inspect-brk --no-file-parallelism", "lint": "eslint ./", "lint:fix": "eslint ./ --fix", "prettier": "prettier --list-different .", "ci-check": "npm-run-all --parallel tsc tsc-test tsc-scripts tsc-extension tsc-website flow prettier lint check-changesets", "prettier:fix": "prettier --write .", "prepare-ci": "pnpm run build-playground-dev", "prepare-ci-prod": "pnpm run build-playground-prod", "prepare-release": "pnpm run build-release && node ./scripts/npm/prepare-release.mjs && node ./scripts/validate-tsc-types.mjs", "prepare": "husky", "prepare-www": "node scripts/www/rewriteImports.mjs", "changelog": "node ./scripts/changesets/release.mjs --preview", "changelog:range": "node ./scripts/changesets/range.mjs", "changeset:new": "node ./scripts/changesets/new.mjs", "check-changesets": "node ./scripts/changesets/check.mjs", "increment-version": "node ./scripts/npm/increment-version.mjs", "update-changelog": "node ./scripts/changesets/release.mjs", "release-notes": "node ./scripts/changesets/release-notes.mjs", "create-docs": "node ./scripts/create-docs.mjs", "update-version": "node ./scripts/updateVersion.mjs", "update-tsconfig": "node ./scripts/update-tsconfig.mjs", "update-flowconfig": "node ./scripts/update-flowconfig.mjs", "codemod-type-imports": "node ./scripts/codemod/type-imports.mjs", "update-examples": "node ./scripts/update-examples.mjs", "update-team-data": "node ./scripts/generate-team-data.mjs", "create-www-stubs": "node ./scripts/create-www-stubs.mjs", "update-packages": "pnpm run update-version && pnpm run update-tsconfig && pnpm run update-flowconfig && pnpm run create-docs && pnpm run create-www-stubs", "postversion": "node ./scripts/npm/postversion.mjs", "publish-extension": "pnpm --filter @lexical/devtools run zip && pnpm --filter @lexical/devtools run publish", "release": "pnpm run prepare-release && node ./scripts/npm/release.mjs", "setup-trusted-publishing": "node ./scripts/npm/setup-trusted-publishing.mjs" }, "devDependencies": { "@babel/core": "^8.0.6", "@babel/helper-module-imports": "^8.0.0", "@babel/plugin-transform-optional-catch-binding": "^8.0.1", "@babel/preset-env": "^8.0.6", "@babel/preset-flow": "^8.0.1", "@babel/preset-react": "^8.0.1", "@babel/preset-typescript": "^8.0.1", "@docusaurus/plugin-content-docs": "^3.10.2", "@docusaurus/types": "^3.10.2", "@eslint/compat": "^2.1.1", "@eslint/js": "^10.0.0", "@lexical/eslint-plugin": "workspace:*", "@lexical/eslint-plugin-internal": "workspace:*", "@playwright/test": "^1.63.0", "@prettier/sync": "^0.6.1", "@rollup/plugin-alias": "^6.0.0", "@rollup/plugin-babel": "^7.1.0", "@rollup/plugin-commonjs": "^29.0.3", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-replace": "^6.0.3", "@rollup/plugin-terser": "^1.0.0", "@types/babel__core": "^7.20.5", "@types/babel__helper-module-imports": "^7.18.3", "@types/fs-extra": "^11.0.4", "@types/jsdom": "^30.0.0", "@types/katex": "^0.16.7", "@types/markdown-it": "^14.2.0", "@types/minimist": "^1.2.5", "@types/node": "^26.6.2", "@types/prismjs": "^1.26.6", "@types/proper-lockfile": "^4.1.4", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/semver": "^7.7.1", "@vitejs/plugin-react": "^6.1.1", "@vitest/browser-playwright": "^5.0.1", "baseline-browser-mapping": "^2.11.26", "chokidar": "^5.0.0", "concurrently": "^10.0.5", "confusing-browser-globals": "^1.0.10", "cross-env": "^10.1.0", "esbuild": "^0.28.1", "eslint": "^10.11.0", "eslint-config-prettier": "^10.0.0", "eslint-plugin-compat": "^7.0.2", "eslint-plugin-header": "^3.1.1", "eslint-plugin-import-x": "^4.17.1", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-no-function-declare-after-return": "^1.1.0", "eslint-plugin-no-only-tests": "^3.4.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-simple-import-sort": "^14.0.0", "eslint-plugin-sort-keys-fix": "^1.1.2", "fast-check": "^4.10.2", "flow-bin": "^0.333.0", "flow-typed": "^4.1.1", "fs-extra": "^11.3.4", "get-east-asian-width": "1.7.0", "glob": "^13.0.6", "globals": "^17.12.0", "gzip-size": "^7.0.0", "hermes-estree": "^0.37.0", "hermes-parser": "^0.37.0", "hermes-transform": "^0.37.0", "husky": "^9.1.7", "jsdom": "^30.1.1", "lint-staged": "^17.5.1", "markdown-it": "^15.0.3", "markdown-it-cjk-friendly": "^3.0.0", "minimist": "^1.2.5", "npm-run-all": "^4.1.5", "pkg-pr-new": "^0.0.91", "playwright": "^1.63.0", "prettier": "^3.8.5", "prettier-plugin-hermes-parser": "^0.37.0", "prettier-plugin-organize-attributes": "^1.0.0", "prettier-plugin-tailwindcss": "^0.8.1", "proper-lockfile": "^4.1.2", "react": "^19.2.5", "react-dom": "^19.2.5", "react-test-renderer": "^19.3.0", "rollup": "^4.63.5", "ts-morph": "^28.0.0", "tsx": "4.23.15", "typedoc": "^0.28.20", "typescript": "^6.0.3", "typescript-eslint": "^8.70.1", "vite": "^8.3.3", "vitest": "^5.0.1", "y-websocket": "^2.1.0" }, "dependencies": { "semver": "^7.7.4", "yjs": "^13.6.31" }, "browserslist": [ "Chrome >= 86", "Firefox >= 115", "Safari >= 15", "Edge >= 86" ] }