elementor/package.json
Bartosz Rękawek 97f3825296
Internal: Change supported node engines to >=20.19.0 (#36202)
## PR Checklist
<!-- 
Please check if your PR fulfills the following requirements:
**Filling out the template is required.** Any pull request that does not
include enough information to be reviewed in a timely manner may be
closed at the maintainers' discretion.
 -->
- [ ] The commit message follows our guidelines:
https://github.com/elementor/elementor/blob/master/.github/CONTRIBUTING.md


## PR Type
What kind of change does this PR introduce?
<!-- Please check the one that applies to this PR using "x" with no
spaces eg: [x]. -->
- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, local variables)
- [ ] Refactoring (no functional changes, no api changes)
- [ ] Build related changes
- [ ] CI related changes
- [ ] Documentation content changes
- [ ] Other... Please describe:

## Summary

This PR can be summarized in the following changelog entry:

*

## Description
An explanation of what is done in this PR

*

## Test instructions
This PR can be tested by following these steps:

*

## Quality assurance

- [ ] I have tested this code to the best of my abilities
- [ ] I have added unittests to verify the code works as intended
- [ ] Docs have been added / updated (for bug fixes / features)

Fixes #

<!--start_gitstream_placeholder-->
###  PR Description
## 1. Problem & Context
Lowering minimum Node.js requirement from 24.15.0 to 20.19.0 (ED-24530)
to broaden compatibility while maintaining LTS stability.

## 2. What Changed (Where)
- `package.json`: Updated `engines.node` from `>=24.15.0` to `>=20.19.0`

## 3. How It Works
npm will enforce this minimum version during installation; developers on
Node <20.19.0 will see installation failures. No runtime code changes.

## 4. Risks
Verify all CI/CD pipelines and developer workstations support 20.19.0+.
Confirm no breaking dependencies require Node 24.x features.

