diff --git a/docs/design-docs/playground-cli-workflow.md b/docs/design-docs/playground-cli-workflow.md index 4a4e17710d..07a2c4e246 100644 --- a/docs/design-docs/playground-cli-workflow.md +++ b/docs/design-docs/playground-cli-workflow.md @@ -64,7 +64,7 @@ graph TB RunCLI --> SetupMode{Setup Mode?} SetupMode --> |Yes| RunBlueprint["Command run-blueprint
Installs WP if needed
Runs blueprint steps
Process exits on completion"] - SetupMode --> |No| StartServer["Command server
skipWordPressSetup true
Keeps process running"] + SetupMode --> |No| StartServer["Command server
wordpressInstallMode: install-from-existing-files-if-needed
Keeps process running"] RunBlueprint --> MountDirs["Mount Directories
wordpress to site path
internal studio mu-plugins
internal shared mu-plugins"] @@ -102,7 +102,7 @@ graph TB StartProcess --> ForkChild["Fork utility process
playground-server-process-child ts"] - ForkChild --> RunServer["runCLI with server command
skipWordPressSetup true
port assigned port
mount paths"] + ForkChild --> RunServer["runCLI with server command
wordpressInstallMode: install-from-existing-files-if-needed
port assigned port
mount paths"] RunServer --> WaitReady[Wait for ready message] diff --git a/package-lock.json b/package-lock.json index 80b8eea02a..92a4424cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,9 +15,9 @@ "@formatjs/intl-locale": "^3.4.5", "@formatjs/intl-localematcher": "^0.5.4", "@inquirer/prompts": "^7.10.1", - "@php-wasm/node": "^3.0.19", - "@php-wasm/scopes": "^3.0.19", - "@php-wasm/universal": "^3.0.19", + "@php-wasm/node": "^3.0.21", + "@php-wasm/scopes": "^3.0.21", + "@php-wasm/universal": "^3.0.21", "@reduxjs/toolkit": "^2.7.0", "@rive-app/react-canvas": "^4.12.0", "@sentry/electron": "^6.5.0", @@ -27,9 +27,9 @@ "@wordpress/dataviews": "^10.2.0", "@wordpress/i18n": "^6.1.0", "@wordpress/icons": "^11.1.0", - "@wp-playground/blueprints": "^3.0.19", - "@wp-playground/cli": "^3.0.19", - "@wp-playground/wordpress": "^3.0.14", + "@wp-playground/blueprints": "^3.0.21", + "@wp-playground/cli": "^3.0.21", + "@wp-playground/wordpress": "^3.0.21", "archiver": "^6.0.1", "atomically": "^2.0.3", "cli-table3": "^0.6.5", @@ -2356,10 +2356,12 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", - "license": "MIT", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, "engines": { "node": ">=6.9.0" } @@ -7690,15 +7692,15 @@ } }, "node_modules/@php-wasm/fs-journal": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-3.0.19.tgz", - "integrity": "sha512-xws2CbKwnkupdZb1L6pYbIjku9lIKlvxv+mMwt6l/wwzI+IFLRVhuqIn84GDPtU9mzDN7GLkDuwcfxz2StTJvg==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/fs-journal/-/fs-journal-3.0.21.tgz", + "integrity": "sha512-8obzJX2U6VNAi0cmLyo5sdW8+QElVo/onGoWP2WqPr9+7xkbN4UVADclSz/mlI7yq7fsS/gmDfwJry4LLujbnw==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", + "@php-wasm/logger": "3.0.21", + "@php-wasm/node": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", "express": "4.21.2", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", @@ -7723,12 +7725,12 @@ } }, "node_modules/@php-wasm/logger": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-3.0.19.tgz", - "integrity": "sha512-Nqg4bFdfdDkgwKUjSQSekpZYHFL7B5B8B+C0g1nTbOP4qj0A1v26Nek/1cK26EFV2nKEo6Fp4wtLdkh6FU2hMg==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/logger/-/logger-3.0.21.tgz", + "integrity": "sha512-KYyIH/MCXsRfQWMRGkcnzDRJPj/hDWafqHXDrZBVnhO49kj0gWvenR7Rk6Hvm5fhk8aRIrgVzL6+pAIe0JO5Ew==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/node-polyfills": "3.0.19" + "@php-wasm/node-polyfills": "3.0.21" }, "engines": { "node": ">=20.18.3", @@ -7739,16 +7741,16 @@ } }, "node_modules/@php-wasm/node": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-3.0.19.tgz", - "integrity": "sha512-FUsaN4GQ2Lqw4UG4iujjDpEjv/BFADtDZEk2+xFrACrvU5sOxjsKER9SDh5MYiqTmIDAGcR2Y+VgSDaF0gK80Q==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/node/-/node-3.0.21.tgz", + "integrity": "sha512-ezJh98m8uy+O2Yq2N/Uny4Y9VU5OdM/uYD1/F0KPzptKvu/4FrmcH3oEqjgL0R8PuSXrjS6Zc6l/jQD82fkfvA==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@wp-playground/common": "3.0.19", + "@php-wasm/logger": "3.0.21", + "@php-wasm/node-polyfills": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@wp-playground/common": "3.0.21", "express": "4.21.2", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", @@ -7764,9 +7766,9 @@ } }, "node_modules/@php-wasm/node-polyfills": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-3.0.19.tgz", - "integrity": "sha512-PjxNzoLHOEotLpm8PQNWpbCiK8wedWuy57b1IwaJgzgeNFYJ5YZjgyB3tooiT0B+YrSHULSGk0N4fblnlu4V0w==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/node-polyfills/-/node-polyfills-3.0.21.tgz", + "integrity": "sha512-5CwoWlJVJ8is30OjMPaqW2aIK7P80jyMxqveS8yNmP0Yni+LPiCvf+b6rtH8R5LfVsS17ma6E6Lfd48oL4WIGw==", "license": "GPL-2.0-or-later", "optionalDependencies": { "fs-ext": "2.1.1" @@ -7780,11 +7782,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@php-wasm/scopes": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-3.0.19.tgz", - "integrity": "sha512-wInSI4Tj4V8zqCiwXtDsZkJJMcnsZBZIP4d5mxnsn0zHlXzoD0BkZhxgOxJpHCqPS4dhF8Us/ZX8yQ+9JUntDA==", + "node_modules/@php-wasm/progress": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.0.21.tgz", + "integrity": "sha512-df4RQBQQfUt63RIiipJBmDbEz6fQYX9ExVQVKmU7FU7x7ZPjVidH8Sq+iaZA4tXIbEwHExZ65KA9YvEzVdobPg==", "license": "GPL-2.0-or-later", + "dependencies": { + "@php-wasm/logger": "3.0.21", + "@php-wasm/node-polyfills": "3.0.21" + }, "engines": { "node": ">=20.18.3", "npm": ">=10.1.0" @@ -7793,48 +7799,44 @@ "fs-ext": "2.1.1" } }, - "node_modules/@php-wasm/stream-compression": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-3.0.19.tgz", - "integrity": "sha512-lLEztQzRZvuh0e4xMe+ybTr5/4ZDyK61Gx30uOgcu9ai4NU0BmE/VoY7i6HHOytW8qELYVgg58PosK4bAN/GgQ==", + "node_modules/@php-wasm/scopes": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/scopes/-/scopes-3.0.21.tgz", + "integrity": "sha512-aWqvYM+0zwO6httFNOhR4Bf7hAY4fONVBjt1SLYhKrgq5maplUwMv3R2fcGfz/2oQuEtAnWZGvfX3gmDLTGTpg==", "license": "GPL-2.0-or-later", - "dependencies": { - "@php-wasm/node-polyfills": "3.0.19", - "@php-wasm/util": "3.0.19" + "engines": { + "node": ">=20.18.3", + "npm": ">=10.1.0" }, "optionalDependencies": { "fs-ext": "2.1.1" } }, - "node_modules/@php-wasm/universal": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-3.0.19.tgz", - "integrity": "sha512-sItcRHWgESSwBrCQ8uPy/emetl+YBxiGzLkp7kp9TXJWLxQq2wJRmsMha8wU08pIyDDjCIgjWYtPKQ3pFee96g==", + "node_modules/@php-wasm/stream-compression": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/stream-compression/-/stream-compression-3.0.21.tgz", + "integrity": "sha512-/e8rXYBZSocfj/d0jxySa5STvwLDz5yAftdAGR286q2kqAH34PGYSr8bc5cB24vBTBoj0iAHg9WyX2uEwJTEeg==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19", - "@php-wasm/progress": "3.0.19", - "@php-wasm/stream-compression": "3.0.19", - "@php-wasm/util": "3.0.19", - "ini": "4.1.2" - }, - "engines": { - "node": ">=20.18.3", - "npm": ">=10.1.0" + "@php-wasm/node-polyfills": "3.0.21", + "@php-wasm/util": "3.0.21" }, "optionalDependencies": { "fs-ext": "2.1.1" } }, - "node_modules/@php-wasm/universal/node_modules/@php-wasm/progress": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.0.19.tgz", - "integrity": "sha512-GicMUvA6g7z2ArNwM9Bc6eFox0Mfi6vmCexKCv0Dq4xpFuuc7wC/JdBz6bC2w4RW15ICl/C3ARRFTdRmnKHR9g==", + "node_modules/@php-wasm/universal": { + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/universal/-/universal-3.0.21.tgz", + "integrity": "sha512-RSsLaP0BEdyQ7A/PYhC5sOSIKzwzKTYiHDSZbwnGSUdzmizOY5bUvukDDAGI+Aw4UYSKpvd/0MT3b62nBnM3oA==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19" + "@php-wasm/logger": "3.0.21", + "@php-wasm/node-polyfills": "3.0.21", + "@php-wasm/progress": "3.0.21", + "@php-wasm/stream-compression": "3.0.21", + "@php-wasm/util": "3.0.21", + "ini": "4.1.2" }, "engines": { "node": ">=20.18.3", @@ -7854,9 +7856,9 @@ } }, "node_modules/@php-wasm/util": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-3.0.19.tgz", - "integrity": "sha512-5kOs76glzDuyUlyamq4Kg10X74igJp8UKS8tUqA/4IW3WPwRETIV8QiIO4+52rPVkxdkN2EqclQffmVb/3khiA==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/util/-/util-3.0.21.tgz", + "integrity": "sha512-OPen901Trj16rwo4KXZwxGqNXNRfR9dOi1xJrex+hB6rTUYP8ACGqSIEUct0Bb4vlI785nLFcVLBnLTWgvNtaA==", "engines": { "node": ">=20.18.3", "npm": ">=10.1.0" @@ -7866,16 +7868,16 @@ } }, "node_modules/@php-wasm/web": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-3.0.19.tgz", - "integrity": "sha512-GTUelZSUNy8oUh4/zJld9Bx5d5a4tTU8aaa3a2ovwnCnWUawYMfV+JOEE69eiKChJGVDmiVHfbKep6ZEe2gAhQ==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/web/-/web-3.0.21.tgz", + "integrity": "sha512-zQvFzvFvwbnYv+QYSWoxF3sTbbdIfpDClrtDtoObhRGq0rtVTSTqnsMEwxQx0+ATt1IuVP2RtFAKtWWRA2mWDg==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/fs-journal": "3.0.19", - "@php-wasm/logger": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@php-wasm/web-service-worker": "3.0.19", + "@php-wasm/fs-journal": "3.0.21", + "@php-wasm/logger": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@php-wasm/web-service-worker": "3.0.21", "express": "4.21.2", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", @@ -7891,12 +7893,12 @@ } }, "node_modules/@php-wasm/web-service-worker": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-3.0.19.tgz", - "integrity": "sha512-+8wlbScquDeXK8aRBe/pF//L//kDttsh5i2ChNkS1iPbS3t0buJHKcby0Wnr2kvfw54zhomWVaDuxKuKLIYNTQ==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/web-service-worker/-/web-service-worker-3.0.21.tgz", + "integrity": "sha512-BndQYgmRLtemK6IW6rtItYKSxG67bWAMi0L0SmTH8ISzxYDtCZjvBaT44BXbCMWklDi9Ol7sx8WUyIg8Lx+Zdg==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/scopes": "3.0.19" + "@php-wasm/scopes": "3.0.21" }, "engines": { "node": ">=20.18.3", @@ -7916,15 +7918,15 @@ } }, "node_modules/@php-wasm/xdebug-bridge": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/xdebug-bridge/-/xdebug-bridge-3.0.19.tgz", - "integrity": "sha512-fj/im+eBf0W1udTDkjeOpFp3BG1CMYPKu8VmYR8VAiphDf4y6j8Bg3PAGROc72gwUyAGsgMgSVmzV2+DP2ewIQ==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@php-wasm/xdebug-bridge/-/xdebug-bridge-3.0.21.tgz", + "integrity": "sha512-Ivi1saHPa4oDdjObm+KX9XBfJIS0Raatc0OJv2I8Dau8zmIH/TfZqzQOwz2Z4Gb2xJG8gxEo5wYFnLOzN4caSw==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@wp-playground/common": "3.0.19", + "@php-wasm/logger": "3.0.21", + "@php-wasm/node": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@wp-playground/common": "3.0.21", "express": "4.21.2", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", @@ -7975,13 +7977,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.56.1.tgz", - "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.52.0.tgz", + "integrity": "sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.56.1" + "playwright": "1.52.0" }, "bin": { "playwright": "cli.js" @@ -10971,10 +10973,9 @@ } }, "node_modules/@wordpress/components/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", - "license": "MIT" + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" }, "node_modules/@wordpress/components/node_modules/uuid": { "version": "9.0.1", @@ -11171,9 +11172,9 @@ } }, "node_modules/@wordpress/hooks": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.35.0.tgz", - "integrity": "sha512-PQcAv/zfMYn5sPScOWDu1vgYkyHaDFt7+1IHvwR0RGE0AdQrdnKjvm6VJ4ALugA+zvJZkBZxLk5Gm+NZGAWIMg==", + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-4.34.0.tgz", + "integrity": "sha512-uZcgAMDhf6OzYCUoDqq//wYsfC7yx+XUd2av07aROn8SKTkWRfu7zweJHsOBmK0TkCx976ELoL/SZZfHPcj3aw==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -11181,9 +11182,9 @@ } }, "node_modules/@wordpress/html-entities": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.35.0.tgz", - "integrity": "sha512-43K8viPNNWUxmCKfKN2Dx/TgJitbGeGCfWBj0aloRoeqOUeEuDkWoak+XiIrJKpwYHTYhqtePl7COMWPzwkqbw==", + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-4.34.0.tgz", + "integrity": "sha512-TYYNhGbHEAuVH48Q5+Muy1Bc1G32yK+4btLhkiQOtRXfa/p7f+3bUMe1/t3wgdmU1hM//wS6dsJ2wvXa9rBCeA==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -11225,9 +11226,9 @@ } }, "node_modules/@wordpress/is-shallow-equal": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.35.0.tgz", - "integrity": "sha512-ooM/QFzxu8Ueqsv0D/z0+X6grbVws3GFMSxdM12eZO1B0/x6JPAtq4msZkoxqeQ4zoR0ghYHFXzv3k+Ch1tsFw==", + "version": "5.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-5.34.0.tgz", + "integrity": "sha512-p401k9SahwMOlmQq9DsKnfpHbax6QtE1hB6qTS/1VfhKLYy/DHc43OKafrwGB5G+rHntrsBNsO9r63DRcl4bbQ==", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -11304,9 +11305,9 @@ } }, "node_modules/@wordpress/redux-routine": { - "version": "5.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.35.0.tgz", - "integrity": "sha512-qc3MLyPWzpujvrP1wVg3xCAuZF+BItGSIIOikMk6xLN63FlNRxjh88gZ65evjU47Ik5KOjYqx3bt/GFdmzJOxw==", + "version": "5.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-5.34.0.tgz", + "integrity": "sha512-OYODJsho0wwCGrzEutelzBQpWHDS0quwJPGqx4TIWgoBnQtObcPyeqXDMGDJXfAFYP1KT3iE7hsU280EASxpng==", "license": "GPL-2.0-or-later", "dependencies": { "is-plain-object": "^5.0.0", @@ -11347,12 +11348,12 @@ } }, "node_modules/@wordpress/undo-manager": { - "version": "1.35.0", - "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.35.0.tgz", - "integrity": "sha512-WyJWGLhLvkB2FF/o+QmgAoPo3NTEi5HQDwYbSEpw1pUZm7W3U/QwcaW6cWW3D/9OUtnHY4kfMGxrI5del2tYyA==", + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/undo-manager/-/undo-manager-1.34.0.tgz", + "integrity": "sha512-NQ/LGpaFoEYCKA0Uyg7RO04wx1MF27Jdv2S2tS81sFUO2/L0FJKyW1AQptx7SGEMIxgH9Sn4XIOdsQmLE4nGww==", "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/is-shallow-equal": "^5.35.0" + "@wordpress/is-shallow-equal": "^5.34.0" }, "engines": { "node": ">=18.12.0", @@ -11383,21 +11384,21 @@ } }, "node_modules/@wp-playground/blueprints": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-3.0.19.tgz", - "integrity": "sha512-BhoFm2d5w+OOURMZ0MgtbTTFhV+YgGkBFtCZhfckOEKxYsX//LRE7l7Wso6Q0XlMxHDw87Ypc2Dwf5wEz87fSQ==", - "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19", - "@php-wasm/progress": "3.0.19", - "@php-wasm/stream-compression": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@php-wasm/web": "3.0.19", - "@wp-playground/common": "3.0.19", - "@wp-playground/storage": "3.0.19", - "@wp-playground/wordpress": "3.0.19", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wp-playground/blueprints/-/blueprints-3.0.21.tgz", + "integrity": "sha512-MoDqob0Fx0SQferWqPk0SCOay1yFDtWnkbkO5HDtkr4pcK1DxfK3s/PE6WArNQhtyfKKQXd4n1R7faeg/zzSjQ==", + "dependencies": { + "@php-wasm/logger": "3.0.21", + "@php-wasm/node": "3.0.21", + "@php-wasm/node-polyfills": "3.0.21", + "@php-wasm/progress": "3.0.21", + "@php-wasm/stream-compression": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@php-wasm/web": "3.0.21", + "@wp-playground/common": "3.0.21", + "@wp-playground/storage": "3.0.21", + "@wp-playground/wordpress": "3.0.21", "@zip.js/zip.js": "2.7.57", "ajv": "8.12.0", "async-lock": "1.4.1", @@ -11426,23 +11427,6 @@ "fs-ext": "2.1.1" } }, - "node_modules/@wp-playground/blueprints/node_modules/@php-wasm/progress": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.0.19.tgz", - "integrity": "sha512-GicMUvA6g7z2ArNwM9Bc6eFox0Mfi6vmCexKCv0Dq4xpFuuc7wC/JdBz6bC2w4RW15ICl/C3ARRFTdRmnKHR9g==", - "license": "GPL-2.0-or-later", - "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19" - }, - "engines": { - "node": ">=20.18.3", - "npm": ">=10.1.0" - }, - "optionalDependencies": { - "fs-ext": "2.1.1" - } - }, "node_modules/@wp-playground/blueprints/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -11480,21 +11464,21 @@ "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" }, "node_modules/@wp-playground/cli": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wp-playground/cli/-/cli-3.0.19.tgz", - "integrity": "sha512-rKtlH2kkWHGRU0UM5kq2Wg4XHFfnYVlDvzvc+Jec0TVX9M5M1AhUIT/+GVOxmgNKL1arAotR7hDej08gwyQtoA==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wp-playground/cli/-/cli-3.0.21.tgz", + "integrity": "sha512-CXb56gAd6rfpEMOoVhoUsxuvcMZEeB0iZp1izpv/QB2MD5h8LB/3YtO2P/zq+Z9NqTE1WAaj99e/EZ+fSFyvag==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node": "3.0.19", - "@php-wasm/progress": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@php-wasm/xdebug-bridge": "3.0.19", - "@wp-playground/blueprints": "3.0.19", - "@wp-playground/common": "3.0.19", - "@wp-playground/storage": "3.0.19", - "@wp-playground/wordpress": "3.0.19", + "@php-wasm/logger": "3.0.21", + "@php-wasm/node": "3.0.21", + "@php-wasm/progress": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@php-wasm/xdebug-bridge": "3.0.21", + "@wp-playground/blueprints": "3.0.21", + "@wp-playground/common": "3.0.21", + "@wp-playground/storage": "3.0.21", + "@wp-playground/wordpress": "3.0.21", "@zip.js/zip.js": "2.7.57", "ajv": "8.12.0", "async-lock": "1.4.1", @@ -11528,23 +11512,6 @@ "fs-ext": "2.1.1" } }, - "node_modules/@wp-playground/cli/node_modules/@php-wasm/progress": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@php-wasm/progress/-/progress-3.0.19.tgz", - "integrity": "sha512-GicMUvA6g7z2ArNwM9Bc6eFox0Mfi6vmCexKCv0Dq4xpFuuc7wC/JdBz6bC2w4RW15ICl/C3ARRFTdRmnKHR9g==", - "license": "GPL-2.0-or-later", - "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node-polyfills": "3.0.19" - }, - "engines": { - "node": ">=20.18.3", - "npm": ">=10.1.0" - }, - "optionalDependencies": { - "fs-ext": "2.1.1" - } - }, "node_modules/@wp-playground/cli/node_modules/ajv": { "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", @@ -11583,13 +11550,13 @@ "license": "(MIT AND Zlib)" }, "node_modules/@wp-playground/common": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-3.0.19.tgz", - "integrity": "sha512-Xtn8baSHTvK4YzQoLReKrvZZs2yGXAzaVqAOZS93FtBXEJ9OIIgQg5egpv6mf7KZxHqlULtA08/sLNpuVMgzew==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wp-playground/common/-/common-3.0.21.tgz", + "integrity": "sha512-/07vi+SLDLtEOCSIxA6TzAIFdsFCHd4Gn/VGbERoWtMbN5txUPiNjOhi/Vz8IZEVCU38VUR5G9DO/z77XEMPaw==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", "ini": "4.1.2" }, "engines": { @@ -11610,15 +11577,15 @@ } }, "node_modules/@wp-playground/storage": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-3.0.19.tgz", - "integrity": "sha512-lxdeXzzXzSIcwaqVsg5R33OVqVCBjB1hVhQNep8Xs9RB0GKidc56nKwJNh4OIoaZIRwzgNTn+FLfyZnExrR+gA==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wp-playground/storage/-/storage-3.0.21.tgz", + "integrity": "sha512-h4gge8pM4r7l9n8buy8GEz8LOa6DCsJGPirgUQISE/cz+rJloAh8Tvvijx2eA1AXJ+mEzeA1Ry26EQV6QE0uGA==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/stream-compression": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@php-wasm/web": "3.0.19", + "@php-wasm/stream-compression": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@php-wasm/web": "3.0.21", "@zip.js/zip.js": "2.7.57", "async-lock": "^1.4.1", "clean-git-ref": "^2.0.1", @@ -11667,16 +11634,16 @@ } }, "node_modules/@wp-playground/wordpress": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-3.0.19.tgz", - "integrity": "sha512-dtA1PuVHUyMX3kNV/ZVZA0wrM/7hbr3z8xch0TD1bl73iuf1wRIc74hDlvDJYmAgEU4zjmD4DYTPdJmNjqPiUg==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wp-playground/wordpress/-/wordpress-3.0.21.tgz", + "integrity": "sha512-zcSlnxZFYCUYJfZzqUIhqwRdTSWikxjG8yQeLFKKYTluHxvhE1xyLjvhtM/8huzsmRoD2tCDSwoeAddOQw7FuA==", "license": "GPL-2.0-or-later", "dependencies": { - "@php-wasm/logger": "3.0.19", - "@php-wasm/node": "3.0.19", - "@php-wasm/universal": "3.0.19", - "@php-wasm/util": "3.0.19", - "@wp-playground/common": "3.0.19", + "@php-wasm/logger": "3.0.21", + "@php-wasm/node": "3.0.21", + "@php-wasm/universal": "3.0.21", + "@php-wasm/util": "3.0.21", + "@wp-playground/common": "3.0.21", "express": "4.21.2", "ini": "4.1.2", "wasm-feature-detect": "1.8.0", @@ -23839,13 +23806,13 @@ } }, "node_modules/playwright": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", - "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.52.0.tgz", + "integrity": "sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.56.1" + "playwright-core": "1.52.0" }, "bin": { "playwright": "cli.js" @@ -23858,9 +23825,9 @@ } }, "node_modules/playwright-core": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", - "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.52.0.tgz", + "integrity": "sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -24890,6 +24857,11 @@ "node": ">=4" } }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -28923,6 +28895,15 @@ "wp-error": "^1.3.0" } }, + "node_modules/wpcom-xhr-request/node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", diff --git a/package.json b/package.json index f8da32ce8f..a339c4434f 100644 --- a/package.json +++ b/package.json @@ -120,9 +120,9 @@ "@formatjs/intl-locale": "^3.4.5", "@formatjs/intl-localematcher": "^0.5.4", "@inquirer/prompts": "^7.10.1", - "@php-wasm/node": "^3.0.19", - "@php-wasm/scopes": "^3.0.19", - "@php-wasm/universal": "^3.0.19", + "@php-wasm/node": "^3.0.21", + "@php-wasm/scopes": "^3.0.21", + "@php-wasm/universal": "^3.0.21", "@reduxjs/toolkit": "^2.7.0", "@rive-app/react-canvas": "^4.12.0", "@sentry/electron": "^6.5.0", @@ -132,9 +132,9 @@ "@wordpress/dataviews": "^10.2.0", "@wordpress/i18n": "^6.1.0", "@wordpress/icons": "^11.1.0", - "@wp-playground/blueprints": "^3.0.19", - "@wp-playground/cli": "^3.0.19", - "@wp-playground/wordpress": "^3.0.14", + "@wp-playground/blueprints": "^3.0.21", + "@wp-playground/cli": "^3.0.21", + "@wp-playground/wordpress": "^3.0.21", "archiver": "^6.0.1", "atomically": "^2.0.3", "cli-table3": "^0.6.5", diff --git a/patches/@wp-playground+wordpress+3.0.19.patch b/patches/@wp-playground+wordpress+3.0.19.patch deleted file mode 100644 index dda2645c7b..0000000000 --- a/patches/@wp-playground+wordpress+3.0.19.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/node_modules/@wp-playground/wordpress/index.cjs b/node_modules/@wp-playground/wordpress/index.cjs -index ccbb71a..2d9ce09 100644 ---- a/node_modules/@wp-playground/wordpress/index.cjs -+++ b/node_modules/@wp-playground/wordpress/index.cjs -@@ -352,7 +352,7 @@ function skip_whitespace($tokens) { - ob_clean(); - echo false === $return_value ? '0' : '1'; - ob_end_flush(); -- `})).text!=="1")throw new Error("Failed to rewrite constants in wp-config.php.")}async function h(e,t){const n=o.joinPaths(t,"wp-config.php"),i={DB_NAME:"wordpress"};!e.fileExists(n)&&e.fileExists(o.joinPaths(t,"wp-config-sample.php"))&&await e.writeFile(n,await e.readFileAsBuffer(o.joinPaths(t,"wp-config-sample.php"))),await _(e,n,i,"skip")}async function v(e){const t=await w(e);return await g(t,e),t}async function g(e,t){var i,r;const n=await e.getPrimaryPhp();if((i=t.hooks)!=null&&i.beforeWordPressFiles&&await t.hooks.beforeWordPressFiles(n),t.wordPressZip&&await E(n,await t.wordPressZip),t.constants)for(const a in t.constants)n.defineConstant(a,t.constants[a]);if(t.dataSqlPath&&(n.defineConstant("DB_DIR",o.dirname(t.dataSqlPath)),n.defineConstant("DB_FILE",o.basename(t.dataSqlPath))),n.defineConstant("WP_HOME",t.siteUrl),n.defineConstant("WP_SITEURL",t.siteUrl),await h(n,e.documentRoot),(r=t.hooks)!=null&&r.beforeDatabaseSetup&&await t.hooks.beforeDatabaseSetup(n),t.sqliteIntegrationPluginZip&&await k(n,await t.sqliteIntegrationPluginZip),t.wordPressZip&&!t.dataSqlPath&&(await f(n)||await S(n),!await f(n))){if(await L(n))throw new Error("WordPress installation has failed.");if(n.isFile("/internal/shared/preload/0-sqlite.php"))throw new Error("Error connecting to the SQLite database.");if(!t.sqliteIntegrationPluginZip){const l=o.joinPaths(e.documentRoot,"wp-content/mu-plugins/sqlite-database-integration");if(n.isDir(l))throw new Error("Error connecting to the SQLite database.")}throw new Error("Error connecting to the MySQL database.")}return e}async function w(e){const t=e.spawnHandler??d.sandboxedSpawnHandlerFactory;async function n(r,a){const l=await e.createPhpRuntime(a),s=new d.PHP(l);return e.sapiName&&s.setSapiName(e.sapiName),r&&(s.requestHandler=r),e.phpIniEntries&&d.setPhpIniEntries(s,e.phpIniEntries),s.defineConstant("WP_SQLITE_AST_DRIVER",!0),a&&!s.isFile("/internal/.boot-files-written")&&(await y(s),await d.writeFiles(s,"/",e.createFiles||{}),await P(s,o.joinPaths(new URL(e.siteUrl).pathname,"phpinfo.php")),await d.writeFiles(s,"/internal",{".boot-files-written":""})),t&&await s.setSpawnHandler(t(r.processManager)),s.enableRuntimeRotation({recreateRuntime:e.createPhpRuntime,maxRequests:400}),e.onPHPInstanceCreated&&await e.onPHPInstanceCreated(s,{isPrimary:a}),s}const i=new d.PHPRequestHandler({phpFactory:async({isPrimary:r})=>n(i,r),documentRoot:e.documentRoot||"/wordpress",absoluteUrl:e.siteUrl,rewriteRules:b,getFileNotFoundAction:e.getFileNotFoundAction??$,cookieStore:e.cookieStore});return i}async function f(e){return(await e.run({code:`n(i,r),documentRoot:e.documentRoot||"/wordpress",absoluteUrl:e.siteUrl,rewriteRules:b,getFileNotFoundAction:e.getFileNotFoundAction??$,cookieStore:e.cookieStore});return i}async function f(e){return(await e.run({code:`t(i,r),documentRoot:e.documentRoot||"/wordpress",absoluteUrl:e.siteUrl,rewriteRules:k,getFileNotFoundAction:e.getFileNotFoundAction??y,cookieStore:e.cookieStore});return i}async function b(e){return(await e.run({code:`t(i,r),documentRoot:e.documentRoot||"/wordpress",absoluteUrl:e.siteUrl,rewriteRules:k,getFileNotFoundAction:e.getFileNotFoundAction??y,cookieStore:e.cookieStore});return i}async function b(e){return(await e.run({code:`