{
  "name": "@lit-internal/monorepo",
  "private": true,
  "type": "module",
  "engines": {
    "node": ">=18.15.0",
    "npm": ">=7.0.0"
  },
  "workspaces": [
    "packages/*",
    "packages/labs/*",
    "packages/labs/test-projects/*",
    "packages/localize/examples/*",
    "examples/*",
    "playground"
  ],
  "scripts": {
    "benchmarks": "cd packages/benchmarks && npm run benchmarks",
    "bootstrap": "echo NOTICE: \\\"npm run bootstrap\\\" is no longer required. \\\"npm ci\\\" is sufficient.",
    "build": "wireit",
    "build:ts": "wireit",
    "build:lit-starter-ts": "wireit",
    "fix": "npm run lint:fix && npm run format:fix",
    "format": "npm run format:fix",
    "format:check": "prettier \"**/*.{cjs,html,js,json,md,ts}\" --check",
    "format:fix": "prettier \"**/*.{cjs,html,js,json,md,ts}\" --write",
    "ignore-sync": "ignore-sync .",
    "lint": "wireit",
    "lint:check": "wireit",
    "lint:fix": "eslint --ignore-pattern=examples/ --fix \"**/*.{js,ts}\"",
    "test": "npm run test:not-starter-kits && npm run test:lit-starter-js && npm run test:lit-starter-ts",
    "test:not-starter-kits": "wireit",
    "test:lit-starter-js": "wireit",
    "test:lit-starter-ts": "wireit",
    "test:package-exports": "wireit",
    "test:windows": "wireit",
    "prepare": "husky install",
    "changeset": "changeset",
    "version": "npm run changeset version && npm run update-version-vars",
    "update-version-vars": "node scripts/update-version-variables.js",
    "release": "npm run build && npm run changeset publish",
    "benchmark:size": "wireit"
  },
  "wireit": {
    "build": {
      "dependencies": [
        "./packages/benchmarks:build",
        "./packages/internal-scripts:build",
        "./packages/lit:build",
        "./packages/lit-element:build",
        "./packages/lit-html:build",
        "./packages/lit-starter-js:build",
        "build:lit-starter-ts",
        "./packages/localize:build",
        "./packages/localize-tools:build",
        "./packages/reactive-element:build",
        "./packages/context:build",
        "./packages/react:build",
        "./packages/task:build",
        "./packages/tests:build",
        "./packages/ts-transformers:build",
        "./packages/labs/analyzer:build",
        "./packages/labs/cli:build",
        "./packages/labs/compiler:build",
        "./packages/labs/context:build",
        "./packages/labs/eleventy-plugin-lit:build",
        "./packages/labs/forms:build",
        "./packages/labs/gen-utils:build",
        "./packages/labs/gen-wrapper-angular:build",
        "./packages/labs/gen-wrapper-react:build",
        "./packages/labs/gen-wrapper-vue:build",
        "./packages/labs/motion:build",
        "./packages/labs/nextjs:build",
        "./packages/labs/observers:build",
        "./packages/labs/preact-signals:build",
        "./packages/labs/react:build",
        "./packages/labs/rollup-plugin-minify-html-literals:build",
        "./packages/labs/router:build",
        "./packages/labs/scoped-registry-mixin:build",
        "./packages/labs/signals:build",
        "./packages/labs/ssr:build",
        "./packages/labs/ssr-client:build",
        "./packages/labs/ssr-dom-shim:build",
        "./packages/labs/ssr-react:build",
        "./packages/labs/task:build",
        "./packages/labs/testing:build",
        "./packages/labs/virtualizer:build",
        "./packages/labs/vue-utils:build",
        "./packages/labs/test-projects/test-element-a:build",
        "./packages/localize/examples/runtime-js:build",
        "./packages/localize/examples/runtime-ts:build",
        "./packages/localize/examples/transform-js:build",
        "./packages/localize/examples/transform-ts:build",
        "./packages/labs/test-projects/test-elements-react:build"
      ]
    },
    "build:ts": {
      "dependencies": [
        "./packages/internal-scripts:build:ts",
        "./packages/lit:build:ts",
        "./packages/lit-element:build:ts",
        "./packages/lit-html:build:ts",
        "./packages/localize:build:ts",
        "./packages/localize-tools:build:ts",
        "./packages/reactive-element:build:ts",
        "./packages/ts-transformers:build:ts",
        "./packages/labs/compiler:build:ts",
        "./packages/labs/context:build:ts",
        "./packages/labs/eleventy-plugin-lit:build:ts",
        "./packages/labs/forms:build:ts",
        "./packages/labs/motion:build:ts",
        "./packages/labs/nextjs:build:ts",
        "./packages/labs/observers:build:ts",
        "./packages/labs/preact-signals:build:ts",
        "./packages/labs/react:build:ts",
        "./packages/labs/rollup-plugin-minify-html-literals:build:ts",
        "./packages/labs/router:build:ts",
        "./packages/labs/scoped-registry-mixin:build:ts",
        "./packages/labs/signals:build:ts",
        "./packages/labs/ssr:build:ts",
        "./packages/labs/ssr-client:build:ts",
        "./packages/labs/ssr-dom-shim:build:ts",
        "./packages/labs/ssr-react:build:ts",
        "./packages/labs/task:build:ts",
        "./packages/labs/testing:build:ts",
        "./packages/labs/virtualizer:build:ts",
        "./packages/labs/vue-utils:build:ts"
      ]
    },
    "build:lit-starter-ts": {
      "#comment": [
        "The starter kits are special because they're templates for other",
        "repos, so we don't want it to use wireit directly. Instead, this",
        "hack integrates it into the overall build with correct ordering."
      ],
      "command": "cd packages/lit-starter-ts && npm run build",
      "files": [
        "./packages/lit-starter-ts/tsconfig.json",
        "./packages/lit-starter-ts/src/**/*.ts"
      ],
      "output": [
        "./packages/lit-starter-ts/my-element.{js,js.map,d.ts,d.ts.map}",
        "./packages/lit-starter-ts/test/"
      ],
      "dependencies": [
        "./packages/lit:build:ts:types"
      ]
    },
    "test:not-starter-kits": {
      "#comment": [
        "We run the starter kit tests separately because when running in our",
        "CI they require a longer browserStartTimeout, but we don't want to",
        "change that default because it's a user template.",
        "Also, note that context, motion, observers, router, ",
        "scoped-registry-mixin, task, lit-element, lit-html, and ",
        "reactive-element are all tested as part of ./packages/tests.",
        "See ./packages/tests/src/web-test-runner.config.ts"
      ],
      "dependencies": [
        "test:package-exports",
        "./packages/localize:test",
        "./packages/localize-tools:test",
        "./packages/react:test",
        "./packages/tests:test",
        "./packages/tests-typescript:test",
        "./packages/ts-transformers:test",
        "./packages/labs/analyzer:test",
        "./packages/labs/cli:test",
        "./packages/labs/cli-localize:test",
        "./packages/labs/compiler:test",
        "./packages/labs/eleventy-plugin-lit:test",
        "./packages/labs/eslint-plugin:test",
        "./packages/labs/forms:test",
        "./packages/labs/gen-manifest:test",
        "./packages/labs/gen-utils:test",
        "./packages/labs/gen-wrapper-angular:test",
        "./packages/labs/gen-wrapper-react:test",
        "./packages/labs/gen-wrapper-vue:test",
        "./packages/labs/nextjs:test",
        "./packages/labs/preact-signals:test",
        "./packages/labs/rollup-plugin-minify-html-literals:test",
        "./packages/labs/signals:test",
        "./packages/labs/ssr:test",
        "./packages/labs/ssr-client:test",
        "./packages/labs/ssr-dom-shim:test",
        "./packages/labs/ssr-react:test",
        "./packages/labs/testing:test",
        "./packages/labs/virtualizer:test",
        "./examples/preact:test"
      ]
    },
    "test:lit-starter-js": {
      "command": "cd packages/lit-starter-js && npm test",
      "dependencies": [
        "./packages/lit:build"
      ],
      "files": [
        "./packages/lit-starter-js/web-test-runner.config.js"
      ],
      "output": []
    },
    "test:lit-starter-ts": {
      "command": "cd packages/lit-starter-ts && npm test",
      "dependencies": [
        "build:lit-starter-ts",
        "./packages/lit:build"
      ],
      "files": [
        "./packages/lit-starter-ts/web-test-runner.config.js"
      ],
      "output": []
    },
    "test:package-exports": {
      "command": "add-browser-exports test",
      "dependencies": [
        "./packages/internal-scripts:build"
      ]
    },
    "test:windows": {
      "dependencies": [
        "./packages/labs/analyzer:test",
        "./packages/labs/cli:test",
        "./packages/labs/gen-utils:test",
        "./packages/labs/gen-wrapper-angular:test",
        "./packages/labs/gen-wrapper-react:test",
        "./packages/labs/gen-wrapper-vue:test",
        "./packages/labs/testing:test"
      ]
    },
    "benchmark:size": {
      "dependencies": [
        "./packages/lit:build:rollup",
        "./packages/lit-html:build:rollup"
      ],
      "files": [
        "scripts/check-size.js"
      ],
      "output": [
        "scripts/check-size-out.md"
      ],
      "command": "node scripts/check-size.js"
    },
    "lint": {
      "dependencies": [
        "lint:check"
      ]
    },
    "lint:check": {
      "files": [
        "**/*.{js,ts}",
        ".eslintignore",
        ".eslintrc.json",
        "!**/examples/**/*.{js,ts}",
        "!**/example/**/*.{js,ts}",
        "!node_modules/"
      ],
      "output": [],
      "command": "eslint --ignore-pattern \"examples/\" --ignore-pattern \"example/\" \"**/*.{js,ts}\""
    },
    "rollup-config": {
      "files": [
        "rollup-common.js"
      ]
    }
  },
  "devDependencies": {
    "@babel/eslint-parser": "^7.17.0",
    "@changesets/cli": "^2.24.4",
    "@changesets/get-github-info": "^0.5.0",
    "@lit-labs/eleventy-plugin-lit": "^1.0.5",
    "@rollup/plugin-commonjs": "^26.0.1",
    "@rollup/plugin-inject": "^5.0.5",
    "@rollup/plugin-node-resolve": "^15.2.3",
    "@rollup/plugin-replace": "^5.0.7",
    "@rollup/plugin-terser": "^0.4.4",
    "@rollup/plugin-virtual": "^3.0.2",
    "@types/chai": "^4.3.1",
    "@types/mocha": "^9.1.1",
    "@types/node": "^22.17.0",
    "@typescript-eslint/eslint-plugin": "^6.4.1",
    "@typescript-eslint/parser": "^6.4.1",
    "@web/dev-server": "^0.1.32",
    "@web/dev-server-legacy": "^1.0.0",
    "@web/test-runner": "^0.15.0",
    "@web/test-runner-mocha": "^0.7.5",
    "@web/test-runner-playwright": "^0.9.0",
    "@web/test-runner-saucelabs": "^0.8.0",
    "chai": "^5.1.0",
    "cross-env": "^7.0.3",
    "eslint": "^8.47.0",
    "eslint-plugin-import": "^2.28.1",
    "eslint-plugin-no-only-tests": "^3.1.0",
    "husky": "^8.0.1",
    "ignore-sync": "^5.0.1",
    "lint-staged": "^13.0.3",
    "mocha": "^10.0.0",
    "prettier": "^3.2.5",
    "rollup": "^4.18.0",
    "rollup-plugin-copy": "^3.5.0",
    "rollup-plugin-sourcemaps": "^0.6.3",
    "rollup-plugin-summary": "^2.0.1",
    "rollup-plugin-terser": "^7.0.2",
    "strip-indent": "^4.0.0",
    "typescript": "~5.9.0",
    "uvu": "^0.5.6",
    "wireit": "^0.14.12"
  },
  "overrides": {
    "@rollup/pluginutils": "^5.1.0",
    "rollup-plugin-terser": {
      "rollup": "$rollup"
    }
  },
  "lint-staged": {
    "**/*.{cjs,html,js,json,md,ts}": "prettier --write --no-error-on-unmatched-pattern",
    "{*.{js,ts},!(examples)/**/*.{js,ts}}": "eslint --fix"
  }
}