_Generated by LinearB AI and added by gitStream._
<sub>AI-generated content may contain inaccuracies. Please verify before
using.
💡 **Tip:** You can customize your AI Description using **Guidelines**
[Learn
how](https://docs.gitstream.cm/automation-actions/#describe-changes)</sub>
<!--end_gitstream_placeholder-->
2026-06-15 11:17:40 +02:00

230 lines
10 KiB
JSON
Vendored

{
"name": "elementor",
"slug": "elementor",
"version": "4.2.0",
"packageManager": "npm@10.0.0",
"author": "Elementor Team",
"homepage": "https://elementor.com/",
"scripts": {
"create-release-branch": "node scripts/create-version-change.js",
"start": "npm run composer:no-dev && npm run build:packages && npm run styles && npm run scripts",
"watch": "npm run build:tools && npm run composer:no-dev && npx concurrently \"npm run watch:packages\" \"npm run styles:watch\" \"npm run scripts:watch\"",
"watch:packages": "concurrently 'turbo dev --parallel' 'tsc -w --project packages/tsconfig.json'",
"build": "npm run build:packages && grunt build",
"build:docker": "rm -rf docker-output && docker build --target output --output type=local,dest=./docker-output . && cd docker-output/elementor && zip -r elementor.zip . && echo 'Build output available in ./docker-output/elementor/elementor.zip'",
"build:packages": "turbo build",
"build:tools": "turbo build --filter='./packages/packages/tools/*'",
"build:ci": "turbo build --concurrency 1 && npx grunt webpack:production",
"install": "npm ci --ignore-scripts && composer install",
"install:ci": "npm ci --ignore-scripts",
"composer:no-dev": "composer install --optimize-autoloader --prefer-dist && composer install --no-scripts --no-dev && composer dump-autoload",
"reinstall": "rm -rf node_modules && npm cache clean --force && npm ci",
"hard-reinstall": "rm -rf node_modules **/node_modules package-lock.json && npm cache clean --force && npm i --ignore-scripts",
"env:setup": "bash scripts/setup-test-environment.sh",
"env:setup:with-playwright": "bash scripts/setup-test-environment.sh && npx playwright install chromium",
"wp-env": "wp-env",
"test:linux": "node ./run-on-linux.js",
"setup-templates": "rm -rf ./templates && mkdir -p ./templates/playwright && mkdir -p ./templates/lighthouse && cp ./tests/playwright/templates/* ./templates/playwright && cp ./tests/lighthouse/templates/* ./templates/lighthouse",
"start-local-server": "npm run setup-templates && wp-lite-env start --config=./tests/playwright/.playwright-wp-lite-env.json --port=8888 && wp-lite-env start --config=./tests/playwright/.playwright-wp-lite-env.json --port=8889",
"test:php": "docker-compose run --rm wordpress_phpunit phpunit",
"test:php_multisite": "docker-compose run -e WP_MULTISITE=1 --rm wordpress_phpunit phpunit",
"test:setup:playwright": "wp-lite-env cli --config=./tests/playwright/.playwright-wp-lite-env.json --port=8888 --command=\"bash elementor-config/setup.sh\" && wp-lite-env cli --config=./tests/playwright/.playwright-wp-lite-env.json --port=8889 --command=\"bash elementor-config/setup.sh\"",
"test:playwright": "playwright test -c tests/playwright/playwright.config.ts",
"test:playwright:debug": "npm run test:playwright -- --debug",
"test:playwright:elements-regression": "playwright test -c tests/elements-regression/playwright.config.ts",
"test:playwright:elements-regression:core": "playwright test -c tests/elements-regression/playwright.config.ts tests/elements-regression/tests/elements-regression.test.ts",
"test:playwright:elements-regression:atomic": "playwright test -c tests/elements-regression/playwright.config.ts tests/elements-regression/tests/atomic-elements-regression.test.ts",
"test:playwright:elements-regression:linux": "node ./tests/elements-regression/scripts/run-on-linux.js",
"test:playwright:elements-regression:linux:update-snapshots": "npm run test:playwright:elements-regression:linux -- -u",
"test:jest": "jest --config='./tests/jest/jest.config.js'",
"test:packages": "jest --config='./packages/jest.config.js'",
"test": "npm run test:jest && npm run test:packages",
"scripts": "grunt scripts",
"scripts:watch": "grunt watch_scripts",
"styles": "grunt styles",
"styles:watch": "grunt watch_styles",
"lint": "eslint . && npm run lint -w elementor-packages",
"format": "npm run format:eslint && npm run format:packages",
"format:eslint": "NODE_OPTIONS='--max-old-space-size=8192' eslint . --fix",
"format:packages": "npm run format -w elementor-packages",
"setup:testing": "bash scripts/setup-testing.sh",
"restart:testing": "bash scripts/setup-testing.sh --restart",
"packages:version": "npm run version -w elementor-packages",
"packages:release": "turbo build && npm run release -w elementor-packages",
"wp-playground": "npx -y @wp-playground/cli server --mount=.:/wordpress/wp-content/plugins/elementor --blueprint=./tests/playwright/blueprints/local.json",
"wp-playground:ci": "npx -y @wp-playground/cli server --mount=./build:/wordpress/wp-content/plugins/elementor --blueprint=./tests/playwright/blueprints/ci.json",
"full-e2e-local": "npx concurrently \"npm run watch\" \"npm run wp-playground\" \"npm run test:playwright -- --ui\"",
"prepare": "husky"
},
"engines": {
"node": ">=20.19.0",
"npm": ">=10.0.0"
},
"workspaces": [
"packages",
"packages/packages/tools/*",
"packages/packages/libs/*",
"packages/packages/core/*",
"packages/apps/*"
],
"devDependencies": {
"@actions/core": "^1.11.1",
"@axe-core/playwright": "^4.10.1",
"@babel/core": "^7.26.0",
"@babel/eslint-parser": "^7.25.7",
"@babel/plugin-syntax-import-assertions": "^7.26.0",
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
"@babel/plugin-transform-react-jsx": "^7.25.9",
"@babel/plugin-transform-runtime": "^7.25.9",
"@babel/preset-env": "^7.26.0",
"@babel/preset-react": "^7.26.3",
"@babel/preset-typescript": "^7.26.0",
"@babel/runtime-corejs3": "^7.26.0",
"@elementor/wp-lite-env": "^0.0.20",
"@emotion/babel-plugin": "^11.13.5",
"@jest/globals": "~29.7.0",
"@lodder/grunt-postcss": "^3.1.1",
"@playwright/test": "~1.54.1",
"@swc/core": "^1.10.1",
"@swc/jest": "^0.2.37",
"@tanstack/eslint-plugin-query": "^5.81.2",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.1.0",
"@types/glob": "^8.1.0",
"@types/jest": "^29.5.14",
"@types/react-dom": "^18.3.1",
"@typescript-eslint/eslint-plugin": "8.56.1",
"@typescript-eslint/parser": "^8.6.0",
"@wordpress/babel-plugin-import-jsx-pragma": "^5.9.0",
"@wordpress/babel-preset-default": "^3.0.2",
"@wordpress/eslint-plugin": "^21.1.0",
"@wp-playground/client": "^2.0.13",
"allure-commandline": "2.41.0",
"allure-playwright": "^2.10.0",
"autoprefixer": "^10.4.20",
"babel-jest": "^29.7.0",
"babel-loader": "^9.2.1",
"baseline-browser-mapping": "^2.9.19",
"chalk": "^5.3.0",
"commander": "^14.0.0",
"concurrently": "^9.2.0",
"cross-env": "^7.0.3",
"cspell": "^8.17.1",
"cssnano": "^7.0.6",
"dotenv": "^16.4.7",
"eslint": "^8.57.1",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest-dom": "^5.4.0",
"eslint-plugin-local-rules": "^3.0.2",
"eslint-plugin-no-jquery": "^2.7.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-compiler": "latest",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-testing-library": "^7.2.0",
"eslint-plugin-unicorn": "^56.0.1",
"eslint-webpack-plugin": "^4.0.1",
"glob": "^11.0.3",
"grunt": "^1.5.3",
"grunt-banner": "~0.6.0",
"grunt-checktextdomain": "~1.0.1",
"grunt-cli": "^1.5.0",
"grunt-concurrent": "^3.0.0",
"grunt-contrib-clean": "~2.0.1",
"grunt-contrib-copy": "~1.0.0",
"grunt-contrib-sass": "~2.0.0",
"grunt-contrib-watch": "^1.1.0",
"grunt-karma": "4.0.2",
"grunt-sass": "^3.1.0",
"grunt-webpack": "^7.0.0",
"husky": "^9.1.7",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"karma": "^6.4.4",
"karma-chrome-launcher": "^3.2.0",
"karma-coverage": "^2.2.1",
"karma-coverage-istanbul-reporter": "3.0.3",
"karma-fail-fast-reporter": "1.0.5",
"karma-fixture": "0.2.6",
"karma-html2js-preprocessor": "1.1.0",
"karma-qunit": "^4.2.1",
"karma-remap-coverage": "0.1.5",
"knip": "^5.54.1",
"lighthouse": "^12.3.0",
"lint-staged": "^16.2.7",
"load-grunt-tasks": "^5.1.0",
"mini-css-extract-plugin": "^2.9.2",
"msw": "^2.6.8",
"path": "^0.12.7",
"playwright-lighthouse": "^4.0.0",
"prettier": "npm:wp-prettier@^3.0.3",
"qunit": "^2.23.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-query": "^3.39.1",
"sass": "^1.83.0",
"semver": "^7.7.2",
"source-map-loader": "^5.0.0",
"styled-components": "^6.1.13",
"terser-webpack-plugin": "^5.3.11",
"ts-node": "^10.9.2",
"tsup": "^8.3.5",
"turbo": "^2.3.3",
"typescript": "^5.7.2",
"webpack": "^5.97.1",
"write": "^2.0.0"
},
"dependencies": {
"@elementor/elementor-one-assets": "0.4.35",
"@elementor/icons": "~1.75.1",
"@elementor/ui": "1.39.1",
"@reach/router": "1.3.4",
"@reduxjs/toolkit": "^1.9.7",
"@woocommerce/admin-layout": "^1.1.0",
"@wordpress/components": "^27.4.0",
"@wordpress/core-data": "^7.5.0",
"@wordpress/data": "^10.5.0",
"@wordpress/dom-ready": "^3.45.0",
"@wordpress/element": "^5.22.0",
"@wordpress/plugins": "^7.5.0",
"dayjs": "^1.11.18",
"dompurify": "^3.2.6",
"html-to-image": "^1.11.11",
"mime": "^3.0.0",
"mixpanel-browser": "^2.50.0",
"prop-types": "^15.8.1",
"reach-router-hash-history": "0.0.3",
"react-avatar-editor": "^13.0.0",
"react-draggable": "^4.4.5",
"react-infinite-scroller": "^1.2.6",
"react-markdown": "^8.0.5",
"react-redux": "^8.1.3",
"react-sketch-canvas": "^6.2.0",
"validator": "^13.11.0"
},
"overrides": {
"@wordpress/eslint-plugin": {
"eslint-plugin-jest": "^28.14.0"
},
"nwsapi": "2.2.13",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-redux": "^8.1.3",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.3.1",
"date-fns": "^3.6.0",
"scheduler": "^0.20.0",
"form-data": "4.0.4",
"baseline-browser-mapping": "^2.9.19"
},
"lint-staged": {
"packages/**/*.{js,jsx,ts,tsx}": [
"node scripts/lint-packages-staged.js"
],
"*.{js,jsx,ts,tsx}": [
"eslint --fix"
]
}
}