diff --git a/.drone.yml b/.drone.yml index cab113d139b9c..72d23ab75ba75 100644 --- a/.drone.yml +++ b/.drone.yml @@ -39,7 +39,7 @@ steps: - ./libraries/vendor/bin/phan - name: npm - image: node:16-bullseye-slim + image: node:18-bullseye-slim depends_on: [ phpcs ] volumes: - name: npm-cache @@ -462,6 +462,6 @@ trigger: --- kind: signature -hmac: 06ecea6156e9c3f4cbb17d5e5e876a8c2b256e0e98412ce6351c914b2adbda97 +hmac: c80f54f77ce8c648018d3946dc20d86bf3491484662a0e5defd8d9453f33cd92 ... diff --git a/build/bump.php b/build/bump.php index 2c0ac2997b98e..46a16c13149bf 100644 --- a/build/bump.php +++ b/build/bump.php @@ -251,7 +251,9 @@ function usage($command) if (file_exists($rootPath . $packageJsonFile)) { $package = json_decode(file_get_contents($rootPath . $packageJsonFile)); $package->version = $version['release']; - file_put_contents($rootPath . $packageJsonFile, json_encode($package, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); + + // @todo use a native formatter whenever https://github.com/php/php-src/issues/8864 is resolved + file_put_contents($rootPath . $packageJsonFile, str_replace(' ', ' ', json_encode($package, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES))); } // Updates the version in readme files. diff --git a/package-lock.json b/package-lock.json index 1a614caf71272..7a400ae927282 100644 --- a/package-lock.json +++ b/package-lock.json @@ -86,8 +86,8 @@ "terser": "^5.19.3" }, "engines": { - "node": ">=16", - "npm": ">=8.5.5" + "node": ">=18", + "npm": ">=9.6.7" } }, "node_modules/@aashutoshrathi/word-wrap": { diff --git a/package.json b/package.json index c84c264bef639..595303de43a4a 100644 --- a/package.json +++ b/package.json @@ -1,115 +1,114 @@ { - "name": "joomla", - "version": "4.4.0", - "description": "Joomla CMS", - "license": "GPL-2.0-or-later", - "repository": { - "type": "git", - "url": "https://github.com/joomla/joomla-cms.git" - }, - "__engines_upgrades__": "Dockerfiles @ github.com/joomla-projects/docker-images need also upgrade", - "engines": { - "node": ">=16", - "npm": ">=8.5.5" - }, - "scripts": { - "build:js": "node build/build.js --compile-js", - "build:css": "node build/build.js --compile-css", - "build:bs5": "node build/build.js --compile-bs", - "build:com_media": "set NODE_ENV=PRODUCTION && node build/build.js --com-media", - "build:com_media:dev": "set NODE_ENV=DEVELOPMENT && node build/build.js --com-media", - "watch": "node build/build.js --watch", - "watch:com_media": "node build/build.js --watch-com-media", - "lint:js": "eslint --config build/.eslintrc --ignore-pattern '/media/' --ext .es6.js,.es6,.vue .", - "lint:testjs": "eslint --config build/.eslintrc --ext .js tests/System", - "lint:css": "stylelint --config build/.stylelintrc.json \"administrator/components/com_media/resources/**/*.scss\" \"administrator/templates/**/*.scss\" \"build/media_source/**/*.scss\" \"templates/**/*.scss\" \"installation/template/**/*.scss\"", - "install": "node build/build.js --prepare", - "update": "node build/build.js --copy-assets && node build/build.js --build-pages && node build/build.js --compile-js && node build/build.js --compile-css && node build/build.js --compile-bs && set NODE_ENV=PRODUCTION && node build/build.js --com-media", - "gzip": "node build/build.js --gzip", - "versioning": "node build/build.js --versioning", - "browserlist:update": "npx browserslist@latest --update-db", - "cypress:install": "cypress install", - "cypress:open": "cypress open", - "cypress:run": "cypress run" - }, - "browserslist": [ - "last 2 major version", - "not ie < 11" - ], - "dependencies": { - "@claviska/jquery-minicolors": "^2.3.6", - "@fortawesome/fontawesome-free": "^5.15.4", - "@joomla/joomla-a11y-checker": "^1.0.0", - "@popperjs/core": "^2.11.8", - "@webcomponents/webcomponentsjs": "^2.8.0", - "accessibility": "^3.0.17", - "awesomplete": "^1.1.5", - "bootstrap": "~5.3.0", - "choices.js": "^9.1.0", - "chosen-js": "^1.8.7", - "codemirror": "^5.65.15", - "cropperjs": "^1.6.0", - "diff": "^5.1.0", - "dotenv": "^16.3.1", - "dragula": "^3.7.3", - "focus-visible": "^5.2.0", - "hotkeys-js": "^3.12.0", - "joomla-ui-custom-elements": "^0.2.0", - "jquery": "^3.7.1", - "jquery-migrate": "^3.4.1", - "mark.js": "^8.11.1", - "mediaelement": "^5.1.1", - "metismenujs": "^1.4.0", - "punycode": "^2.3.0", - "qrcode-generator": "^1.4.4", - "roboto-fontface": "^0.10.0", - "shepherd.js": "^11.2.0", - "short-and-sweet": "^1.0.4", - "skipto": "^4.1.7", - "tinymce": "^5.10.7", - "vue": "3.2.45", - "vue-focus-lock": "^2.0.5", - "vuex": "^4.1.0", - "vuex-persist": "^3.1.3" - }, - "devDependencies": { - "@babel/core": "^7.22.11", - "@babel/preset-env": "^7.22.14", - "@dgrammatiko/compress": "^1.0.4", - "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^21.1.0", - "@rollup/plugin-node-resolve": "^13.3.0", - "@rollup/plugin-replace": "^3.1.0", - "@vue/compiler-sfc": "^3.3.4", - "autoprefixer": "^10.4.15", - "chokidar": "^3.5.3", - "commander": "^8.3.0", - "core-js": "^3.32.1", - "cssnano": "^5.1.15", - "cypress": "^13.1.0", - "eslint": "^8.48.0", - "eslint-config-airbnb-base": "^15.0.0", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-vue": "^8.7.1", - "fs-extra": "^10.1.0", - "ini": "^2.0.0", - "jasmine-core": "^3.99.1", - "joomla-cypress": "^0.0.16", - "mysql": "^2.18.1", - "postcss": "^8.4.29", - "postcss-scss": "^4.0.7", - "postgres": "^3.3.5", - "recursive-readdir": "^2.2.3", - "rimraf": "^3.0.2", - "rollup": "^2.79.1", - "rollup-plugin-vue": "^6.0.0", - "rtlcss": "^3.5.0", - "sass-embedded": "^1.66.1", - "smtp-tester": "^2.1.0", - "stylelint": "^14.16.1", - "stylelint-config-standard": "^24.0.0", - "stylelint-order": "^5.0.0", - "stylelint-scss": "^4.7.0", - "terser": "^5.19.3" - } -} \ No newline at end of file + "name": "joomla", + "version": "4.4.0", + "description": "Joomla CMS", + "license": "GPL-2.0-or-later", + "repository": { + "type": "git", + "url": "https://github.com/joomla/joomla-cms.git" + }, + "engines": { + "node": ">=18", + "npm": ">=9.6.7" + }, + "scripts": { + "build:js": "node build/build.js --compile-js", + "build:css": "node build/build.js --compile-css", + "build:bs5": "node build/build.js --compile-bs", + "build:com_media": "set NODE_ENV=PRODUCTION && node build/build.js --com-media", + "build:com_media:dev": "set NODE_ENV=DEVELOPMENT && node build/build.js --com-media", + "watch": "node build/build.js --watch", + "watch:com_media": "node build/build.js --watch-com-media", + "lint:js": "eslint --config build/.eslintrc --ignore-pattern '/media/' --ext .es6.js,.es6,.vue .", + "lint:testjs": "eslint --config build/.eslintrc --ext .js tests/System", + "lint:css": "stylelint --config build/.stylelintrc.json \"administrator/components/com_media/resources/**/*.scss\" \"administrator/templates/**/*.scss\" \"build/media_source/**/*.scss\" \"templates/**/*.scss\" \"installation/template/**/*.scss\"", + "install": "node build/build.js --prepare", + "update": "node build/build.js --copy-assets && node build/build.js --build-pages && node build/build.js --compile-js && node build/build.js --compile-css && node build/build.js --compile-bs && set NODE_ENV=PRODUCTION && node build/build.js --com-media", + "gzip": "node build/build.js --gzip", + "versioning": "node build/build.js --versioning", + "browserlist:update": "npx browserslist@latest --update-db", + "cypress:install": "cypress install", + "cypress:open": "cypress open", + "cypress:run": "cypress run" + }, + "browserslist": [ + "last 2 major version", + "not ie < 11" + ], + "dependencies": { + "@claviska/jquery-minicolors": "^2.3.6", + "@fortawesome/fontawesome-free": "^5.15.4", + "@joomla/joomla-a11y-checker": "^1.0.0", + "@popperjs/core": "^2.11.8", + "@webcomponents/webcomponentsjs": "^2.8.0", + "accessibility": "^3.0.17", + "awesomplete": "^1.1.5", + "bootstrap": "~5.3.0", + "choices.js": "^9.1.0", + "chosen-js": "^1.8.7", + "codemirror": "^5.65.15", + "cropperjs": "^1.6.0", + "diff": "^5.1.0", + "dotenv": "^16.3.1", + "dragula": "^3.7.3", + "focus-visible": "^5.2.0", + "hotkeys-js": "^3.12.0", + "joomla-ui-custom-elements": "^0.2.0", + "jquery": "^3.7.1", + "jquery-migrate": "^3.4.1", + "mark.js": "^8.11.1", + "mediaelement": "^5.1.1", + "metismenujs": "^1.4.0", + "punycode": "^2.3.0", + "qrcode-generator": "^1.4.4", + "roboto-fontface": "^0.10.0", + "shepherd.js": "^11.2.0", + "short-and-sweet": "^1.0.4", + "skipto": "^4.1.7", + "tinymce": "^5.10.7", + "vue": "3.2.45", + "vue-focus-lock": "^2.0.5", + "vuex": "^4.1.0", + "vuex-persist": "^3.1.3" + }, + "devDependencies": { + "@babel/core": "^7.22.11", + "@babel/preset-env": "^7.22.14", + "@dgrammatiko/compress": "^1.0.4", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^21.1.0", + "@rollup/plugin-node-resolve": "^13.3.0", + "@rollup/plugin-replace": "^3.1.0", + "@vue/compiler-sfc": "^3.3.4", + "autoprefixer": "^10.4.15", + "chokidar": "^3.5.3", + "commander": "^8.3.0", + "core-js": "^3.32.1", + "cssnano": "^5.1.15", + "cypress": "^13.1.0", + "eslint": "^8.48.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-vue": "^8.7.1", + "fs-extra": "^10.1.0", + "ini": "^2.0.0", + "jasmine-core": "^3.99.1", + "joomla-cypress": "^0.0.16", + "mysql": "^2.18.1", + "postcss": "^8.4.29", + "postcss-scss": "^4.0.7", + "postgres": "^3.3.5", + "recursive-readdir": "^2.2.3", + "rimraf": "^3.0.2", + "rollup": "^2.79.1", + "rollup-plugin-vue": "^6.0.0", + "rtlcss": "^3.5.0", + "sass-embedded": "^1.66.1", + "smtp-tester": "^2.1.0", + "stylelint": "^14.16.1", + "stylelint-config-standard": "^24.0.0", + "stylelint-order": "^5.0.0", + "stylelint-scss": "^4.7.0", + "terser": "^5.19.3" + } +}